Compare commits

...

112 Commits

Author SHA1 Message Date
Nemo be4e2ca749 sway 2024-04-10 15:10:41 +05:30
Nemo cbc764a4f8 alacrity new version themes 2024-01-05 23:07:10 +05:30
Nemo 81a71b0f33 while the bugs are fixed, this still gives more headache 2022-01-17 00:16:35 +05:30
Nemo 2eb17f82ab remove template from git 2022-01-17 00:16:24 +05:30
Nemo 98ab59fe3a add pdm to bashrc 2022-01-17 00:15:34 +05:30
Nemo c1ff2c1426 fix rofi 2022-01-17 00:15:08 +05:30
Nemo 143fb69190 minor changes 2021-08-24 14:47:00 +05:30
Nemo ae9fedf489 content disposition on is better 2021-08-24 14:46:22 +05:30
Nemo 336eebaa36 more registeries 2021-08-24 14:46:09 +05:30
Nemo f6e4e9cde3 composer remove unused packages 2021-08-24 14:46:01 +05:30
Nemo 7dc2199a90 steampipe and podman 2021-08-24 14:44:39 +05:30
Nemo 220b5fe741 music dl updates 2021-06-23 18:58:23 +05:30
Nemo 83414c24d6 i3blocks 2021-06-22 15:31:15 +05:30
Nemo e434294c24 minor i3 update 2021-06-22 15:31:04 +05:30
Nemo 030aecceec attempting to document my ~/bin 2021-06-11 18:58:38 +05:30
Nemo 7bda21482f Add more packages 2021-06-10 01:46:54 +05:30
Nemo 9bd6396ec6 Add package list to start scaffold work 2021-06-10 00:54:26 +05:30
Nemo ee681c8c40 lockscreen changes 2021-06-09 20:10:21 +05:30
Nemo 9a436039d0 alacritty updates for themes 2021-06-08 19:52:39 +05:30
Nemo ce0661556f wallpaper and lockscreen 2021-06-08 19:52:21 +05:30
Nemo 6963de19f6 ytdl.album 2021-06-08 19:52:11 +05:30
Nemo 1ece8b8d18 switch to podman 2021-06-08 19:51:44 +05:30
Nemo eedae21cc1 Ruby update and change Gtk Dark Theme 2021-05-29 14:45:12 +05:30
Nemo 42318f334f new snippets 2021-05-29 14:44:50 +05:30
Nemo 2f383b303e Adds download-as-pdf 2021-05-26 23:23:57 +05:30
Nemo bb6ff7d46d docker config updates 2021-05-26 23:23:57 +05:30
Nemo 5c79f156e7 frequent tempoerature updates 2021-05-26 23:23:57 +05:30
Nemo 8b3804ab0b starship config update 2021-05-26 23:23:57 +05:30
Nemo 3b62a55016 use pass-git-helper for git-creds 2021-05-26 23:23:57 +05:30
Nemo 4982283e87 minor bashrc updates 2021-05-26 23:23:57 +05:30
Nemo 0f52fd8d16 Update MIT snippet 2021-05-26 23:23:57 +05:30
Nemo 6ea81d1f7c update xinitrc 2021-05-26 23:23:57 +05:30
Nemo 68ac5b067f Add new i3blocks 2021-05-26 23:23:57 +05:30
Nemo 1a9581b573 remove old vim config 2021-05-26 23:23:57 +05:30
Nemo 09519a0507 bashrc updates 2021-05-26 23:23:57 +05:30
Nemo e86e0de124 i3 launch edit 2021-05-26 23:23:57 +05:30
Nemo d5b6080a96 new a-c 2021-03-10 01:27:47 +05:30
Nemo 4dc1b7f528 submodule magic 2021-03-10 01:27:35 +05:30
Nemo addca83d88 git updates 2021-02-26 14:01:52 +05:30
Nemo d604618a5e New ruby stuff 2021-02-09 13:17:09 +05:30
Nemo 0cdf920bd3 no more polybar 2021-01-20 13:22:33 +05:30
Nemo aec042b2ef Adds a label for disk usage 2021-01-20 13:21:47 +05:30
Nemo 639f47e650 minor comments and cleanup 2021-01-19 14:57:03 +05:30
Nemo 0b4f802fd5 Single function for both light/dark 2021-01-19 13:16:30 +05:30
Nemo e15bd39654 Fix sublime settings change using jq 2021-01-19 12:50:26 +05:30
Nemo a626a5d233 ddcutil FTW!
It lets me automatically dim the brightness of the monitor (just the LG
one) programatically. Super cool!
2021-01-19 00:50:23 +05:30
Nemo e9169abfe5 gitignore docker seed 2021-01-18 18:29:29 +05:30
Nemo 3bbd401d02 solarized light/dark 2021-01-18 18:28:46 +05:30
Nemo 3f3c743eec gitk is faster 2020-12-20 21:56:02 +05:30
Nemo b26a34f522 General updates 2020-12-20 21:55:02 +05:30
Nemo 9bf34561f9 starship upgrade to 0.45
https://starship.rs/migrating-to-0.45.0/#module-prefix-and-suffix-will-be-replaced-by-format
2020-10-07 01:44:18 +05:30
Nemo eb6de211ac Finally got alacritty configuration correctly committed 2020-09-17 12:55:59 +05:30
Nemo c37316a3b3 Adds alacritty themes in submodule 2020-09-14 15:54:30 +05:30
Nemo 4117669b3d General updates 2020-09-14 15:54:26 +05:30
Nemo aa97b3f6d4 Minor updates 2020-07-09 16:47:21 +05:30
Nemo cc2cc708c7 passmenu now uses solarized dark 2020-07-09 14:10:34 +05:30
Nemo 86ccbde5a4 Adds goldendict to startup 2020-07-08 19:16:12 +05:30
Nemo a1c12e705f Adds i3blocks configuration 2020-07-08 19:15:47 +05:30
Nemo 0afa000a5b Adds a ignore file 2020-07-02 23:48:01 +05:30
Nemo a8fb7991f5 light and dark aliases 2020-07-02 23:47:41 +05:30
Nemo 9f0f06a036 Adds khal and vdirsync configurations 2020-06-17 20:13:12 +05:30
Nemo 77b83130b3 Start hackertray, and be use dark i3bar 2020-06-15 19:21:53 +05:30
Nemo 759ec414e4 alacritty solarized light/dark 2020-06-15 19:21:34 +05:30
Nemo f32219521c add completion scripts 2020-06-15 19:21:26 +05:30
Nemo 8796a25c87 Remove gtk files, which kept get overwritten uselessly 2020-06-15 19:21:10 +05:30
Nemo 32c5687e5e Switch to proper solarized green 2020-06-01 00:09:14 +05:30
Nemo 0cf78866bd trying out solarized light everywhere 2020-05-31 04:19:16 +05:30
Nemo 67d65eb6e9 Cantarell everywhere in the UI 2020-05-25 00:42:18 +05:30
Nemo a8f4719ea2 ignore more things 2020-05-25 00:08:36 +05:30
Nemo b624742362 switch to i3blocks, polybar is too much 2020-05-25 00:07:01 +05:30
Nemo 685744d5ed Adds starship configuration 2020-05-07 16:26:48 +05:30
Nemo 980022798f Adds alacritty and rofi config 2020-05-07 16:17:48 +05:30
Nemo ace32ae7c8 Lots of updates:
- Ignore nitrogen, just causes conflicts
- dunst improvements
- i3: switch from dmenu to rofi
- i3: switch to flameshot
- bundle: fix some cache issues
- xinitrc: no more caps (I think)
- font changes for emojificiation
2020-05-07 16:07:22 +05:30
Nemo 2d1fc44a55 More things, fix NASC 2020-02-23 01:42:28 +05:30
Nemo a131dbe261 stop forcing ssh for git clones, HTTPs is sometimes better 2020-02-23 01:42:28 +05:30
Nemo 7d6c1ebaef minor changes 2020-02-23 01:42:28 +05:30
Nemo 58f4b48c72 updateS 2020-02-23 01:42:28 +05:30
Nemo c614342852 Adds pass auto-completion 2020-02-23 01:42:28 +05:30
Nemo 5740252747 More things 2020-01-03 01:56:41 +05:30
Nemo 7ff6f8374e better lock screen 2020-01-03 01:56:26 +05:30
Nemo ffef8c0595 home updates 2019-12-31 20:45:53 +05:30
Nemo ad5b471e5f polybar initial commit 2019-12-17 02:29:16 +05:30
Nemo 6e9172450b friendship broken with powerline, starship is my new best friend
also switches to alacritty
2019-12-17 02:28:44 +05:30
Nemo 61e12e8f3d Updates 2019-12-17 01:29:45 +05:30
Nemo 0819cd42c8 Ubuntu side updates 2019-12-17 01:29:45 +05:30
Nemo f7716742e7 bashrc updates: 2019-09-15 03:07:44 +05:30
Nemo a33d7874cf updates 2019-07-30 23:41:18 +05:30
Nemo e14b54e50d Adds snippets 2019-07-10 00:08:33 +05:30
Nemo 35c3a7f347 Adds pam environment 2019-07-07 01:49:29 +05:30
Nemo 590d1a2925 switch from keychain 2019-07-07 01:48:25 +05:30
Nemo a10c928a54 remove nitrogen from synced config 2019-05-26 16:20:23 +05:30
Nemo ec7b77cf88 updates 2019-05-26 16:18:44 +05:30
Nemo 272d5a137f More autorandr config and WTFPL 2019-05-22 18:47:08 +05:30
Nemo eb0b15d215 i3, autorandr, and nitrogen updates
compton config file format changed
2019-05-22 18:46:47 +05:30
Nemo ece57e9b67 adds kapitan compile 2019-05-08 11:30:45 +05:30
Nemo 1fcb64c6a2 switch to autorandr, leave warning on display 2019-05-07 14:56:33 +05:30
Nemo bcfa21830a switches to autorandr 2019-05-07 14:52:32 +05:30
Nemo 6710df332c Only hide pads, not preference windows 2019-05-07 13:36:46 +05:30
Nemo e55aadb973 General updates 2019-05-07 12:41:38 +05:30
Nemo 23592db850 Adds hirak/prestissimo for parallel composer installs 2019-05-05 16:32:21 +05:30
Nemo 3b6f0dd3bd symlink sway to i3 2019-04-24 01:46:06 +05:30
Nemo a76a49830a mlock doesn't work, new aliases 2019-04-22 10:35:19 +05:30
Nemo 0c537880db Adds kapitan 2019-04-13 21:40:02 +05:30
Nemo ebe42cdf04 Switch to Mod+F3 for NaSC 2019-04-12 07:57:08 +05:30
Nemo ee4c4776ad gtk2 icon settings persist now 2019-04-12 07:57:00 +05:30
Nemo a36b298f3e autosync-repos.service 2019-04-12 02:04:07 +05:30
Nemo 74f3bb8db2 have autosync repo timer 2019-04-12 01:46:48 +05:30
Nemo 5b35e033ba Don't commit composer keys by mistake 2019-04-11 00:23:24 +05:30
Nemo 8a650f004b regular updates 2019-04-10 02:24:15 +05:30
Nemo 5709348b88 Adds more display modes 2019-04-10 02:23:42 +05:30
Nemo dc42f42176 Adds NaSC 2019-04-10 02:23:28 +05:30
Nemo b106b130d3 Adds gtk configuration 2019-04-10 02:21:43 +05:30
355 changed files with 2251 additions and 36037 deletions

3
.gitmodules vendored
View File

@ -1,3 +1,6 @@
[submodule "files/vim/.vim/bundle/dracula-theme"]
path = files/vim/.vim/bundle/dracula-theme
url = git@github.com:dracula/vim.git
[submodule "files/themes/.config/alacritty/themes"]
path = files/themes/.config/alacritty/themes
url = https://github.com/aaron-williamson/base16-alacritty.git

View File

@ -1,26 +1,25 @@
[Main]
source = 0
source = 1
# valid options: normal, desktop, screensize, workarea, fullscreen, maximize, keep_below, skip_taskbar, skip_pager
state = fullscreen
state = workarea
render = curves
[Bars]
padding = 0
scale = 1.4
rgba = #00B1FFFF
# rgba = #00F133FF
count = 32
rgba = 00B1FF
count = 64
[Offset]
left = 0
right = 225
right = 500
top = 0
bottom = 236
[Smoothing]
# Valid modes: none, normal, scientific, waves
mode = scientific
mode = waves
# default fall acceleration is 1% of maximum bar height per frame. more - faster bars fall speed
gravity = 1.2

View File

@ -0,0 +1 @@
/home/nemo/.config/systemd/user/ssh-agent.service

View File

@ -6,27 +6,143 @@ pathadd() {
fi
}
# Read a gemfile contents
# https://stackoverflow.com/a/43298099
gemread() {
tar --to-stdout -xf "$1" data.tar.gz | tar -zt
}
pathadd '/home/nemo/bin'
pathadd '/home/nemo/projects/go/bin'
pathadd '/bin'
pathadd '/snap/bin'
pathadd /home/nemo/.local/share/junest/bin
export GPG_TTY="$(tty)"
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
function gemls(){
tar --to-stdout -xf "$1" data.tar.gz | tar -zt
}
alias adb.run='apktool build src/ -o patched.apk && java -jar ~/apps/uber-apk-signer-1.1.0.jar -a patched.apk && adb install -r -d patched-aligned-debugSigned.apk && adb shell monkey -p '$1' -v 1'
alias mk='microk8s.kubectl'
alias settings='env XDG_CURRENT_DESKTOP=GNOME gnome-control-center'
alias watch='watch '
alias xclip='xclip -selection c'
alias sl=ls
alias dynamodump='docker run bchew/dynamodump /usr/local/bin/dynamodump'
alias dh='du -d1 -h'
alias wine32='WINEARCH=win32 WINEPREFIX=~/win32 wine'
alias signal_update='docker run captn3m0/signal-arch-builder'
alias signal_update='podman run docker.io/captn3m0/signal-arch-builder'
alias kc='kapitan compile'
# https://tizardsbriefcase.com/1059/linux/remove-query-string-filename-wget
alias clean.filenames='for file in *; do mv "$file" "${file%%\?*}"; done'
alias dunst.pause='notify-send "DUNST_COMMAND_PAUSE"'
alias dunst.resume='notify-send "DUNST_COMMAND_RESUME"'
alias sp="docker exec -it steampipe steampipe "
alias steampipe.service="docker run \
-p 9193:9193 \
--name steampipe \
--mount type=bind,source=/home/nemo/.config/steampipe,target=/home/steampipe/.steampipe/config \
--mount type=volume,source=steampipe_data,target=/home/steampipe/.steampipe/db/12.1.0/data \
--mount type=volume,source=steampipe_internal,target=/home/steampipe/.steampipe/internal \
--mount type=volume,source=steampipe_logs,target=/home/steampipe/.steampipe/logs \
--mount type=volume,source=steampipe_plugins,target=/home/steampipe/.steampipe/plugins \
turbot/steampipe service start --foreground"
function aur.make() {
find . -maxdepth 1 -iregex '.*\.\(bz2\|tar\|zip\|deb\|xz\|part\|rpm\|gz\|zst\|AppImage\|pacman\|jar\)$' -delete
makepkg --printsrcinfo > .SRCINFO
makepkg -sric
}
# ... or force ignoredups and ignorespace
pathadd '/sbin'
pathadd '/home/nemo/projects/scripts/'
pathadd "$HOME/.phpenv/bin"
pathadd "$HOME/apps/ec2/bin"
pathadd "$HOME/.gem/ruby/2.6.0/bin"
pathadd "$HOME/.gem/ruby/3.0.0/bin"
# needs a kubectl upgrade
pathadd "$HOME/.krew/bin"
pathadd "$HOME/.local/bin"
# Python virtualenv
export WORKON_HOME=~/.virtualenvs
source /usr/bin/virtualenvwrapper.sh
source /usr/share/doc/pkgfile/command-not-found.bash
# source ~/.sourcerer.sh
# slows shell for now.
source <(kubectl completion bash)
# Enable kubectl completion with k
complete -F __start_kubectl k
# https://substrakt.com/journal/easy-peasy-composer-local-package-symlink-composer-link/
composer-link() {
jq '.repositories |= [{"type": "path", "url": "'$1'", "options": {"symlink": true}}] + . ' composer.json > composer.tmp.json && mv composer.tmp.json composer.json
packageName=$(jq -r '.name' $1/composer.json)
composer require $packageName @dev
}
composer-unlink() {
git checkout composer.json composer.lock
composer update
}
# These 2 methods change the color scheme for my:
# 1. Editor (sublime text)
# 2. Terminal (alacritty)
# 3. bat
# 4. Monitor brightness (only one of the monitors). See https://github.com/rockowitz/ddcutil/issues/140
# 5. Gtk theme
export ALACRITTY_COLOR_DIR=/home/nemo/projects/personal/dotfiles/files/themes/.config/alacritty/themes/colors
export BAT_THEME="Solarized (light)"
GTK_THEME_dark="NumixSolarizedDarkRed"
GTK_THEME_light="NumixSolarizedLightGreen"
BRIGHTNESS_dark=0
BRIGHTNESS_light=99
function colorchange() {
export BAT_THEME="Solarized ($1)"
echo "✔️ bat"
alacritty-colorscheme -C "$ALACRITTY_COLOR_DIR" apply "base16-solarized-$1.yml"
echo "✔️ alacritty"
gtk_theme="GTK_THEME_$1"
xfconf-query -c xsettings -p /Net/ThemeName -s "${!gtk_theme}"
echo "✔️ gtk"
# subl_settings="/home/nemo/.config/sublime-text-3/Packages/User/Preferences.sublime-settings"
# strip-json-comments "$subl_settings" | jq ".color_scheme=\"Packages/Solarized Color Scheme/Solarized ($1).sublime-color-scheme\"" > /tmp/sublime.json
# mv /tmp/sublime.json "$subl_settings"
# echo "✔️ sublime"
brightness="BRIGHTNESS_$1"
if [[ $(xrandr --listmonitors|grep 2560) ]]; then
ddcutil --model "LG ULTRAWIDE" setvcp 0x10 ${!brightness}
fi
echo "✔️ monitor"
}
alias dark="colorchange dark"
alias light="colorchange light"
# https://prefetch.net/blog/2020/07/14/decoding-json-web-tokens-jwts-from-the-linux-command-line/
# This puts them in bash history, so be careful
jwtd() {
if [[ -x $(command -v jq) ]]; then
jq -R 'split(".") | .[0],.[1] | @base64d | fromjson' <<< "${1}"
echo "Signature: $(echo "${1}" | awk -F'.' '{print $3}')"
fi
}
if [ -f /usr/sbin/virtualenvwrapper.sh ]; then
export WORKON_HOME=~/.virtualenvs
export VIRTUALENVWRAPPER_SCRIPT=/usr/sbin/virtualenvwrapper.sh
source /usr/sbin/virtualenvwrapper_lazy.sh
fi
alias sublime='/usr/bin/sublime-text'
alias subl3=subl
@ -37,17 +153,35 @@ alias pu='phpunit'
alias ghpr='gh pull-request'
alias ssdr='sudo systemctl daemon-reload'
alias cat='bat'
alias fomu.setup='export PATH=/home/nemo/apps/fomu/bin:$PATH'
# Gets list of all packages from AUR sorted by Size
alias aur.list='expac -H M "%m\t%n" | sort -h > /tmp/expac.txt && pacman -Qqm > /tmp/aur.txt && grep --color=never -w -F -f /tmp/aur.txt /tmp/expac.txt'
# Same as above, but all packages (except AUR)
alias package.list='expac -sH M "%-30n %m" | sort -hk 2'
alias package.owns='pacman -F'
# Download size of all packages marked for upgrade
alias package.dlsize='expac -S -H M '%k\t%n' $(pacman -Qqu) | sort -sh'
# To list the packages marked for upgrade with their download size
alias upgrade.size='pacman -Quq|xargs expac -SH M "%k\t%n" | sort -sh'
# https://github.com/chef/inspec
function inspec { docker run -it --rm -v $(pwd):/share chef/inspec $@; }
function inspec { podman run -it --rm -v $(pwd):/share chef/inspec $@; }
# Most common invocation: terraform.docs markdown --html=false --anchor=false --show "outputs"
function terraform.docs { podman run -it --rm -u $(id -u) -v $(pwd):/src quay.io/terraform-docs/terraform-docs:0.14.1 $@ /src; }
# Run as pingen N where N = Number of digits in PIN
function pingen { pwgen -1Avs -r=qwertyuiopasdfghjklzxcvbnm "$1"; }
# Sort a file in-place
function sortinplace { sort -o "$1" "$1"; }
function download_as_pdf {
rdrview --template "title,body" "$1" -H | tidy | pandoc --from html --pdf-engine=xelatex -o "$2"
}
alias kapitan='podman run -t --rm -u $(id -u) -v $(pwd):/src:delegated deepmind/kapitan'
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
@ -83,6 +217,7 @@ alias l='ls -CF'
alias k='kubectl'
alias kontext='kubectl config use-context'
alias kgpa='kubectl get pods --all-namespaces'
alias kgp='kubectl get pods -o wide'
alias kgpn='kubectl get pods -o wide -n '
alias kno='kubectl get nodes'
@ -92,11 +227,12 @@ alias kno='kubectl get nodes'
function kpssh() { kubectl exec -it $1 -n $2 sh ; }
function kcssh() { kubectl exec -it $1 -n $2 -c $3 sh ; }
function klog() { kubetail $1 -n $1 ; }
function kne() {
function kne() {
kubectl get events -n $1 --sort-by='.metadata.creationTimestamp' \
-o 'go-template={{range .items}}{{.involvedObject.name}}{{"\t"}}{{.involvedObject.kind}}{{"\t"}}{{.message}}{{"\t"}}{{.reason}}{{"\t"}}{{.type}}{{"\t"}}{{.firstTimestamp}}{{"\n"}}{{end}}'
-o 'go-template={{range .items}}{{.involvedObject.name}}{{"\t"}}{{.involvedObject.kind}}{{"\t"}}{{.message}}{{"\t"}}{{.reason}}{{"\t"}}{{.type}}{{"\t"}}{{.firstTimestamp}}{{"\n"}}{{end}}'
}
# Export a secret automatically with the filename on pass
function gettoken() {
export "`basename $1`"="$(pass show $1)"
}
@ -106,11 +242,38 @@ function inotifytop() {
for foo in /proc/*/fd/*; do readlink -f $foo; done |grep inotify |cut -d/ -f3 |xargs -I '{}' -- ps --no-headers -o '%p %U %a' -p '{}' |uniq -c |sort -n
}
## COMPLETION SCRIPTS
if [[ -f /etc/bash_completion ]] && ! shopt -oq posix; then
. /etc/bash_completion
. /etc/bash_completion
fi
if [[ -f /etc/bash_completion ]] && ! shopt -oq posix; then
. /etc/bash_completion
if [[ -f /usr/share/bash-completion/completions/pipenv ]] && ! shopt -oq posix; then
. /usr/share/bash-completion/completions/pipenv
fi
if [[ -f /usr/share/bash-completion/completions/pass ]] && ! shopt -oq posix; then
. /usr/share/bash-completion/completions/pass
fi
if [[ -f /usr/share/bash-completion/completions/npm ]] && ! shopt -oq posix; then
. /usr/share/bash-completion/completions/npm
fi
if [[ -f /usr/share/bash-completion/completions/poetry ]] && ! shopt -oq posix; then
. /usr/share/bash-completion/completions/poetry
fi
if [[ -f /usr/share/doc/pkgfile/command-not-found.bash ]] && ! shopt -oq posix; then
. /usr/share/doc/pkgfile/command-not-found.bash
fi
if [[ -f /usr/share/git/completion/git-completion.bash ]] && ! shopt -oq posix; then
. /usr/share/git/completion/git-completion.bash
fi
if [[ -f /etc/bash_completion.d/pdm.bash-completion ]] && ! shopt -oq posix; then
. /etc/bash_completion.d/pdm.bash-completion
fi
function smallmkv() { ffmpeg -i "$1" -b 1000k -acodec libmp3lame -vcodec libx264 -ar 44100 -ab 56k -ac 2 -vpre fast -crf 24 \ "$1.mkv" ;}
@ -118,12 +281,7 @@ export LC_ALL=en_US.utf8
export LC_ALL=en_US.utf8
export LANG=C
alias gh='hub'
alias rake='bundle exec rake'
alias rails='spring rails'
alias rt='ruby -I"lib:test"' # rake test shortcut to run test for one script
# Checkout an older commit
function gco_date() {
git checkout `git rev-list -n 1 --before="$1" master`
}
@ -133,12 +291,6 @@ function make_aoc() {
pdftk 1-$1 aoc.pdf cat output aoc-$1
}
#My latest prompt
powerline-daemon -q
POWERLINE_BASH_CONTINUATION=1
POWERLINE_BASH_SELECT=1
. /usr/share/powerline/bindings/bash/powerline.sh
COMP_WORDBREAKS=${COMP_WORDBREAKS/=/}
COMP_WORDBREAKS=${COMP_WORDBREAKS/@/}
export COMP_WORDBREAKS
@ -148,12 +300,11 @@ export COMP_WORDBREAKS
export BLOCKSIZE=K
# export CDPATH=.:~:~/src:/etc
# export DISPLAY=:79
export EDITOR='nvim'
# export ftp_proxy=${MY_PROXY}
# export GPG_TTY='tty' # gpg-agent says it needs this
# export GREP_OPTIONS='-D skip --binary-files=without-match --ignore-case' # most commonly used grep options
export EDITOR='vim'
export GREP_OPTIONS='-D skip --binary-files=without-match --ignore-case'
# put list of remote hosts in ~/.hosts ...
export HOSTFILE=$HOME/.hosts
export HOSTFILE=$HOME/.hosts
# export IGNOREEOF=1 # prevent CTRL-D from immediately logging out
# export INPUTRC=/etc/inputrc # it's possible that this will make bash find my delete key (and everything else)((but i don't think it did))
# export INPUTRC=$HOME/.inputrc # type in whatever and press Page Up key and bash automatically fetches last command that starts with whatever and completes the command for you (requires '$HOME/.inputrc' with these lines: #Page up/page down && "\e[5~": history-search-backward && "\e[6~": history-search-forward)
@ -175,22 +326,19 @@ export PAGER='less -e'
# export PILOTRATE=57600 # make pilot-xfer go faster than 9600
export TERM='xterm'
export TIMEFORMAT=$'\nreal %3R\tuser %3U\tsys %3S\tpcpu %P\n'
# export USER_CLIENT=deluge
# export USER_DPRT=22218
# export USER_OPRT=47426
# export USER_VPRT=79
# export USER_WPRT=30818
# export VISUAL='subl'
# export wpsetters=feh
# ${file%\.[^.]*} # to remove filename extensions in bash
# fortune -a # fortunes at each new shell
# mesg n #
set -b # causes output from background processes to be output right away, not on wait for next primary prompt
# set bell-style visible # I hate noise
#set completion-ignore-case on # complete things that have been typed in the wrong case
# Disallow messages from other users
mesg n
# causes output from background processes to be output right away, not on wait for next primary prompt
set -b
set bell-style visible # I hate noise
set completion-ignore-case on # complete things that have been typed in the wrong case
# set -o ignoreeof # can't c-d out of shell
# set -o noclobber # disallow > to work on files that already exist (prevents catting over file)
set -o notify # notify when jobs running in background terminate
# notify when jobs running in background terminate
set -o notify
# set -o nounset # attempt to use undefined variable outputs error message and forces exit (messes up completion if enabled)
# set +o nounset # otherwise some completions will fail
#setopt autopushd pushdminus pushdsilent pushdtohome
@ -198,7 +346,6 @@ set -o notify # notify when jobs running in background terminate
# setopt extendedglob
# setopt hist_verify # verify when using !
# setopt nocheckjobs # don't complain about background jobs on e
# setopt no_clobber # don't overwrite files when redirect
# setopt nohup # don't kill bg jobs when tty quits
# setopt printexitvalue # print exit value from jobs
# setopt share_history
@ -243,19 +390,16 @@ ulimit -c unlimited # let me have core dumps
# unsetopt bgnice # don't nice bg command
##################################################
# To create a ZIP archive of a file or folder #
##################################################
# To create a ZIP archive of a file or folder
function zipf() { zip -r "$1".zip "$1" ; }
### Custom Functions For adding and fetching covers from a pdf ###
# Custom Functions For adding and fetching covers from a pdf
function addcover() { convert "$2" /tmp/cover.pdf; pdftk /tmp/cover.pdf "$1" cat output /tmp/final.pdf;mv /tmp/final.pdf "$1"; }
function getcover() { pdftk "$1" cat 1 output /tmp/cover.pdf; convert /tmp/cover.pdf cover.jpg;}
##################################################
# Directory shortcuts #
##################################################
#######################
# Directory shortcuts #
#######################
alias ..='cd ..'
alias ...='cd ../..'
@ -304,32 +448,54 @@ alias lt='ls -ltr' # sort by date, most recent last
alias lu='ls -ltur' # sort by and show access time, most recent last
alias lx='ls -lXB' # sort by extension
alias sss='sudo systemctl start'
alias sse='sudo systemctl enable'
alias ssd='sudo systemctl disable'
alias ssS='sudo systemctl stop'
alias ssh="cat ~/.ssh/config.d/p* > ~/.ssh/config; ssh"
alias ssr='sudo systemctl restart'
alias cda='composer dump-autoload'
#### FASD
eval "$(fasd --init auto)"
alias a='fasd -a' # any
alias s='fasd -si' # show / search / select
alias d='fasd -d' # directory
alias f='fasd -f' # file
alias sd='fasd -sid' # interactive directory selection
alias sf='fasd -sif' # interactive file selection
alias z='fasd_cd -d' # cd, same functionality as j in autojump
alias zz='fasd_cd -d -i' # cd with interactive selection
alias vim='nvim'
#### autojump using z
alias z='j' # cd, same functionality as j in autojump
source /etc/profile.d/autojump.bash
#### Docker
# Docker
# docker run image
alias dri='docker run --volume /home/nemo/tmp:/data --tty --rm --interactive --entrypoint /bin/sh '
# Better caching (among other things)
# https://github.com/moby/moby/issues/15717
export DOCKER_BUILDKIT=1
# docker run image, but with current directory mounted as /current
# Do not run this on untrusted images
alias dri_cwd='docker run --volume `pwd`:/current --volume /home/nemo/tmp:/data --tty --rm --interactive --entrypoint /bin/sh '
# container-top
alias ctop='docker run --name ctop -it --rm -v /var/run/docker.sock:/var/run/docker.sock:ro quay.io/vektorlab/ctop '
# Run hadolint
alias dockerlint='LC_ALL=C hadolint'
##### Terraform
# https://github.com/uber/makisu
function makisu_build() {
makisu_version=${MAKISU_VERSION:-v0.1.10}
cd ${@: -1}
docker run -i --rm --net host \
-v /var/run/docker.sock:/docker.sock \
-e DOCKER_HOST=unix:///docker.sock \
-v $(pwd):/makisu-context \
-v /tmp/makisu-storage:/makisu-storage \
gcr.io/makisu-project/makisu:$makisu_version build \
--commit=explicit \
--modifyfs=true \
--load \
${@:1:${#@}-1} /makisu-context
cd -
}
# Terraform
export TF_PLUGIN_CACHE_DIR="$HOME/.terraform.d/plugin-cache"
alias t=terraform
alias tp='terraform plan'
alias tpt='terraform plan --target '
@ -337,6 +503,7 @@ alias ta='terraform apply'
alias tat='terraform apply --target '
alias tfa='terraform apply --auto-approve'
alias tfat='terraform apply --auto-approve --target '
alias tfit='terraform init'
##### History Shenanigans
export HISTCONTROL=ignorespace:ignoredups:erasedups # for 'ignoreboth': ignore duplicates and /^\s/
@ -362,22 +529,14 @@ HISTSIZE=1000000
HISTFILESIZE=1000000
shopt -s histappend
### Added by the Heroku Toolbelt
pathadd '/usr/local/heroku/bin'
eval `keychain --eval --quiet --agents ssh id_rsa`
#Importing phpenv
# eval "$(phpenv init -)"
# Don't use this for sensitive files
transfer() { if [ $# -eq 0 ]; then echo -e "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md"; return 1; fi
tmpfile=$( mktemp -t transferXXX ); if tty -s; then basefile=$(basename "$1" | sed -e 's/[^a-zA-Z0-9._-]/-/g'); curl --progress-bar --upload-file "$1" "https://transfer.sh/$basefile" >> $tmpfile; else curl --progress-bar --upload-file "-" "https://transfer.sh/$1" >> $tmpfile ; fi; cat $tmpfile; rm -f $tmpfile; }
transfer() { if [ $# -eq 0 ]; then echo -e "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md"; return 1; fi
tmpfile=$( mktemp -t transferXXX ); if tty -s; then basefile=$(basename "$1" | sed -e 's/[^a-zA-Z0-9._-]/-/g'); curl --progress-bar --upload-file "$1" "https://transfer.sh/$basefile" >> $tmpfile; else curl --progress-bar --upload-file "-" "https://transfer.sh/$1" >> $tmpfile ; fi; cat $tmpfile; rm -f $tmpfile; }
export JAVA_HOME=/usr/lib/jvm/default-runtime
export EC2_HOME=/home/nemo/apps/ec2
export TF_PLUGIN_CACHE_DIR="$HOME/.terraform.d/plugin-cache"
# added by travis gem
[ -f /home/nemo/.travis/travis.sh ] && source /home/nemo/.travis/travis.sh
#[[ -s "/home/nemo/.gvm/scripts/gvm" ]] && source "/home/nemo/.gvm/scripts/gvm"
#PERL_MB_OPT="--install_base \"/home/nemo/perl5\""; export PERL_MB_OPT;
#PERL_MM_OPT="INSTALL_BASE=/home/nemo/perl5"; export PERL_MM_OPT;
@ -408,7 +567,6 @@ xset -b
# }
##
# http://boredzo.org/blog/archives/2016-08-15/colorized-man-pages-understood-and-customized
# colorized man pages
man() {
@ -425,148 +583,60 @@ man() {
man "$@"
}
# Overrides the display provided by imagemagick
function display() {
layout="$1"
if [[ "$1" == "toggle" ]]; then
# exchange it
CURRENT=$(cat ~/.screenlayout/current)
echo "current=$CURRENT"
case "$CURRENT" in
"office")
layout="single"
;;
"single")
layout="office"
;;
esac
fi
echo "layout=$layout"
if [[ "$layout" == "home" ]]; then
xrandr --newmode "2560x1080_60.00" \
230.00 2560 2720 2992 3424 \
1080 1083 1093 1120 -hsync +vsync
xrandr --addmode HDMI1 "2560x1080_60.00"
fi
if [[ -a ~/.screenlayout/$layout.sh ]]; then
`cd ~/.screenlayout && sh $layout.sh`
# Write the current layout
echo $layout > ~/.screenlayout/current
if [[ -e "~/Pictures/$layout.jpg" ]]; then
(cd ~/Pictures && cp "$layout.jpg" "./xin_1.jpg")
fi
sleep 3
nitrogen --restore
i3-msg reload
# dunst doesn't like screensize changes
killall dunst;notify-send "Display Switched"
fi
}
function mkcd() {
mkdir "$1"
mkdir --parents "$1"
cd "$1"
}
#SCM Breeze
[ -s "/home/nemo/.scm_breeze/scm_breeze.sh" ] && source "/home/nemo/.scm_breeze/scm_breeze.sh"
PATH="/home/nemo/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/home/nemo/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/home/nemo/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/home/nemo/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/home/nemo/perl5"; export PERL_MM_OPT;
# To allow global package installations for the current user
PATH="$HOME/.node_modules/bin:$PATH"
export npm_config_prefix=~/.node_modules
###-begin-npm-completion-###
#
# npm command completion script
#
# Installation: npm completion >> ~/.bashrc (or ~/.zshrc)
# Or, maybe: npm completion > /usr/local/etc/bash_completion.d/npm
#
if type complete &>/dev/null; then
_npm_completion () {
local words cword
if type _get_comp_words_by_ref &>/dev/null; then
_get_comp_words_by_ref -n = -n @ -n : -w words -i cword
else
cword="$COMP_CWORD"
words=("${COMP_WORDS[@]}")
fi
local si="$IFS"
IFS=$'\n' COMPREPLY=($(COMP_CWORD="$cword" \
COMP_LINE="$COMP_LINE" \
COMP_POINT="$COMP_POINT" \
npm completion -- "${words[@]}" \
2>/dev/null)) || return $?
IFS="$si"
if type __ltrim_colon_completions &>/dev/null; then
__ltrim_colon_completions "${words[cword]}"
fi
}
complete -o default -F _npm_completion npm
elif type compdef &>/dev/null; then
_npm_completion() {
local si=$IFS
compadd -- $(COMP_CWORD=$((CURRENT-1)) \
COMP_LINE=$BUFFER \
COMP_POINT=0 \
npm completion -- "${words[@]}" \
2>/dev/null)
IFS=$si
}
compdef _npm_completion npm
elif type compctl &>/dev/null; then
_npm_completion () {
local cword line point words si
read -Ac words
read -cn cword
let cword-=1
read -l line
read -ln point
si="$IFS"
IFS=$'\n' reply=($(COMP_CWORD="$cword" \
COMP_LINE="$line" \
COMP_POINT="$point" \
npm completion -- "${words[@]}" \
2>/dev/null)) || return $?
IFS="$si"
}
compctl -K _npm_completion npm
fi
###-end-npm-completion-###
#
#
# Stolen from @ThatHarmanSingh
function sprint() {
# Set time format to unix so we can subtract
HISTTIMEFORMAT='%s ' history |
# Set time format to unix so we can subtract
HISTTIMEFORMAT='%s ' history |
# History returns way more than needed
tail -n 4000 |
tail -n 4000 |
# Grep for git commits (after timestamps)
grep -E '^\d+\s+\d+\s+gc' |
grep -E '^\d+\s+\d+\s+gc' |
# Max 15 days ago
awk -v now=$(date +%s) '(now - $2) < 15*24*60*60' |
awk -v now=$(date +%s) '(now - $2) < 15*24*60*60' |
# Cut out the timestamps for uniq check
cut -d ' ' -f 4- |
# To handle multiple commit-pull-reset-commit cycles
uniq
}
# https://github.com/uber/makisu
# https://starship.rs/advanced-config/#change-window-title
function starship_set_win_title(){
echo -ne "\033]0; $PWD \007"
}
function makisu_build() {
makisu_version=${MAKISU_VERSION:-v0.1.8}
docker run -i --rm --net host \
-v /var/run/docker.sock:/docker.sock \
-e DOCKER_HOST=unix:///docker.sock \
-v $(pwd):/makisu-context \
-v /tmp/makisu-storage:/makisu-storage \
gcr.io/makisu-project/makisu:$makisu_version build \
--modifyfs=true --load \
${@:1:-1} /makisu-context
# popd
}
starship_precmd_user_func="starship_set_win_title"
eval "$(starship init bash)"
[ -s "/usr/share/scm_breeze/scm_breeze.sh" ] && source "/usr/share/scm_breeze/scm_breeze.sh"
function ytdl.album() {
cd $(mktemp -d)
youtube-dl --quiet -f "bestaudio[ext=m4a]" --output "audio.m4a" "$1"
youtube-cue --audio-file "audio.m4a" "$1" tracks.cue
m4acut -C tracks.cue "audio.m4a" && \
trash audio.m4a && \
beet import -map .
}
function gaanadl.album() {
cd $(mktemp -d)
youtube-dl --rm-cache-dir --no-cache-dir --quiet --autonumber-start 1 --add-metadata -o "%(autonumber)d - %(title)s.m4a" "$1"
beet import -map .
cd -
}
PATH="/home/nemo/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/home/nemo/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/home/nemo/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/home/nemo/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/home/nemo/perl5"; export PERL_MM_OPT;

View File

@ -0,0 +1,47 @@
add_newline = false
format = """\
$username\
$hostname\
$kubernetes\
$directory\
$git_branch\
$git_commit\
$git_state\
$git_status\
$docker_context\
$package\
$elixir\
$golang\
$nodejs\
$php\
$python\
$ruby\
$rust\
$terraform\
$aws\
$env_var\
$crystal\
$cmd_duration\
$custom\
$line_break\
$memory_usage\
$jobs\
$time\
$character"""
[time]
disabled = false
time_format = "[%d %b | %H:%M]"
utc_time_offset = "+5.5"
[jobs]
symbol = "+ "
threshold = 2
[memory_usage]
disabled = false
[cmd_duration]
min_time = 500
disabled = false

View File

@ -8,6 +8,11 @@
# for ssh logins, install and configure the libpam-umask package.
#umask 022
export PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:$HOME/bin:/sbin:$HOME/projects/scripts/:$HOME/.node_modules/bin:$HOME/.gem/ruby/2.5.0/bin"
export PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:$HOME/bin:/sbin:$HOME/projects/scripts/:$HOME/.node_modules/bin:$HOME/.gem/ruby/2.5.0/bin:/home/nemo/.local/bin:$HOME/bin:/bin"
export npm_config_prefix=~/.node_modules
export GOPATH="/home/nemo/projects/go"
export GOPATH="/home/nemo/projects/go"
PATH="/usr/sbin:/usr/games:$PATH"
# Make sure qt5-styleplugins is installed for this to work
# https://wiki.archlinux.org/index.php/Uniform_look_for_Qt_and_GTK_applications#Theme_engines
export QT_QPA_PLATFORMTHEME=gtk2

View File

@ -1,5 +1,9 @@
# Set the theme to "TwoDark"
--theme="OneHalfDark"
# This is `bat`s configuration file. Each line either contains a comment or
# a command-line option that you want to pass to `bat` by default. You can
# run `bat --help` to get a list of all possible configuration options.
# The theme is set by the light/dark functions
# in bashrc
# Show line numbers, Git modifications and file header (but no grid)
# --style="changes,header"
@ -15,4 +19,4 @@
--map-syntax h:cpp
# Use "gitignore" highlighting for ".ignore" files
--map-syntax .ignore:.gitignore
--map-syntax .ignore:.gitignore

View File

@ -4,4 +4,5 @@ command-history
search-history
*.pl
now-playing.txt
resume
resume
playlists

2
files/dev/.config/composer/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
auth.json
vendor/

View File

@ -0,0 +1,6 @@
{
"require": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.1",
"phpcompatibility/php-compatibility": "^9.3"
}
}

207
files/dev/.config/composer/composer.lock generated Normal file
View File

@ -0,0 +1,207 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "27770b082235d40e3f8879ce2ee76de1",
"packages": [
{
"name": "dealerdirect/phpcodesniffer-composer-installer",
"version": "v0.7.1",
"source": {
"type": "git",
"url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
"reference": "fe390591e0241955f22eb9ba327d137e501c771c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/fe390591e0241955f22eb9ba327d137e501c771c",
"reference": "fe390591e0241955f22eb9ba327d137e501c771c",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0 || ^2.0",
"php": ">=5.3",
"squizlabs/php_codesniffer": "^2.0 || ^3.0 || ^4.0"
},
"require-dev": {
"composer/composer": "*",
"phpcompatibility/php-compatibility": "^9.0",
"sensiolabs/security-checker": "^4.1.0"
},
"type": "composer-plugin",
"extra": {
"class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
},
"autoload": {
"psr-4": {
"Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Franck Nijhof",
"email": "franck.nijhof@dealerdirect.com",
"homepage": "http://www.frenck.nl",
"role": "Developer / IT Manager"
}
],
"description": "PHP_CodeSniffer Standards Composer Installer Plugin",
"homepage": "http://www.dealerdirect.com",
"keywords": [
"PHPCodeSniffer",
"PHP_CodeSniffer",
"code quality",
"codesniffer",
"composer",
"installer",
"phpcs",
"plugin",
"qa",
"quality",
"standard",
"standards",
"style guide",
"stylecheck",
"tests"
],
"support": {
"issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues",
"source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer"
},
"time": "2020-12-07T18:04:37+00:00"
},
{
"name": "phpcompatibility/php-compatibility",
"version": "9.3.5",
"source": {
"type": "git",
"url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
"reference": "9fb324479acf6f39452e0655d2429cc0d3914243"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243",
"reference": "9fb324479acf6f39452e0655d2429cc0d3914243",
"shasum": ""
},
"require": {
"php": ">=5.3",
"squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
},
"conflict": {
"squizlabs/php_codesniffer": "2.6.2"
},
"require-dev": {
"phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
},
"suggest": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
},
"type": "phpcodesniffer-standard",
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-3.0-or-later"
],
"authors": [
{
"name": "Wim Godden",
"homepage": "https://github.com/wimg",
"role": "lead"
},
{
"name": "Juliette Reinders Folmer",
"homepage": "https://github.com/jrfnl",
"role": "lead"
},
{
"name": "Contributors",
"homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
}
],
"description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
"homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
"keywords": [
"compatibility",
"phpcs",
"standards"
],
"support": {
"issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues",
"source": "https://github.com/PHPCompatibility/PHPCompatibility"
},
"time": "2019-12-27T09:44:58+00:00"
},
{
"name": "squizlabs/php_codesniffer",
"version": "3.6.0",
"source": {
"type": "git",
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
"reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ffced0d2c8fa8e6cdc4d695a743271fab6c38625",
"reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625",
"shasum": ""
},
"require": {
"ext-simplexml": "*",
"ext-tokenizer": "*",
"ext-xmlwriter": "*",
"php": ">=5.4.0"
},
"require-dev": {
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
},
"bin": [
"bin/phpcs",
"bin/phpcbf"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.x-dev"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Greg Sherwood",
"role": "lead"
}
],
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
"homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
"keywords": [
"phpcs",
"standards"
],
"support": {
"issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
"source": "https://github.com/squizlabs/PHP_CodeSniffer",
"wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
},
"time": "2021-04-09T00:54:41+00:00"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform-dev": [],
"plugin-api-version": "2.1.0"
}

View File

@ -1,3 +0,0 @@
{
"config": {}
}

3
files/dev/.docker/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
.buildNodeID
buildx
.token_seed*

View File

@ -0,0 +1,2 @@
# Ignore this, but keep the name so I remember to install it
docker-scan

View File

@ -1,9 +1,10 @@
{
"auths": {
"https://index.docker.io/v1/": {}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.09.2-ce (linux)"
"c.rzp.io": {},
"ghcr.io": {},
"harbor.razorpay.com": {},
"https://index.docker.io/v1/": {},
"quay.io": {}
},
"credsStore": "pass"
}
}

1
files/dev/.docker/scan/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
tokens.json

View File

@ -0,0 +1 @@
{"path":"","optin":true}

View File

@ -0,0 +1,19 @@
output DP1
off
output DP2
off
output HDMI2
off
output VIRTUAL1
off
output eDP1
gamma 1.0:1.0:0.909
mode 1368x768
pos 0x0
primary
rate 59.88
output HDMI1
gamma 1.0:1.0:0.909
mode 1360x768
pos 0x0
rate 60.37

View File

@ -0,0 +1,2 @@
HDMI1 00ffffffffffff007fff00900f0000000112010380a05a780a01c1a057479827124c4c21080031404540614081800101010101010101982150b051001b304070360040846300001e4c1d007251d01e206e28550040846300001e000000fc004c4344545631360a2020202020000000fd00303e0e440f000a2020202020200199020323704f01020304050607101112131415161f230907078301000066030c00200080011d80d0721c1620102c258040846300009e011d8018711c1620582c2500408463000098011d00bc52d01e20b828554040846300001e023a80d072382d40102c458040846300001e023a801871382d40582c450040846300001e0000f8
eDP1 00ffffffffffff000610f09c0000000011160104951d127802ef05975754922722505400000001010101010101010101010101010101b922a0a050841a30302036001eb300000018000000100000000000000000000000000000000000fe004c534e31333342543031413032000000fc00436f6c6f72204c43440a2020200009

View File

@ -0,0 +1,19 @@
output DP1
off
output DP2
off
output HDMI2
off
output VIRTUAL1
off
output eDP1
gamma 1.0:1.0:0.909
mode 1368x768
pos 0x0
primary
rate 59.88
output HDMI1
gamma 1.0:1.0:0.909
mode 1366x768
pos 2x0
rate 60.00

View File

@ -0,0 +1,2 @@
HDMI1 00ffffffffffff000d0430000100000001170103808b4e782a501fa359499724bb4f53210800818081c08100d1c0617c81fc01010101023a801871382d40582c450072105300001e662150b051001b304070360072105300001e000000fc00434855440a2020202020202020000000fd00174c0f501e000a202020202020019202032ef25101020304050790121314169f202206111523091707830100006f030c002000b83c20006201020300001622569e510031303e90a500721053000018023a80d072382d40102c458072105300001e023a801871382d405828450072105300001e0e1f008051001e305080370072105300001c000000000000000000e5
eDP1 00ffffffffffff000610f09c0000000011160104951d127802ef05975754922722505400000001010101010101010101010101010101b922a0a050841a30302036001eb300000018000000100000000000000000000000000000000000fe004c534e31333342543031413032000000fc00436f6c6f72204c43440a2020200009

View File

@ -0,0 +1,17 @@
output HDMI1
off
output VIRTUAL1
off
output DP2
crtc 1
gamma 1.0:1.0:0.909
mode 1920x1080
pos 0x0
rate 60.00
output DP1
crtc 0
gamma 1.0:1.0:0.909
mode 2560x1080
pos 1920x0
primary
rate 60.00

View File

@ -0,0 +1,2 @@
DP1 00ffffffffffff001e6df1594a940700081c010380431c78eaca95a6554ea1260f5054a54b80714f818081c0a9c0b3000101010101017e4800e0a0381f4040403a00a11c21000018023a801871382d40582c4500a11c2100001e000000fc004c4720554c545241574944450a000000fd00384b1e5a18000a20202020202001ac02031cf1499004031412051f0113230907078301000065030c001000023a801871382d40582c450056512100001e011d8018711c1620582c250056512100009e011d007251d01e206e28550056512100001e8c0ad08a20e02d10103e9600565121000018000000ff003830384e545954454c3731340a00000000000000000077
DP2 00ffffffffffff004c2d2c0d42335030201c010380341d782a5295a556549d250e5054bb8c00b30081c0810081809500a9c001010101023a801871382d40582c450009252100001e000000fd0032481e5111000a202020202020000000fc00433234463339300a2020202020000000ff004854514b3830313635300a2020017b02031af14690041f131313230904078301000066030c00100080011d00bc52d01e20b828554009252100001e011d007251d01e206e285500092521000018011d007251d01e206e285500092521000018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060

View File

@ -0,0 +1,19 @@
output DP2
off
output HDMI1
off
output HDMI2
off
output VIRTUAL1
off
output DP1
gamma 1.0:0.769:0.625
mode 1920x1080
pos 0x0
rate 60.00
output eDP1
gamma 1.0:0.769:0.625
mode 1440x900
pos 1920x180
primary
rate 60.00

View File

@ -0,0 +1,2 @@
DP1 00ffffffffffff004c2d2d0d42335030201c01030e341d782a5295a556549d250e5054bb8c00b30081c0810081809500a9c001010101023a801871382d40582c450009252100001e000000fd0038481e5111000a202020202020000000fc00433234463339300a2020202020000000ff004854514b3830313635300a202000e7
eDP1 00ffffffffffff000610f09c0000000011160104951d127802ef05975754922722505400000001010101010101010101010101010101b922a0a050841a30302036001eb300000018000000100000000000000000000000000000000000fe004c534e31333342543031413032000000fc00436f6c6f72204c43440a2020200009

View File

@ -0,0 +1,16 @@
output DP1
off
output DP2
off
output HDMI1
off
output HDMI2
off
output VIRTUAL1
off
output eDP1
gamma 1.0:1.0:0.909
mode 1440x900
pos 0x0
primary
rate 60.00

View File

@ -0,0 +1 @@
eDP1 00ffffffffffff000610f09c0000000011160104951d127802ef05975754922722505400000001010101010101010101010101010101b922a0a050841a30302036001eb300000018000000100000000000000000000000000000000000fe004c534e31333342543031413032000000fc00436f6c6f72204c43440a2020200009

View File

@ -0,0 +1,15 @@
output HDMI1
off
output VIRTUAL1
off
output DP2
gamma 1.0:1.0:0.909
mode 1920x1080
pos 0x0
rate 60.00
output DP1
gamma 1.0:1.0:0.909
mode 2560x1080
pos 1920x0
primary
rate 60.00

View File

@ -0,0 +1,2 @@
DP1 00ffffffffffff001e6df1594a940700081c010380431c78eaca95a6554ea1260f5054a54b80714f818081c0a9c0b3000101010101017e4800e0a0381f4040403a00a11c21000018023a801871382d40582c4500a11c2100001e000000fc004c4720554c545241574944450a000000fd00384b1e5a18000a20202020202001ac02031cf1499004031412051f0113230907078301000065030c002000023a801871382d40582c450056512100001e011d8018711c1620582c250056512100009e011d007251d01e206e28550056512100001e8c0ad08a20e02d10103e9600565121000018000000ff003830384e545954454c3731340a00000000000000000067
DP2 00ffffffffffff004c2d2d0d42335030201c010380341d782a5295a556549d250e5054bb8c00b30081c0810081809500a9c001010101023a801871382d40582c450009252100001e000000fd0038481e5111000a202020202020000000fc00433234463339300a2020202020000000ff004854514b3830313635300a2020017402031101411067030c001000003ce2000f023a801871382d40582c45006d552100001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031

View File

@ -0,0 +1,4 @@
#!/bin/sh
sleep 2
nitrogen --restore

View File

@ -0,0 +1,15 @@
output DP1
off
output VIRTUAL1
off
output DP2
gamma 1.0:1.0:0.909
mode 1920x1200
pos 1920x0
rate 59.95
output eDP1
gamma 1.0:1.0:0.909
mode 1920x1080
pos 0x120
primary
rate 60.00

View File

@ -0,0 +1,2 @@
DP2 00ffffffffffff0010acbaa055354b31091c010380342078220495a9554d9d26105054a54b00714f8180a940d1c0d100010101010101283c80a070b023403020360006442100001e000000ff004635474a32383252314b35550a000000fc0044454c4c2055323431350a2020000000fd00313d1e5311000a2020202020200177020322c14f9005040302071601141f12132021222309070765030c00100083010000023a801871382d40582c450006442100001e011d8018711c1620582c250006442100009e011d007251d01e206e28550006442100001e8c0ad08a20e02d10103e9600064421000018000000000000000000000000000000000000000000b2
eDP1 00ffffffffffff004d10841400000000281b0104a51d11780ede50a3544c99260f505400000001010101010101010101010101010101ac3780a070383e403020350026a510000018892c80a070383e403020350026a510000018000000fe005754315233814c513133334d31000000000002410328001200000b010a20200001

View File

@ -1,12 +0,0 @@
[geometry]
posx=0
posy=300
sizex=1440
sizey=879
[nitrogen]
view=icon
recurse=true
sort=alpha
icon_caps=false
dirs=/home/nemo/projects/personal/avatars/wallpaper;/home/nemo/Pictures/Wallpapers;

View File

@ -0,0 +1,2 @@
#!/bin/sh
xrandr --output VIRTUAL1 --off --output eDP1 --primary --mode 1280x800 --pos 0x0 --rotate normal --output DP1 --off --output HDMI2 --off --output HDMI1 --mode 1280x800 --pos 0x0 --rotate normal --output DP2 --off

View File

@ -0,0 +1,2 @@
#!/bin/sh
xrandr --output VIRTUAL1 --off --output eDP1 --primary --mode 1368x768 --pos 0x0 --rotate normal --output DP1 --off --output HDMI2 --off --output HDMI1 --mode 1366x768 --pos 0x0 --rotate normal --output DP2 --off

View File

@ -0,0 +1,2 @@
#!/bin/sh
xrandr --output VIRTUAL1 --off --output eDP1 --primary --mode 1368x768 --pos 0x0 --rotate normal --output DP1 --off --output HDMI2 --off --output HDMI1 --mode 1360x768 --pos 0x0 --rotate normal --output DP2 --off

View File

@ -35,4 +35,4 @@ robots = off
server_response = off
user_agent = Mozilla/Gecko/Firefox/58.0
content_disposition = off
content_disposition = on

View File

@ -0,0 +1,29 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Use Google Emojis -->
<match target="pattern">
<test qual="any" name="family"><string>Segoe UI Emoji</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>
<alias binding="weak">
<family>sans-serif</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
<alias binding="weak">
<family>serif</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
<alias binding="weak">
<family>monospace</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
</fontconfig>

View File

@ -0,0 +1,105 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>monospace</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Droid Sans Mono</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Droid Sans Mono Slashed</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Droid Sans Mono Dotted</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>DejaVu Sans Mono</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>DejaVu Sans Mono</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Envy Code R</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Inconsolata</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Lucida Console</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Monaco</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Pragmata</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>PragmataPro</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Menlo</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Source Code Pro</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Consolas</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Anonymous pro</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Bitstream Vera Sans Mono</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Liberation Mono</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Ubuntu Mono</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Meslo LG L</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Meslo LG L DZ</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Meslo LG M</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Meslo LG M DZ</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Meslo LG S</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
<alias>
<family>Meslo LG S DZ</family>
<prefer><family>PowerlineSymbols</family></prefer>
</alias>
</fontconfig>

View File

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>
</fontconfig>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
<test name="prgname">
<string>firefox</string>
</test>
<edit name="family" mode="prepend" binding="weak">
<string>Noto Color Emoji</string>
</edit>
</match>
</fontconfig>

View File

@ -0,0 +1,29 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font" >
<edit mode="assign" name="rgba" >
<const>rgb</const>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="hinting" >
<bool>true</bool>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="hintstyle" >
<const>hintslight</const>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="antialias" >
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="lcdfilter">
<const>lcddefault</const>
</edit>
</match>
</fontconfig>

View File

@ -0,0 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- aliases -->
<alias>
<family>monospace</family>
<prefer><family>Input Mono</family></prefer>
</alias>
</fontconfig>

View File

@ -0,0 +1,64 @@
set mainfont {sans 9}
set textfont {monospace 9}
set uifont {sans 9 bold}
set tabstop 8
set findmergefiles 0
set maxgraphpct 50
set maxwidth 16
set cmitmode tree
set wrapcomment none
set autoselect 1
set autosellen 40
set showneartags 1
set maxrefs 20
set visiblerefs {"master"}
set hideremotes 0
set showlocalchanges 1
set datetimeformat {%Y-%m-%d %H:%M:%S}
set limitdiffs 1
set uicolor grey85
set want_ttk 1
set bgcolor white
set fgcolor black
set uifgcolor black
set uifgdisabledcolor #999
set colors {"#00ff00" red blue magenta darkgrey brown orange}
set diffcolors {"#c30000" "#009800" blue}
set mergecolors {red blue "#00ff00" purple brown "#009090" magenta "#808000" "#009000" "#ff0080" cyan "#b07070" "#70b0f0" "#70f0b0" "#f0b070" "#ff70b0"}
set markbgcolor #e0e0ff
set diffcontext 3
set selectbgcolor gray85
set foundbgcolor yellow
set currentsearchhitbgcolor orange
set extdifftool meld
set perfile_attrs 0
set headbgcolor #00ff00
set headfgcolor black
set headoutlinecolor black
set remotebgcolor #ffddaa
set tagbgcolor yellow
set tagfgcolor black
set tagoutlinecolor black
set reflinecolor black
set filesepbgcolor #aaaaaa
set filesepfgcolor black
set linehoverbgcolor #ffff80
set linehoverfgcolor black
set linehoveroutlinecolor black
set mainheadcirclecolor yellow
set workingfilescirclecolor red
set indexcirclecolor #00ff00
set circlecolors {white blue gray blue blue}
set linkfgcolor blue
set circleoutlinecolor black
set diffbgcolors {"#fff3f3" "#f0fff0"}
set web_browser xdg-open
set geometry(main) 1303x960+583+34
set geometry(state) normal
set geometry(topwidth) 1303
set geometry(topheight) 164
set geometry(pwsash0) "531 1"
set geometry(pwsash1) "796 1"
set geometry(botwidth) 858
set geometry(botheight) 791
set permviews {}

View File

@ -0,0 +1,10 @@
[Unit]
Description=Automatically does git push and pull on a number of repos
[Service]
Type=simple
ExecStart=/home/nemo/projects/scripts/syncrepos
Nice=19
[Install]
WantedBy=autosync-repos.target

View File

@ -0,0 +1,9 @@
[Unit]
Description=Automatically does git push and pull on a number of repos
[Timer]
OnBootSec=1min
OnUnitActiveSec=15min
[Install]
WantedBy=timers.target

View File

@ -18,7 +18,7 @@ export git_setup_aliases="yes"
# Git Index Config
# ----------------------------------------------
# Repos will be automatically added from this directory.
export GIT_REPO_DIR="$HOME/code"
export GIT_REPO_DIR="$HOME/projects"
# Add the full paths of any extra repos to GIT_REPOS, separated with ':'
# e.g. "/opt/rails/project:/opt/rails/another project:$HOME/other/repo"
export GIT_REPOS=""
@ -26,7 +26,6 @@ export git_status_command="git_status_shortcuts"
# Alias
git_index_alias="c" # Switch to a repo in the (c)ode directory
# Git Aliases
# ----------------------------------------------
git_alias="g"
@ -111,4 +110,4 @@ git_commit_all_with_ci_skip_keys="\C-xv" # CTRL+x, v (Appends [ci skip] to c
# Expand numbered args for common shell commands
shell_command_wrapping_enabled="true"
# Here you can tweak the list of wrapped commands.
scmb_wrapped_shell_commands="vim emacs gedit cat rm cp mv ln cd"
scmb_wrapped_shell_commands="vim emacs gedit cat rm cp mv ln cd bat glow"

View File

@ -1,7 +1,7 @@
[user]
name = Nemo
email = me@captnemo.in
signingkey = B8963685
signingkey = 468F9102AB8BF8C959C2F9A4F94EA74A4EA9EB52
[github]
user = captn3m0
@ -56,21 +56,10 @@
# https://github.com/so-fancy/diff-so-fancy
pager = diff-so-fancy | less --tabs=4 -RFX
preloadindex = true
quotepath = false
[svn-remote "svn"]
#svn checkout https://svn.code.sf.net/p/elibsrv/code/ elibsrv-code
# url = http://localhost:81/svn/project/branches
branches =
tags =
[url "ssh://git@github.com/"]
insteadOf = https://github.com/
[url "ssh://git@gitlab.com/"]
insteadOf = https://gitlab.com/
[url "ssh://git@bitbucket.org/"]
insteadOf = https://bitbucket.org/
[credential]
helper = cache --timeout=3600
helper = /usr/bin/pass-git-helper
[color "diff"]
meta = yellow
frag = magenta bold
@ -81,4 +70,4 @@
[diff-so-fancy]
useUnicodeRuler = false
[init]
templateDir = ~/.githooks/templates
defaultBranch = main

View File

@ -1,14 +1,19 @@
---
~/projects/work/razorpay:
name: Nemo
email: nemo@razorpay.com
name: Nemo
email: nemo@razorpay.com
~/projects/personal:
name: Nemo
email: me@captnemo.in
name: Nemo
email: commits@captnemo.in
# AUR packages
~/projects/personal/aur:
name: Nemo
email: archlinux@captnemo.in
name: Nemo
email: archlinux@captnemo.in
~/projects/personal/shauryaa:
name: Abhishek
email: mama@shauryaa.in
name: Abhishek
email: mama@shauryaa.in
# This is a Google Project, so requires a
# email that I have in my Google Account
~/projects/personal/kapitan:
Name: Abhay Rana
email: google@captnemo.in

1
files/gtk/.config/gtk-2.0/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
gtkfilechooser.ini

View File

@ -0,0 +1,7 @@
/* Remove dotted lines from GTK+ 3 applications */
undershoot.top,
undershoot.right,
undershoot.bottom,
undershoot.left {
background-image: none;
}

View File

View File

@ -1,250 +1,87 @@
#################################
#
# Backend
#
#################################
# Backend to use: "xrender" or "glx".
# GLX backend is typically much faster but depends on a sane driver.
backend = "xrender";
#################################
#
# GLX backend
#
#################################
glx-no-stencil = true;
# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all.
# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified,
# but a 20% increase when only 1/4 is.
# My tests on nouveau show terrible slowdown.
# Useful with --glx-swap-method, as well.
glx-copy-from-front = true;
# GLX backend: Use MESA_copy_sub_buffer to do partial screen update.
# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated.
# May break VSync and is not available on some drivers.
# Overrides --glx-copy-from-front.
# glx-use-copysubbuffermesa = true;
# GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
# Recommended if it works.
# glx-no-rebind-pixmap = true;
# GLX backend: GLX buffer swap method we assume.
# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1).
# undefined is the slowest and the safest, and the default value.
# copy is fastest, but may fail on some drivers,
# 2-6 are gradually slower but safer (6 is still faster than 0).
# Usually, double buffer means 2, triple buffer means 3.
# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers.
# Useless with --glx-use-copysubbuffermesa.
# Partially breaks --resize-damage.
# Defaults to undefined.
glx-swap-method = "undefined";
#################################
#
# Shadows
#
#################################
# Enabled client-side shadows on windows.
shadow = false;
# Don't draw shadows on DND windows.
no-dnd-shadow = true;
# Avoid drawing shadows on dock/panel windows.
no-dock-shadow = false;
# Zero the part of the shadow's mask behind the window. Fix some weirdness with ARGB windows.
clear-shadow = true;
# The blur radius for shadows. (default 12)
shadow-radius = 3;
# The left offset for shadows. (default -15)
shadow-offset-x = -5;
# The top offset for shadows. (default -15)
shadow-offset-y = -5;
# The translucency for shadows. (default .75)
shadow-opacity = 0.85;
# Set if you want different colour shadows
shadow-red = 0.03;
shadow-green = 0.03;
shadow-blue = 0.04;
# 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
# (most applications are fine, only apps that do weird things with xshapes or argb are affected).
# 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.
# Shadow
shadow = false
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;
log-level = "warn";
# log-file = "/path/to/your/log/file";
# shadow-opacity = 0.7;
# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;
shadow-exclude = [
# "! name~=''",
# "name = 'Notification'",
# "name = 'Plank'",
# "name = 'Docky'",
# "name = 'Kupfer'",
# "name = 'xfce4-notifyd'",
# "name *= 'VLC'",
# "name *= 'compton'",
# "name *= 'Chromium'",
# "name *= 'Chrome'",
# "name *= 'Firefox'",
# "class_g = 'Conky'",
# "class_g = 'Kupfer'",
# "class_g = 'Synapse'",
# "class_g ?= 'Notify-osd'",
# "class_g ?= 'Cairo-dock'",
# "class_g ?= 'Xfce4-notifyd'",
# "class_g ?= 'Xfce4-power-manager'"
# "name = 'poniesbox'"
"name = 'Notification'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'",
"class_g = 'Firefox Beta'",
"class_g = 'Firefox'",
"_GTK_FRAME_EXTENTS@:c"
];
# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners)
shadow-ignore-shaped = false;
# shadow-exclude = "n:e:Notification";
# shadow-exclude-reg = "x10+0+0";
# xinerama-shadow-crop = true;
#################################
#
# Opacity
#
#################################
menu-opacity = 1;
inactive-opacity = 0.7;
inactive-opacity = 0.5;
active-opacity = 1.0;
frame-opacity = 0.7;
frame-opacity = 1.0;
inactive-opacity-override = false;
alpha-step = 0.06;
# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.
#blur-kern = "7,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"
#blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"
blur-kern = "3,3,1,1,1,1,1,1,1,1"
blur-background = true;
# Blur background of opaque windows with transparent frames as well.
blur-background-frame = false;
# Do not let blur radius adjust based on window opacity.
blur-background-fixed = false;
# inactive-dim = 0.2;
# inactive-dim-fixed = true;
# blur-background = true;
# blur-background-frame = true;
blur-kern = "3x3box";
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
# blur-background-fixed = true;
blur-background-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'"
"window_type = 'desktop'",
"_GTK_FRAME_EXTENTS@:c"
];
# opacity-rule = [ "80:class_g = 'URxvt'" ];
#################################
#
# Fading
#
#################################
# Fade windows during opacity changes.
fading = false;
# The time between steps in a fade in milliseconds. (default 10).
fade-delta = 5;
# Opacity change between steps while fading in. (default 0.028).
fade-in-step = 0.2;
# Opacity change between steps while fading out. (default 0.03).
fade-out-step = 0.2;
# Fade windows in/out when opening/closing
fade-delta = 15;
fade-in-step = 0.05;
fade-out-step = 0.05;
# no-fading-openclose = true;
# no-fading-destroyed-argb = true;
fade-exclude = [ ];
# Specify a list of conditions of windows that should not be faded.
fade-exclude = [
# "title = 'cava'",
"fullscreen"
];
#################################
#
# Other
#
#################################
# Try to detect WM windows and mark them as active.
backend = "xr_glx_hybrid";
mark-wmwin-focused = true;
# Mark all non-WM but override-redirect windows active (e.g. menus).
mark-ovredir-focused = true;
# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events.
# Usually more reliable but depends on a EWMH-compliant WM.
use-ewmh-active-win = true;
# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.
# use-ewmh-active-win = true;
detect-rounded-corners = true;
# Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows.
# This prevents opacity being ignored for some apps.
# For example without this enabled my xfce4-notifyd is 100% opacity no matter what.
detect-client-opacity = true;
# Specify refresh rate of the screen.
# If not specified or 0, compton will try detecting this with X RandR extension.
refresh-rate = 60;
# Set VSync method. VSync methods currently available:
# none: No VSync
# drm: VSync with DRM_IOCTL_WAIT_VBLANK. May only work on some drivers.
# opengl: Try to VSync with SGI_video_sync OpenGL extension. Only work on some drivers.
# opengl-oml: Try to VSync with OML_sync_control OpenGL extension. Only work on some drivers.
# 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 doesnt have the effect of --sw-opti unlike other methods. Experimental.
# opengl-mswc: Try to VSync with MESA_swap_control OpenGL extension. Basically the same as opengl-swc above, except the extension we use.
# (Note some VSync methods may not be enabled at compile time.)
vsync = "none";
# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
# Reported to have no effect, though.
dbe = true;
# Painting on X Composite overlay window. Recommended.
paint-on-overlay = true;
# Limit compton to repaint at most once every 1 / refresh_rate second to boost performance.
# This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already,
# unless you wish to specify a lower refresh rate than the actual value.
sw-opti = false;
# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games.
# Known to cause flickering when redirecting/unredirecting windows.
# paint-on-overlay may make the flickering less obvious.
unredir-if-possible = true;
# Specify a list of conditions of windows that should always be considered focused.
focus-exclude = [
"name *= 'rofi'",
"class_i = 'Popup'",
"class_g = 'mpv'",
"fullscreen",
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_FULLSCREEN'", # fullscreen
"class_g = 'SDL_App'", # ffplay through bwrap
"class_g = 'Vlc'", # vlc
"!name ~= ''"
];
# Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time.
refresh-rate = 0;
vsync = true;
# sw-opti = true;
# Fixes flicker
unredir-if-possible = false;
# unredir-if-possible-delay = 5000;
# unredir-if-possible-exclude = [ ];
focus-exclude = [ "class_g = 'Cairo-clock'" ];
detect-transient = true;
# Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time.
# WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too.
detect-client-leader = true;
invert-color-include = [ ];
# resize-damage = 1;
# GLX backend
# glx-no-stencil = true;
# glx-no-rebind-pixmap = true;
# xrender-sync-fence = true;
use-damage = true;
#################################
#
# Window type settings
#
#################################
wintypes:
{
tooltip =
{
# fade: Fade the particular type of windows.
fade = true;
# shadow: Give those windows shadow
shadow = false;
# opacity: Default opacity for the type of windows.
opacity = 0.85;
# focus: Whether to always consider windows of this type focused.
focus = true;
};
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
dock = { shadow = false; }
dnd = { shadow = false; }
popup_menu = { opacity = 1; }
dropdown_menu = { opacity = 1; }
};
opacity-rule = [
"99:class_g = 'Vlc'",
"99:class_g = 'WorkFlowy'",
"99:class_g = 'cava'",
"99:fullscreen"
];

View File

@ -1,5 +1,5 @@
[global]
font = Source Sans Pro 12
font = Input Sans Narrow 12
markup = yes
plain_text = no
@ -10,22 +10,7 @@ indicate_hidden = yes
alignment = right
bounce_freq = 1
show_age_threshold = 60;
word_wrap = yes
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectevly.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
#geometry = "250x50-40+40"
geometry = "500x50-15+49"
# Shrink window if it's smaller than the width. Will be ignored if
@ -43,18 +28,7 @@ transparency = 5
idle_threshold = 20
# Which monitor should the notifications be displayed on.
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a windowmanager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern windowmanagers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
# This picks the one with keyboard focus
follow = keyboard
# Should a notification popped up from history be sticky or timeout
@ -72,10 +46,12 @@ show_indicators = yes
# This adds empty space above and under the text.
line_height = 3
notification_height = 80
# Draw a line of "separatpr_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2;
separator_height = 5;
# Define a color for the separator.
# possible values are:
@ -86,11 +62,13 @@ separator_height = 2;
separator_color = auto
# Padding between text and separator.
padding = 6
padding = 10
# Horizontal padding.
horizontal_padding = 6
frame_width = 2
# Hide duplicate's count and stack them
stack_duplicates = yes
hide_duplicates_count = yes
@ -100,7 +78,32 @@ icon_position = off
max_icon_size = 80
# Paths to default icons.
icon_folders = /usr/share/icons/Paper/16x16/mimetypes/:/usr/share/icons/Paper/48x48/status/:/usr/share/icons/Paper/16x16/devices/:/usr/share/icons/Paper/48x48/notifications/:/usr/share/icons/Paper/48x48/emblems/
icon_path = /usr/share/icons/Adwaita/16x16/status/:/usr/share/icons/Adwaita/16x16/devices/
notification_limit = 10
### Progress bar ###
# Turn on the progess bar. It appears when a progress hint is passed with
# for example dunstify -h int:value:12
progress_bar = true
# Set the progress bar height. This includes the frame, so make sure
# it's at least twice as big as the frame width.
progress_bar_height = 10
# Set the frame width of the progress bar
progress_bar_frame_width = 1
# Set the minimum width for the progress bar
progress_bar_min_width = 150
# Set the maximum width for the progress bar
progress_bar_max_width = 300
# Show how many messages are currently hidden (because of
# notification_limit).
indicate_hidden = yes
# Context menu.
@ -111,24 +114,25 @@ history = mod4+backslash
context = ctrl+shift+period
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
frame_color = "#FFFFFF"
foreground = "#3B7C87"
background = "#191311"
#background = "#2B313C"
frame_color = "#2c3e50"
foreground = "#ecf0f1"
background = "#95a5a6"
timeout = 4
[urgency_normal]
frame_color = "#FFFFFF"
foreground = "#5B8234"
background = "#191311"
#background = "#2B313C"
frame_color = "#95a5a6"
foreground = "#34495e"
background = "#ecf0f1"
timeout = 6
[urgency_critical]
frame_color = "#FFFFFF"
foreground = "#B7472A"
background = "#191311"
#background = "#2B313C"
timeout = 8
frame_color = "#e74c3c"
foreground = "#ecf0f1"
background = "#e74c3c"
timeout = 20
[fullscreen_delay_everything]
fullscreen = delay
[fullscreen_show_critical]
msg_urgency = critical
fullscreen = show

View File

@ -0,0 +1,153 @@
# i3blocks config file
#
# Please see man i3blocks for a complete reference!
# The man page is also hosted at http://vivien.github.io/i3blocks
#
# List of valid properties:
#
# align
# color
# command
# full_text
# instance
# interval
# label
# min_width
# name
# separator
# separator_block_width
# short_text
# signal
# urgent
# Global properties
#
# The top properties below are applied to every block, but can be overridden.
# Each block command defaults to the script name to avoid boilerplate.
# Change $SCRIPT_DIR to the location of your scripts!
command=/home/nemo/.config/i3blocks/$BLOCK_NAME/$BLOCK_NAME
separator_block_width=15
markup=none
#[wifi]
#label=wifi:
#align=left
#interval=5
[pomodoro]
command=/home/nemo/projects/go/bin/openpomodoro-cli status
interval=1
color=#e74c3c
[weather]
command=curl -Ss 'https://wttr.in/Bangalore?0&T&Q' | cut -c 16- | head -2 | xargs echo
# Every 5 minutes
interval=300
color=#A4C2F4
[ip]
command=ip address show dev wlan0 | grep inet | head -n1 | cut -d ' ' -f 6
interval=3600
color=#91E78B
#[volume]
#LABEL=♪
#interval=once
#signal=10
# I rarely run out of memory, so this is commented
#[memory]
#separator=|
#interval=30
[dunst]
interval=once
format=json
markup=pango
# Shows disk space remaining in /home
[disk]
interval=30
label=Disk
[bandwidth2]
interval=persist
markup=pango
LABEL=
interval=60
[cpu_usage2]
markup=pango
interval=persist
min_width=CPU 100.00%
REFRESH_TIME=1
LABEL=CPU
WARN_PERCENT=50
CRIT_PERCENT=80
DECIMALS=2
[load_average]
label=🗠
interval=10
# Battery indicator
#
# The battery instance defaults to 0.
#[battery]
#label=BAT
#label=⚡
#interval=30
# Generic media player support
#
# This displays "ARTIST - SONG" if a music is playing.
# Supported players are: spotify, vlc, audacious, xmms2, mplayer, and others.
[mediaplayer]
instance=%any
interval=5
signal=10
[nm-vpn]
interval=20
[rofi-calendar]
interval=30
LABEL=
FONT=Monospace 10
[time]
command=date '+%H:%M'
interval=60
[temperature]
interval=10
T_WARN=85
T_CRIT=90
SENSOR_CHIP=coretemp-isa-0000
interval=2
[monitor_manager]
interval=once
SHOW_ON_OFF=1
SHOW_NAMES=0
SHOW_PRIMARY=0
SHOW_MODE=1
SHOW_BLANKED=0
SHOW_DUPLICATE=0
SHOW_ROTATION=0
SHOW_REFLECTION=0
SHOW_BRIGHTNESS=0
SHOW_BRIGHTNESS_VALUE=0
SHOW_UP_DOWN=0
FONT_FAMILY=DejaVu Sans Mono
FONT_SIZE=12
CLOSE_TO_BOUNDARY_BUFFER=30
[i3volume]
label=
command=~/i3-volume/volume output i3blocks
interval=once
signal=10
color=#b8bb26
separator_block_width=10
markup=pango

View File

@ -18,7 +18,7 @@ order += "bluetooth"
#order += "run_watch VPN"
order += "wireless _first_"
#order += "ethernet _first_"
order += "battery_level"
#order += "battery_level"
order += "load"
order += "tztime local"
@ -33,15 +33,6 @@ ethernet _first_ {
format_down = "E: down"
}
battery_level {
color_bad = "#ECF0F1"
color_charging = "#FCE94F"
color = "#FCE94F"
color_degraded = "#2ECC71"
color_good = "#2ECC71"
format = "⚡ {}"
mode = "text"
}
#external_script "cmus" {
# # Refresh every 5 seconds

View File

@ -0,0 +1,7 @@
configuration {
modi: "window,drun,combi";
font: "Input Mono 10";
combi-modi: "window,drun";
}
@theme "/usr/share/rofi/themes/paper-float.rasi"
@import "/usr/share/rofi/themes/gruvbox-light.rasi"

View File

@ -0,0 +1,329 @@
# sway config file
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
include /etc/sway/config.d/*
exec systemctl --user import-environment SSH_AUTH_SOCK
exec dbus-update-activation-environment --systemd SSH_AUTH_SOCK
# I use the Super key on my laptop for i3
set $mod Mod4
# 4 named workspaces
set $WS1 1:
set $WS2 2:
set $WS3 3:
set $WS4 4:
# Startup items that don't have their windows
exec gammastep
exec yubikey-touch-detector --libnotify
# This ensures that GTK changes are applied immediately
exec xfsettingsd --replace --no-daemon
# execute ibus XIM server.
exec ibus-daemon --replace --xim
# Launch the VPN app, but turn it off
exec riseup-vpn-git --start-vpn off
# Launch easyeffects
exec easyeffects --hide-window
## Press Ctrl+C twice to search a word
## Dictionaries are kept in ~/Documents/Dictionaries
exec --no-startup-id goldendict
# For ArchLinux
exec --no-startup-id connman-gtk
exec --no-startup-id /usr/sbin/hackertray --firefox auto --comments/usr/sbin/hackertray
# For Ubuntu
exec --no-startup-id nm-applet
exec --no-startup-id aa-notify -p -s 1 -w 60 -f /var/log/audit/audit.log
exec --no-startup-id autorandr --change
input * {
#xkb_layout = "in(eng),in(hin-wx),in(hin-kagapa)"
# Caps Lock = Hyper_L
xkb_options "grp_led:caps,caps:hyper,compose:ralt"
}
# Quick switching between workspace is disabled
# Just leads to confusion
workspace_auto_back_and_forth no
# I am still learning splitting properly
workspace_layout default
hide_edge_borders both
# Still playing around with this
font pango:Cantarell 10,Fira Sans 8,Dejavu Sans,FontAwesome 9
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return split v; exec alacritty
bindsym $mod+Shift+Return split h; exec alacritty
bindsym $mod+Shift+f exec killall firefox;
# Snippy for quick text
# https://gist.github.com/coderofsalvation/46549e3788ade2f3a938
bindsym $mod+grave exec snippy.sh
# This one because of a 60% keyboard
bindsym $mod+Escape exec snippy.sh
bindsym $mod+z exec fsearch
bindsym $mod+Hyper_L exec wofi --show drun -icon-theme "Papirus" -show-icons -font "Cantarell 14"
# TODO: Window switch does not work
bindsym --release Hyper_L exec wofi --show window -icon-theme "Papirus" -show-icons -font "Cantarell 14"
bindsym $mod+F8 exec nemo --no-desktop
# kill focused window
bindsym $mod+Shift+q kill
# keyboard backlight, for Mac
# increase/decrease keyboard brightness
# TODO: Switch to wayland?
#bindsym XF86KbdBrightnessUp exec /home/nemo/projects/scripts/backlight up
#bindsym XF86KbdBrightnessDown exec /home/nemo/projects/scripts/backlight down
# Setup wallpapers
exec swaybg --output "Samsung Electric Company C24F390 HTQK801650" --mode fit --image /home/nemo/Pictures/wallpapers/personal/zurich.jpg \
--output "HDMI-A-1" --mode stretch --image /home/nemo/Pictures/wallpapers/personal/titlis.jpg
# Notifications
exec swaync
# Toggle control center
bindsym $mod+Shift+n exec swaync-client -t -sw
# Lock Related
exec swayidle -w \
timeout 1800 'swaylock -f' \
timeout 2000 'swaymsg "output * dpms off"' \
resume 'swaymsg "output * power on"' \
before-sleep 'swaylock -f' \
lock 'swaylock -f' \
unlock 'killall -s SIGUSR1 swaylock' \
idlehint 1800
exec swayidle -w timeout 10 \
'if pgrep -x swaylock; then swaymsg "output * dpms off"; fi' resume 'swaymsg "output * dpms on"'
bindsym $mod+l exec "killall -s SIGUSR1 swayidle"
## And manual locking as well
## TODO: Get this working
# bindsym $mod+l exec loginctl lock-session
# Print screen
bindsym Print exec flameshot gui
bindsym $mod+I exec grimshot copy area
bindsym Ctrl+Print exec flameshot screen
bindsym Ctrl+$mod+I exec grimshot save area
bindsym $mod+P exec /home/nemo/projects/scripts/wofipass --type
# focus
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# Switching to a different workspace
bindsym $mod+Ctrl+Left workspace prev_on_output
bindsym $mod+Ctrl+Right workspace next_on_output
# split in horizontal orientation
bindsym $mod+h split h; exec wofi --show drun
# split in vertical orientation
bindsym $mod+v split v; exec wofi --show drun
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# switch to workspace
bindsym $mod+1 workspace $WS1
bindsym $mod+2 workspace $WS2
bindsym $mod+3 workspace $WS3
bindsym $mod+4 workspace $WS4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $WS1
bindsym $mod+Shift+2 move container to workspace $WS2
bindsym $mod+Shift+3 move container to workspace $WS3
bindsym $mod+Shift+4 move container to workspace $WS4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10
# rename a workspace
bindsym $mod+ctrl+r exec i3-input -F 'rename workspace to "%s"' -P 'New name: '
# reload the configuration file
bindsym $mod+Shift+c reload
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
#bindsym button 6 exec "notify-send 123"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
# backlight support
bindsym XF86MonBrightnessUp exec xbacklight -inc 10
bindsym XF86MonBrightnessDown exec xbacklight -dec 10
## Volume control
# pulseaudio-utils settings
#
# Symbolic name for sink (numeric index not supported)
# Recommended: comment out this setting and omit the -s option to use default sink
# List sink names: pacmd list-sinks | awk -F "[<>]" '/^\s+name: <.*>/{print $2}'
#set $sinkname alsa_output.pci-0000_00_1b.0.analog-stereo
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pamixer --increase 2 && notify-send `pamixer --get-volume` -t 200 -e
bindsym XF86AudioLowerVolume exec --no-startup-id pamixer --decrease 2 && notify-send `pamixer --get-volume` -t 200 -e
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle
# Window assignments
for_window [class="Wine"] floating enable
for_window [class="Blueberry.py"] floating enable
for_window [class="Transmission-gtk"] floating enable
for_window [window_role="pop-up"] floating enable
for_window [window_role="bubble"] floating enable
for_window [class="xpad"] floating enable
for_window [class="Zeal"] floating enable
for_window [class="Pavucontrol"] floating enable resize 940 600
for_window [class="Connman-gtk"] floating enable resize 800 420
for_window [class="Firefox" instance="Browser"] floating enable
for_window [class="Firefox Beta" instance="Browser"] floating enable
for_window [class="Fsearch"] floating enable
for_window [class="Com.github.parnold-x.nasc"] floating enable 800 420
for_window [class="xpad" window_role="info-"] move scratchpad
for_window [class="Com.github.parnold-x.nasc"] move scratchpad
for_window [class="Blueman-manager"] floating enable resize 640 600
# Sticky Notepad
exec --no-startup-id xpad
# Sticky math app
exec --no-startup-id GTK_THEME=Ambiance com.github.parnold-x.nasc
bindsym $mod+F1 [class="xpad" instance="xpad"] scratchpad show
# Only for Nasc
bindsym $mod+F3 [class="Com.github.parnold-x.nasc"] scratchpad show
# Go through all windows
# Scratchpad
bindsym $mod+shift+minus move scratchpad
bindsym $mod+minus scratchpad show
# gaps are native in sway
for_window [class="^.*"] border pixel 0
gaps inner 10
gaps outer 5
smart_gaps on
smart_borders on
bar {
font xft:Cantarell, FontAwesome 11
status_command i3blocks
colors {
separator #657b83
background #002b36
statusline #fdf6e3
focused_workspace #fdf6e3 #859900 #fdf6e3
active_workspace #fdf6e3 #6c71c4 #fdf6e3
inactive_workspace #586e75 #93a1a1 #002b36
urgent_workspace #d33682 #d33682 #fdf6e3
}
}
# Multi monitor
bindsym $mod+shift+a move workspace to output left
bindsym $mod+shift+s move workspace to output right
# class border backgr. text indicator
client.focused #859900 #859900 #fdf6e3 #2e9ef4
client.focused_inactive #268bd2 #268bd2 #fdf6e3 #484e50
client.unfocused #333333 #93a1a1 #fdf6e3 #292d2e
exec_always --no-startup-id kitti3 -p TL
# https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland/#setting-values-in-gsettings
exec_always import-gsettings
bindsym $mod+n nop kitti3
output 'Samsung Electric Company C24F390 HTQK801650' position 0 0
output 'LG Electronics LG ULTRAWIDE 0x0000974A' position 1920 0
for_window [app_id="flameshot"] border pixel 0, floating enable, fullscreen disable, move absolute position 0 0
for_window [app_id="signal"] floating enable

View File

@ -0,0 +1,20 @@
# Generated by nwg-displays on 2024-02-23 at 17:21:41. Do not edit manually.
output "HDMI-A-1" {
mode 2560x1080@60.0Hz
pos 1920 0
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
output "DP-1" {
mode 1920x1080@60.0Hz
pos 0 0
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}

View File

@ -12,25 +12,52 @@ set $WS3 3:
set $WS4 4:
# Startup items that don't have their windows
exec --no-startup-id nitrogen --restore
exec --no-startup-id volumeicon
exec --no-startup-id redshift-gtk
exec --no-startup-id compton --config ~/.compton.conf
exec --no-startup-id connman-gtk
exec --no-startup-id aa-notify -p -s 1 -w 60 -f /var/log/audit/audit.log
#terminal
exec urxvtd -q -f -o
exec --no-startup-id redshift-gtk
exec yubikey-touch-detector --libnotify
# This ensures that GTK changes are applied immediately
exec xfsettingsd --replace --no-daemon
# execute ibus XIM server.
exec ibus-daemon --replace --xim
# Launch the VPN app, but turn it off
exec riseup-vpn-git --start-vpn off
# Launch easyeffects
exec easyeffects --hide-window
## Press Ctrl+C twice to search a word
## Dictionaries are kept in ~/Documents/Dictionaries
exec --no-startup-id goldendict
# For ArchLinux
exec --no-startup-id connman-gtk
exec --no-startup-id /usr/sbin/hackertray --firefox auto --comments/usr/sbin/hackertray
# For Ubuntu
exec --no-startup-id nm-applet
exec --no-startup-id aa-notify -p -s 1 -w 60 -f /var/log/audit/audit.log
exec --no-startup-id autorandr --change
# Caps Lock = Hyper_L
exec setxkbmap -option ctrl:nocaps
exec xmodmap -e 'clear lock'
exec xmodmap -e 'keycode 66 = Hyper_L'
# Set default backlight
exec xbacklight -set 15
# Code Workspace
exec i3-msg "workspace $WS1; exec subl"
exec i3-msg "workspace $WS1; exec cwdterm.sh"
# Web workspace
exec i3-msg "workspace $WS2; exec firefox-beta"
# Web workspace (Run both, depending on the system I'm on)
exec i3-msg "workspace $WS2; exec firefox"
# Startup figure out monitors
exec autorandr -c home
# Quick switching between workspace is disabled
# Just leads to confusion
@ -41,19 +68,15 @@ workspace_layout default
hide_edge_borders both
# Still playing around with this
font pango:Fira Sans 8,Dejavu Sans,Cantarell 10,FontAwesome 9
font pango:Cantarell 10,Fira Sans 8,Dejavu Sans,FontAwesome 9
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return split v; exec cwdterm.sh
bindsym $mod+Shift+Return split h; exec cwdterm.sh
# Split terminals using byobu shortcuts
bindsym Shift+F2 split v; exec cwdterm.sh
bindsym Ctrl+F2 split h; exec cwdterm.sh
bindsym $mod+Return split v; exec foot
bindsym $mod+Shift+Return split h; exec foot
bindsym $mod+Shift+f exec killall firefox;
# Snippy for quick text
# https://gist.github.com/coderofsalvation/46549e3788ade2f3a938
@ -63,45 +86,40 @@ bindsym $mod+Escape exec snippy.sh
bindsym $mod+z exec fsearch
bindsym $mod+Hyper_L exec rofi -show drun -icon-theme "Papirus" -show-icons -font "Input Sans 12"
bindsym --release Hyper_L exec rofi -show window -icon-theme "Papirus" -show-icons -font "Input Sans 12"
bindsym $mod+F8 exec pcmanfm
# kill focused window
bindsym $mod+Shift+q kill
# keyboard backlight, for Mac
# increase/decrease keyboard brightness
bindsym XF86KbdBrightnessUp exec /home/nemo/projects/scripts/backlight up
bindsym XF86KbdBrightnessDown exec /home/nemo/projects/scripts/backlight down
#### Lock screen config #####
# Use i3lock as screensaver (works on suspend)
exec "xss-lock -- /home/nemo/projects/scripts/i3lock.sh -l dim"
# Autolock screen after 2 minutes
exec xautolock -corners -000 -detectsleep -time 1 -locker "/home/nemo/projects/scripts/i3lock.sh -l dim"
bindsym XF86KbdBrightnessDown exec /home/nemo/projects/scripts/backlight down
# dunst for notifications
exec "dunst"
# Win+L
bindsym $mod+l exec xautolock -locknow
# Lock Related
## Setup a new lock screen on every boot
exec "betterlockscreen --fx dim -u /home/nemo/Pictures/wallpapers/"
# start dmenu (I actually have dmenu2 installed)
bindsym $mod+d exec dmenu_run -i -o 0.1
## Run xss-lock for handling suspend + session locks
exec xss-lock -l -- betterlockscreen -l dim
# For starting applications with a .desktop entry
bindsym $mod+shift+d exec --no-startup-id i3-dmenu-desktop
## And manual locking as well
bindsym $mod+l exec loginctl lock-session
# Print screen
set $screenshot_file '/home/nemo/Desktop/Screenshots/%Y-%m-%d_%H-%M-%S-$wx$h.png'
bindsym Print exec escrotum --select --selection-delay 300 $screenshot_file && notify-send "done"
bindsym Shift+Print exec escrotum --clipboard --select --selection-delay 300 $screenshot_file && notify-send "copied"
bindsym Ctrl+Print exec scrot --focused --count --delay 0.5 --quality 80 --silent $screenshot_file && notify-send "done"
bindsym Ctrl+Shift+Print exec scrot --count --delay 0.5 --quality 80 --silent $screenshot_file && notify-send "done"
bindsym Print exec flameshot gui
bindsym $mod+I exec flameshot gui
bindsym $mod+I exec escrotum --select --selection-delay 300 $screenshot_file && notify-send "done"
bindsym $mod+Shift+I exec escrotum --clipboard --select --selection-delay 2000 $screenshot_file && notify-send "copied"
bindsym Ctrl+Print exec flameshot screen
bindsym Ctrl+$mod+I exec flameshot screen
bindsym $mod+P exec passmenu --type
bindsym $mod+P exec passmenu --type -fn "Input Mono" -nb "#002b36" -nf "white" -sf "#fdf6e3"
# focus
bindsym $mod+Left focus left
@ -170,7 +188,7 @@ bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10
# rename a workspace
# bindsym $mod+ctrl+r exec i3-input -F 'rename workspace to "%s"' -P 'New name: '
bindsym $mod+ctrl+r exec i3-input -F 'rename workspace to "%s"' -P 'New name: '
# reload the configuration file
bindsym $mod+Shift+c reload
@ -212,63 +230,95 @@ bindsym $mod+r mode "resize"
bindsym XF86MonBrightnessUp exec xbacklight -inc 10
bindsym XF86MonBrightnessDown exec xbacklight -dec 10
# volumeicon cannot seem to unmute it
bindsym XF86AudioMute exec amixer -D pulse set Master toggle
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
workspace_buttons yes
status_command py3status -c ~/.config/i3status/config
colors {
separator #888888
background #333333
statusline #FFFFFF
focused_workspace #4E9C00 #4E9C00 #FFFFFF
active_workspace #333333 #333333 #FFFFFF
inactive_workspace #333333 #333333 #888888
urgent_workspace #C20000 #C20000 #FFFFFF
}
}
# https://github.com/vivien/i3blocks-contrib/tree/master/volume#usage
# Review the lines below and append to ~/.config/i3/config
## Volume control
# Path to volume control, without trailing slash
set $volumepath ~/i3-volume
# Amount to increase/decrease volume as a percentage
set $volumestep 5
# pulseaudio-utils settings
#
# Symbolic name for sink (numeric index not supported)
# Recommended: comment out this setting and omit the -s option to use default sink
# List sink names: pacmd list-sinks | awk -F "[<>]" '/^\s+name: <.*>/{print $2}'
#set $sinkname alsa_output.pci-0000_00_1b.0.analog-stereo
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pamixer --increase 2 && notify-send `pamixer --get-volume` -t 200
bindsym XF86AudioLowerVolume exec --no-startup-id pamixer --decrease 2 && notify-send `pamixer --get-volume` -t 200
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle
# Window assignments
for_window [class="Wine"] floating enable
for_window [class="Blueberry.py"] floating enable
for_window [class="Transmission-gtk"] floating enable
for_window [window_role="pop-up"] floating enable
for_window [window_role="bubble"] floating enable
for_window [class="xpad"] floating enable
for_window [class="Zeal"] floating enable
for_window [class="Pavucontrol"] floating enable resize 940 600
for_window [class="Google-musicmanager"] floating enable
for_window [class="Connman-gtk"] floating enable resize 800 420
for_window [class="Firefox" instance="Browser"] floating enable
for_window [class="Firefox Beta" instance="Browser"] floating enable
for_window [class="Fsearch"] floating enable
for_window [class="Com.github.parnold-x.nasc"] floating enable 800 420
for_window [class="xpad" window_role="info-"] move scratchpad
for_window [class="Com.github.parnold-x.nasc"] move scratchpad
for_window [class="Blueman-manager"] floating enable resize 640 600
# Sticky Notepad
exec --no-startup-id xpad
bindsym F1 [class="xpad" instance="xpad"] scratchpad show
bindsym F2 [class="^(?!xpad$)"] scratchpad show
# Sticky math app
exec --no-startup-id GTK_THEME=Ambiance com.github.parnold-x.nasc
bindsym $mod+F1 [class="xpad" instance="xpad"] scratchpad show
# Only for Nasc
bindsym $mod+F3 [class="Com.github.parnold-x.nasc"] scratchpad show
# Go through all windows
# Scratchpad
bindsym $mod+shift+z move scratchpad
bindsym $mod+shift+minus move scratchpad
bindsym $mod+minus scratchpad show
# i3 gaps
for_window [class="^.*"] border pixel 0
gaps inner 15
gaps outer 20
gaps inner 10
gaps outer 5
smart_gaps on
smart_borders on
bar {
font xft:Cantarell, FontAwesome 11
status_command i3blocks
colors {
separator #657b83
background #002b36
statusline #fdf6e3
focused_workspace #fdf6e3 #859900 #fdf6e3
active_workspace #fdf6e3 #6c71c4 #fdf6e3
inactive_workspace #586e75 #93a1a1 #002b36
urgent_workspace #d33682 #d33682 #fdf6e3
}
}
# Multi monitor
bindsym $mod+shift+a move workspace to output left
bindsym $mod+shift+s move workspace to output right
bindsym $mod+shift+w move workspace to output up
bindsym $mod+shift+x move workspace to output down
bindsym XF86Display exec arandr
bindsym XF86Display exec autorandr
bindsym $mod+F9 exec autorandr
client.focused #4E9C00 #4E9C00 #FFFFFF #FFFFFF
client.focused_inactive #1B3600 #1B3600 #888888 #FFFFFF
client.unfocused #333333 #333333 #888888 #FFFFFF
client.urgent #C20000 #C20000 #FFFFFF #FFFFFF
# class border backgr. text indicator
client.focused #859900 #859900 #fdf6e3 #2e9ef4
client.focused_inactive #268bd2 #268bd2 #fdf6e3 #484e50
client.unfocused #333333 #93a1a1 #fdf6e3 #292d2e
exec_always --no-startup-id kitti3 -p TL
bindsym $mod+n nop kitti3

View File

@ -0,0 +1,2 @@
[install]
# user = yes

1
files/ruby/.bundle/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
cache/

View File

@ -1,2 +1,15 @@
---
BUNDLE_PATH: "vendor/bundle"
# BUNDLE_GLOBAL_GEM_CACHE: "true"
BUNDLE_FORCE_RUBY_PLATFORM: "false"
BUNDLE_DEFAULT_INSTALL_USES_PATH: "false"
# BUNDLE_ALLOW_OFFLINE_INSTALL: "true"
BUNDLE_CACHE_ALL: "true"
BUNDLE_BUILD__NOKOGIRI: "--use-system-libraries"
BUNDLE_DISABLE_SHARED_GEMS: "true"
BUNDLE_GEM__COC: "true"
BUNDLE_GEM__TEST: "false"
BUNDLE_GEM__MIT: "false"
BUNDLE_JOBS: "4"
BUNDLE_GEM__CI: "github"
BUNDLE_GEM__RUBOCOP: "true"

View File

@ -1,2 +1,3 @@
install: --no-rdoc --no-ri
update: --no-rdoc --no-ri
update: --no-rdoc --no-ri
gem: --user-install

View File

@ -1,4 +1,4 @@
Copyright 2019 Abhay Rana
Copyright 2021 Abhay Rana
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

View File

@ -0,0 +1,13 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2019 Abhay Rana <me@captnemo.in>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

View File

@ -0,0 +1 @@
ʕ·͡ᴥ·ʔ

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@
(⌐■_■)

View File

@ -0,0 +1 @@
@dependabot merge

View File

@ -0,0 +1 @@
ʕ •ᴥ•ʔ

View File

@ -0,0 +1 @@
(ノ◕ヮ◕)ノ*:・゚✧

View File

@ -0,0 +1 @@
(╯°□°)╯︵ ʞooqǝɔɐɟ

View File

@ -0,0 +1 @@
( ͡° ͜ʖ ͡°)

View File

@ -0,0 +1 @@
[![LGTM](https://i.imgur.com/8V3Mhu3.gif)](https://i.imgur.com/8V3Mhu3.gif)

View File

@ -0,0 +1 @@
✌(-‿-)✌

View File

@ -0,0 +1 @@
(◔_◔)

View File

@ -0,0 +1 @@
(╯°□°)╯

View File

@ -0,0 +1 @@
(¬_¬)

View File

@ -0,0 +1,2 @@
SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"
GSM_SKIP_SSH_AGENT_WORKAROUND DEFAULT=1

View File

@ -24,3 +24,9 @@ Host sydney
User nemo
Port 222
HostName sydney.captnemo.in
Host ares
Port 4022
HostName ares.dbalan.in

View File

@ -0,0 +1,31 @@
[calendars]
# https://lostpackets.de/khal/configure.html
[[personal]]
path = ~/.calendars/radicale/96d6eacc-da02-4c04-81e6-d52f07b7e7bf/
color = dark blue
priority = 20
# TODO: Change this to VCard sync
[[birthdays]]
path = ~/.calendars/radicale/calendar/
readonly = True
color = "#9b59b6"
[[recurse]]
path = ~/.calendars/recurse/
readonly = True
color = "#2ecc71"
[view]
theme = dark
agenda_event_format = "{calendar-color}[{start-end-time-style}] {title} {repeat-symbol} {reset}"
[default]
default_calendar = personal
[locale]
default_timezone = "Asia/Kolkata"
longdatetimeformat = "%d %b %Y (%H:%M)"
longdateformat = "%d %b %Y"
timeformat = "%I:%M"

View File

@ -0,0 +1,43 @@
# Run `vdirsyncer --help` for CLI usage.
# This file doesn't document all available parameters, see
# http://vdirsyncer.pimutils.org/ for the rest of them.
[general]
# A folder where vdirsyncer can store some metadata about each pair.
status_path = "~/.vdirsyncer/status/"
[pair recurse]
a = "recurse_local"
b = "recurse_remote"
collections = null
[storage recurse_local]
type = "filesystem"
path = "~/.calendars/recurse/"
fileext = ".ics"
[storage recurse_remote]
type = "http"
# single line password entry so it doesn't need pass-show
url.fetch = ["command", "pass", "Keys/recurse_calendar_url"]
# CALDAV
[pair radicale]
a = "radicale_local"
b = "radicale_remote"
collections = ["96d6eacc-da02-4c04-81e6-d52f07b7e7bf", "calendar"]
# Calendars also have a color property
metadata = ["displayname", "color"]
[storage radicale_local]
type = "filesystem"
path = "~/.calendars/radicale"
fileext = ".ics"
[storage radicale_remote]
type = "caldav"
url = "https://radicale.bb8.fun/nemo/df10ebc5-b72c-c12d-b279-d80633b1ebe8/"
username = "nemo"
password.fetch = ["command", "/home/nemo/projects/scripts/pass-show", "radicale.bb8.fun"]

@ -0,0 +1 @@
Subproject commit b7a59c92fd54a005893b99479fb0aa466a37a4b7

View File

@ -1,7 +0,0 @@
let g:netrw_dirhistmax =10
let g:netrw_dirhist_cnt =5
let g:netrw_dirhist_1='/home/nemo/projects/sdslabs/saavn/.git'
let g:netrw_dirhist_2='/home/nemo/projects/sdslabs/saavn'
let g:netrw_dirhist_3='/home/nemo/projects/sdslabs/muzi/js/lib'
let g:netrw_dirhist_4='/home/nemo/.rvm/gems/ruby-2.0.0-p247/gems/octokit-2.6.2/lib/octokit'
let g:netrw_dirhist_5='/home/nemo/.rvm/gems/ruby-2.0.0-p247/gems/octokit-2.6.2/lib'

View File

@ -1,234 +0,0 @@
" pathogen.vim - path option manipulation
" Maintainer: Tim Pope <http://tpo.pe/>
" Version: 2.0
" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
"
" For management of individually installed plugins in ~/.vim/bundle (or
" ~\vimfiles\bundle), adding `call pathogen#infect()` to your .vimrc
" prior to `filetype plugin indent on` is the only other setup necessary.
"
" The API is documented inline below. For maximum ease of reading,
" :set foldmethod=marker
if exists("g:loaded_pathogen") || &cp
finish
endif
let g:loaded_pathogen = 1
" Point of entry for basic default usage. Give a directory name to invoke
" pathogen#runtime_append_all_bundles() (defaults to "bundle"), or a full path
" to invoke pathogen#runtime_prepend_subdirectories(). Afterwards,
" pathogen#cycle_filetype() is invoked.
function! pathogen#infect(...) abort " {{{1
let source_path = a:0 ? a:1 : 'bundle'
if source_path =~# '[\\/]'
call pathogen#runtime_prepend_subdirectories(source_path)
else
call pathogen#runtime_append_all_bundles(source_path)
endif
call pathogen#cycle_filetype()
endfunction " }}}1
" Split a path into a list.
function! pathogen#split(path) abort " {{{1
if type(a:path) == type([]) | return a:path | endif
let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,')
return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
endfunction " }}}1
" Convert a list to a path.
function! pathogen#join(...) abort " {{{1
if type(a:1) == type(1) && a:1
let i = 1
let space = ' '
else
let i = 0
let space = ''
endif
let path = ""
while i < a:0
if type(a:000[i]) == type([])
let list = a:000[i]
let j = 0
while j < len(list)
let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
let path .= ',' . escaped
let j += 1
endwhile
else
let path .= "," . a:000[i]
endif
let i += 1
endwhile
return substitute(path,'^,','','')
endfunction " }}}1
" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
function! pathogen#legacyjoin(...) abort " {{{1
return call('pathogen#join',[1] + a:000)
endfunction " }}}1
" Remove duplicates from a list.
function! pathogen#uniq(list) abort " {{{1
let i = 0
let seen = {}
while i < len(a:list)
if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
call remove(a:list,i)
elseif a:list[i] ==# ''
let i += 1
let empty = 1
else
let seen[a:list[i]] = 1
let i += 1
endif
endwhile
return a:list
endfunction " }}}1
" \ on Windows unless shellslash is set, / everywhere else.
function! pathogen#separator() abort " {{{1
return !exists("+shellslash") || &shellslash ? '/' : '\'
endfunction " }}}1
" Convenience wrapper around glob() which returns a list.
function! pathogen#glob(pattern) abort " {{{1
let files = split(glob(a:pattern),"\n")
return map(files,'substitute(v:val,"[".pathogen#separator()."/]$","","")')
endfunction "}}}1
" Like pathogen#glob(), only limit the results to directories.
function! pathogen#glob_directories(pattern) abort " {{{1
return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
endfunction "}}}1
" Turn filetype detection off and back on again if it was already enabled.
function! pathogen#cycle_filetype() " {{{1
if exists('g:did_load_filetypes')
filetype off
filetype on
endif
endfunction " }}}1
" Checks if a bundle is 'disabled'. A bundle is considered 'disabled' if
" its 'basename()' is included in g:pathogen_disabled[]' or ends in a tilde.
function! pathogen#is_disabled(path) " {{{1
if a:path =~# '\~$'
return 1
elseif !exists("g:pathogen_disabled")
return 0
endif
let sep = pathogen#separator()
return index(g:pathogen_disabled, strpart(a:path, strridx(a:path, sep)+1)) != -1
endfunction "}}}1
" Prepend all subdirectories of path to the rtp, and append all 'after'
" directories in those subdirectories.
function! pathogen#runtime_prepend_subdirectories(path) " {{{1
let sep = pathogen#separator()
let before = filter(pathogen#glob_directories(a:path.sep."*"), '!pathogen#is_disabled(v:val)')
let after = filter(pathogen#glob_directories(a:path.sep."*".sep."after"), '!pathogen#is_disabled(v:val[0:-7])')
let rtp = pathogen#split(&rtp)
let path = expand(a:path)
call filter(rtp,'v:val[0:strlen(path)-1] !=# path')
let &rtp = pathogen#join(pathogen#uniq(before + rtp + after))
return &rtp
endfunction " }}}1
" For each directory in rtp, check for a subdirectory named dir. If it
" exists, add all subdirectories of that subdirectory to the rtp, immediately
" after the original directory. If no argument is given, 'bundle' is used.
" Repeated calls with the same arguments are ignored.
function! pathogen#runtime_append_all_bundles(...) " {{{1
let sep = pathogen#separator()
let name = a:0 ? a:1 : 'bundle'
if "\n".s:done_bundles =~# "\\M\n".name."\n"
return ""
endif
let s:done_bundles .= name . "\n"
let list = []
for dir in pathogen#split(&rtp)
if dir =~# '\<after$'
let list += filter(pathogen#glob_directories(substitute(dir,'after$',name,'').sep.'*[^~]'.sep.'after'), '!pathogen#is_disabled(v:val[0:-7])') + [dir]
else
let list += [dir] + filter(pathogen#glob_directories(dir.sep.name.sep.'*[^~]'), '!pathogen#is_disabled(v:val)')
endif
endfor
let &rtp = pathogen#join(pathogen#uniq(list))
return 1
endfunction
let s:done_bundles = ''
" }}}1
" Invoke :helptags on all non-$VIM doc directories in runtimepath.
function! pathogen#helptags() " {{{1
let sep = pathogen#separator()
for dir in pathogen#split(&rtp)
if (dir.sep)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir.sep.'doc') == 2 && !empty(glob(dir.sep.'doc'.sep.'*')) && (!filereadable(dir.sep.'doc'.sep.'tags') || filewritable(dir.sep.'doc'.sep.'tags'))
helptags `=dir.'/doc'`
endif
endfor
endfunction " }}}1
command! -bar Helptags :call pathogen#helptags()
" Like findfile(), but hardcoded to use the runtimepath.
function! pathogen#runtime_findfile(file,count) "{{{1
let rtp = pathogen#join(1,pathogen#split(&rtp))
return fnamemodify(findfile(a:file,rtp,a:count),':p')
endfunction " }}}1
function! s:find(count,cmd,file,lcd) " {{{1
let rtp = pathogen#join(1,pathogen#split(&runtimepath))
let file = pathogen#runtime_findfile(a:file,a:count)
if file ==# ''
return "echoerr 'E345: Can''t find file \"".a:file."\" in runtimepath'"
elseif a:lcd
let path = file[0:-strlen(a:file)-2]
execute 'lcd `=path`'
return a:cmd.' '.fnameescape(a:file)
else
return a:cmd.' '.fnameescape(file)
endif
endfunction " }}}1
function! s:Findcomplete(A,L,P) " {{{1
let sep = pathogen#separator()
let cheats = {
\'a': 'autoload',
\'d': 'doc',
\'f': 'ftplugin',
\'i': 'indent',
\'p': 'plugin',
\'s': 'syntax'}
if a:A =~# '^\w[\\/]' && has_key(cheats,a:A[0])
let request = cheats[a:A[0]].a:A[1:-1]
else
let request = a:A
endif
let pattern = substitute(request,'\'.sep,'*'.sep,'g').'*'
let found = {}
for path in pathogen#split(&runtimepath)
let path = expand(path, ':p')
let matches = split(glob(path.sep.pattern),"\n")
call map(matches,'isdirectory(v:val) ? v:val.sep : v:val')
call map(matches,'expand(v:val, ":p")[strlen(path)+1:-1]')
for match in matches
let found[match] = 1
endfor
endfor
return sort(keys(found))
endfunction " }}}1
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve :execute s:find(<count>,'edit<bang>',<q-args>,0)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(<count>,'edit<bang>',<q-args>,0)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(<count>,'edit<bang>',<q-args>,1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(<count>,'split',<q-args>,<bang>1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(<count>,'vsplit',<q-args>,<bang>1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(<count>,'tabedit',<q-args>,<bang>1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(<count>,'pedit',<q-args>,<bang>1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(<count>,'read',<q-args>,<bang>1)
" vim:set ft=vim ts=8 sw=2 sts=2:

View File

@ -1,3 +0,0 @@
.release-notes.txt
command-t.recipe
/.bundle

View File

@ -1,6 +0,0 @@
[submodule "vendor/vimball"]
path = vendor/vimball
url = git://github.com/tomtom/vimball.rb.git
[submodule "vendor/vimscriptuploader"]
path = vendor/vimscriptuploader
url = git://github.com/tomtom/vimscriptuploader.rb.git

View File

@ -1,5 +0,0 @@
Nicolas Alpi <nicolas.alpi@gmail.com> Spyou <nicolas.alpi@gmail.com>
Noon Silk <noonsilk@gmail.com> Noon Silk <noonsilk@gmail.com>
Noon Silk <noonsilk@gmail.com> Noon Silk <superhappyfun@gmail.com>
Sung Pae <sung@metablu.com> guns <sung@metablu.com>
Sung Pae <sung@metablu.com> guns <self@sungpae.com>

View File

@ -1 +0,0 @@
--colour

View File

@ -1,2 +0,0 @@
--- {}

View File

@ -1,5 +0,0 @@
source :rubygems
gem 'mechanize'
gem 'rake'
gem 'rr'
gem 'rspec', '>= 2.0.0.rc'

View File

@ -1,26 +0,0 @@
GEM
remote: http://rubygems.org/
specs:
diff-lcs (1.1.2)
mechanize (1.0.0)
nokogiri (>= 1.2.1)
nokogiri (1.4.4)
rake (0.8.7)
rr (1.0.2)
rspec (2.5.0)
rspec-core (~> 2.5.0)
rspec-expectations (~> 2.5.0)
rspec-mocks (~> 2.5.0)
rspec-core (2.5.1)
rspec-expectations (2.5.0)
diff-lcs (~> 1.1.2)
rspec-mocks (2.5.0)
PLATFORMS
ruby
DEPENDENCIES
mechanize
rake
rr
rspec (>= 2.0.0.rc)

View File

@ -1,22 +0,0 @@
Copyright 2010-2012 Wincent Colaiuta. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

View File

@ -1,21 +0,0 @@
rubyfiles := $(shell find ruby -name '*.rb')
cfiles := $(shell find ruby -name '*.c')
cheaders := $(shell find ruby -name '*.h')
depends := $(shell find ruby -name depend)
txtfiles := $(shell find doc -name '*.txt')
vimfiles := $(shell find plugin -name '*.vim')
vimball: command-t.vba
command-t.recipe: $(rubyfiles) $(cfiles) $(cheaders) $(depends) $(txtfiles) $(vimfiles)
echo "$^" | perl -pe 's/ /\n/g' > $@
command-t.vba: command-t.recipe
vendor/vimball/vimball.rb -d . -b . vba $^
.PHONY: spec
spec:
rspec spec
.PHONY: clean
clean:
rm -f command-t.vba

View File

@ -1 +0,0 @@
doc/command-t.txt

View File

@ -1,217 +0,0 @@
require 'yaml'
def bail_on_failure
exitstatus = $?.exitstatus
if exitstatus != 0
err "last command failed with exit status #{exitstatus}"
exit 1
end
end
def version
`git describe`.chomp
end
def rubygems_version
# RubyGems will barf if we try to pass an intermediate version number
# like "1.1b2-10-g61a374a", so no choice but to abbreviate it
`git describe --abbrev=0`.chomp
end
def yellow
"\033[33m"
end
def red
"\033[31m"
end
def clear
"\033[0m"
end
def warn str
puts "#{yellow}warning: #{str}#{clear}"
end
def err str
puts "#{red}error: #{str}#{clear}"
end
def prepare_release_notes
# extract base release notes from README.txt HISTORY section
File.open('.release-notes.txt', 'w') do |out|
lines = File.readlines('README.txt').each { |line| line.chomp! }
while line = lines.shift do
next unless line =~ /^HISTORY +\*command-t-history\*$/
break unless lines.shift == '' &&
(line = lines.shift) && line =~ /^\d\.\d/ &&
lines.shift == ''
while line = lines.shift and line != ''
out.puts line
end
break
end
out.puts ''
out.puts '# Please edit the release notes to taste.'
out.puts '# Blank lines and lines beginning with a hash will be removed.'
out.puts '# To abort, exit your editor with a non-zero exit status (:cquit in Vim).'
end
unless system "$EDITOR .release-notes.txt"
err "editor exited with non-zero exit status; aborting"
exit 1
end
filtered = read_release_notes
File.open('.release-notes.txt', 'w') do |out|
out.print filtered
end
end
def read_release_notes
File.readlines('.release-notes.txt').reject do |line|
line =~ /^(#.*|\s*)$/ # filter comment lines and blank lines
end.join
end
task :default => :spec
desc 'Print help on preparing a release'
task :help do
puts <<-END
The general release sequence is:
rake prerelease
rake gem
rake push
bundle exec rake upload:all
rake archive
Most of the Rake tasks run fine without Bundler, and in fact, we
don't want Bundler in the prerelease task because it will tamper
with the environment in a way that breaks multiruby.
We use Bundler for the upload task because the www.vim.org
uploader uses Bundler to ensure that the Mechanize gem is available.
END
end
task :check_bundler do
unless ENV.has_key? 'BUNDLE_GEMFILE'
warn 'warning: Bundler is not loaded; try running with `bundle exec rake`'
end
end
desc 'Run specs'
task :spec do
system 'bundle exec rspec spec'
bail_on_failure
end
desc 'Create vimball archive'
task :vimball => :check_tag do
system 'make'
bail_on_failure
FileUtils.cp 'command-t.vba', "command-t-#{version}.vba"
end
desc 'Clean compiled products'
task :clean do
Dir.chdir 'ruby/command-t' do
system 'make clean' if File.exists?('Makefile')
system 'rm -f Makefile'
end
end
desc 'Clobber all generated files'
task :clobber => :clean do
system 'make clean'
end
desc 'Compile extension'
task :make do
Dir.chdir 'ruby/command-t' do
ruby 'extconf.rb'
system 'make clean'
bail_on_failure
system 'make'
bail_on_failure
end
end
namespace :make do
desc 'Compile under all multiruby versions'
task :all do
system './compile-test.sh'
bail_on_failure
end
end
namespace :spec do
desc 'Run specs under all multiruby versions'
task :all do
system './multi-spec.sh'
bail_on_failure
end
end
desc 'Check that the current HEAD is tagged'
task :check_tag do
unless system 'git describe --exact-match HEAD 2> /dev/null'
warn 'current HEAD is not tagged'
end
end
desc 'Run checks prior to release'
task :prerelease => ['make:all', 'spec:all', :vimball, :check_tag]
namespace :upload do
desc 'Upload current vimball to Amazon S3'
task :s3 => :vimball do
sh 'aws put ' +
"s3.wincent.com/command-t/releases/command-t-#{version}.vba " +
"command-t-#{version}.vba"
sh 'aws put ' +
"s3.wincent.com/command-t/releases/command-t-#{version}.vba?acl " +
'--public'
end
desc 'Upload current vimball to www.vim.org'
task :vim => [:check_bundler, :vimball] do
prepare_release_notes
sh "vendor/vimscriptuploader/vimscriptuploader.rb \
--id 3025 \
--file command-t-#{version}.vba \
--message-file .release-notes.txt \
--version #{version} \
--config ~/.vim_org.yml \
.vim_org.yml"
end
desc 'Upload current vimball everywhere'
task :all => [ :s3, :vim ]
end
desc 'Add current vimball to releases branch'
task :archive => :vimball do
v = version # store version before switching branches
sh 'git stash && ' +
'git checkout releases && ' +
"git add command-t-#{v}.vba && " +
"git commit -s -m 'Add #{v} release vimball' && " +
'git checkout @{-1} && ' +
'git stash pop || true'
end
desc 'Create the ruby gem package'
task :gem => :check_tag do
sh "gem build command-t.gemspec"
end
desc 'Push gem to Gemcutter ("gem push")'
task :push => :gem do
sh "gem push command-t-#{rubygems_version}.gem"
end

View File

@ -1,2 +0,0 @@
*
!.gitignore

View File

@ -1,37 +0,0 @@
Gem::Specification.new do |s|
s.name = "command-t"
# see note in the Rakefile about how intermediate version numbers
# can break RubyGems
v = `git describe --abbrev=0`.chomp
s.version = v
s.authors = ["Wincent Colaiuta"]
s.date = "2011-01-05"
s.email = "win@wincent.com"
files =
["README.txt", "LICENSE", "Gemfile", "Rakefile"] +
Dir.glob("{ruby,doc,plugin}/**/*")
files = files.reject { |f| f =~ /\.(rbc|o|log|plist|dSYM)/ }
s.files = files
s.require_path = "ruby"
s.extensions = "ruby/command-t/extconf.rb"
s.executables = []
s.has_rdoc = false
s.homepage = "https://wincent.com/products/command-t"
s.summary = "The Command-T plug-in for VIM."
s.description = <<-EOS
Command-T provides a fast, intuitive mechanism for opening files with a
minimal number of keystrokes. Its full functionality is only available when
installed as a Vim plug-in, but it is also made available as a RubyGem so
that other applications can make use of its searching algorithm.
EOS
end

Some files were not shown because too many files have changed in this diff Show More