mirror of
				https://git.davidovski.xyz/dot.git
				synced 2024-08-15 00:43:28 +00:00 
			
		
		
		
	fixed scripts
This commit is contained in:
		
							parent
							
								
									26d3e9c0db
								
							
						
					
					
						commit
						49fff5a029
					
				
					 37 changed files with 1 additions and 1801 deletions
				
			
		|  | @ -5,11 +5,11 @@ configurations=( iocane bg bspwm cava neofetch mpd mpv ncmpcpp vim sxhkd polybar | ||||||
| 
 | 
 | ||||||
| save () { | save () { | ||||||
|     mkdir config |     mkdir config | ||||||
|     mkdir scripts  |  | ||||||
|     for i in "${configurations[@]}"; do |     for i in "${configurations[@]}"; do | ||||||
|         cp -r "$HOME/.config/$i" config/ |         cp -r "$HOME/.config/$i" config/ | ||||||
|     done |     done | ||||||
| 
 | 
 | ||||||
|  |     rm -r scripts | ||||||
|     cp -r "$HOME/.scripts" scripts |     cp -r "$HOME/.scripts" scripts | ||||||
| 
 | 
 | ||||||
|     cp $HOME/.profile profile |     cp $HOME/.profile profile | ||||||
|  |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| winid=$(xdotool search "Mine" | head -n1) |  | ||||||
| for i in {1..50}; |  | ||||||
| 	do |  | ||||||
| 	xdotool keydown "5" |  | ||||||
| 	xdotool keyup "5" |  | ||||||
|     sleep 0.05 |  | ||||||
| done |  | ||||||
| exit 0 |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| 
 |  | ||||||
| feh --bg-fill ~/.config/bg |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| bspc rule -a \* -o state=floating && $TERMINAL -e bc -liq |  | ||||||
|  | @ -1,17 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| read title  |  | ||||||
| clear |  | ||||||
| columns=$(tput cols) |  | ||||||
| rows=$(tput lines) |  | ||||||
| tput clear |  | ||||||
| y=$((($columns-$(echo -n $title | head -1 | wc -c))/2)) |  | ||||||
| x=$((($rows-$(echo $title | wc -l))/2)) |  | ||||||
| 
 |  | ||||||
| while read p; do |  | ||||||
| 	tput cup $x $y |  | ||||||
| 	echo "$p" |  | ||||||
| 	x=$((x+1)) |  | ||||||
| 
 |  | ||||||
| done <<< "$title"; |  | ||||||
| 
 |  | ||||||
| tput cup $rows 0 |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| MAIN_DP=DP-2;   |  | ||||||
| v=$(xrandr --current --verbose | grep "Brightness" | cut -f2 -d " " | tr '\n' '*' | rev | cut -c 2- | rev | sed -e "s/$/==1/" | bc -l | grep -q 0 && echo 1 || echo 0); xrandr | grep " connected" | cut -f1 -d " " | while read -r line; do echo $line | grep -q $MAIN_DP && : || xrandr --output $line --brightness $v; done |  | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| size=8388608 |  | ||||||
| length=`ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4` |  | ||||||
| ffmpeg -i $1 -b $(( $size / ${length%.*} )) $1.mp4 |  | ||||||
|  | @ -1,19 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| # Usage: ddc-switch-inputs 1 |  | ||||||
| case $1 in |  | ||||||
|    1 ) |  | ||||||
|       # Config 1: Main PC |  | ||||||
|       OUT=("0x0f" "0x20") |  | ||||||
|       ;; |  | ||||||
|    2 ) |  | ||||||
|       # Config 2: Virtual machine |  | ||||||
|       OUT=("0x11" "0x21") |  | ||||||
|       ;; |  | ||||||
|    * ) |  | ||||||
|       echo "Unknown input '$1'" |  | ||||||
|       exit 1 |  | ||||||
|       ;; |  | ||||||
| esac |  | ||||||
| 
 |  | ||||||
| ddcutil --bus=5 setvcp 60 ${OUT[0]} & |  | ||||||
| wait |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| localectl list-x11-keymap-variants us | dmenu -p "kbd layout" | xargs setxkbmap -variant |  | ||||||
|  | @ -1,23 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| 
 |  | ||||||
| chosen=$(dmenu -i -l 20 < ~/.local/share/emoji | sed "s/ .*//") |  | ||||||
| 
 |  | ||||||
| [ "$chosen" != "" ] || exit |  | ||||||
| 
 |  | ||||||
| # If you run this command with an argument, it will automatically insert the character. |  | ||||||
| echo "$chosen" | xclip -selection clipboard |  | ||||||
| if [ -n "$1" ]; then |  | ||||||
| 	WINDOW=$(xdotool getactivewindow getwindowname) |  | ||||||
| 	if [[ "$WINDOW" =~ .*"$SUB".* ]]; then |  | ||||||
| 		xdotool key "ctrl+v"  |  | ||||||
| 	else |  | ||||||
| 		xdotool key Shift+Insert |  | ||||||
| 	fi |  | ||||||
| #	xdotool type --delay 1 $chosen |  | ||||||
| 
 |  | ||||||
| #	VAR=$(xclip -o) |  | ||||||
| 
 |  | ||||||
| #	xdotool type $chosen |  | ||||||
| else |  | ||||||
| 	notify-send "'$chosen' copied to clipboard." & |  | ||||||
| fi |  | ||||||
|  | @ -1,24 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| 
 |  | ||||||
| chosen=$(dmenu -i -l 20 < ~/.local/share/kaomoji | sed "s/\t.*//") |  | ||||||
| 
 |  | ||||||
| [ "$chosen" != "" ] || exit |  | ||||||
| 
 |  | ||||||
| # If you run this command with an argument, it will automatically insert the character. |  | ||||||
| echo "$chosen" | xclip -selection clipboard |  | ||||||
| if [ -n "$1" ]; then |  | ||||||
| 	SUB="Minecraft" |  | ||||||
| 	WINDOW=$(xdotool getactivewindow getwindowname) |  | ||||||
| 	if [[ "$WINDOW" =~ .*"$SUB".* ]]; then |  | ||||||
| 		xdotool key "ctrl+v"  |  | ||||||
| 	else |  | ||||||
| 		xdotool key Shift+Insert |  | ||||||
| 	fi |  | ||||||
| #	xdotool type --delay 1 $chosen |  | ||||||
| 
 |  | ||||||
| #	VAR=$(xclip -o) |  | ||||||
| 
 |  | ||||||
| #	xdotool type $chosen |  | ||||||
| else |  | ||||||
| 	notify-send "'$chosen' copied to clipboard." & |  | ||||||
| fi |  | ||||||
|  | @ -1,362 +0,0 @@ | ||||||
| ^_^ Overjoyed (2) |  | ||||||
| (╯°□°)╯︵ ┻━┻ Flipping Table (3) |  | ||||||
| ლ(ಠ益ಠლ) But At What Cost |  | ||||||
| (//_^) Emo (5) |  | ||||||
| ʕ •ᴥ•ʔ Koala (3) |  | ||||||
| (っ^‿^)っ Kirby (5) |  | ||||||
| [¬º-°]¬ Zombie (2) |  | ||||||
| (●∈∋●) Bird (5) |  | ||||||
| ಠ_ಠ Disapproval |  | ||||||
| T.T Sad (2) |  | ||||||
| ◤◡ᴥ◡◥  Dog (4) |  | ||||||
| (∩`-´)⊃━☆゚.*・。゚ Wizard |  | ||||||
| ^-^ Happy (7) |  | ||||||
| ᕦ(ò_óˇ)ᕤ Flexing (3) |  | ||||||
| ♪┏(・o・)┛♪ Dancing (8) |  | ||||||
| ( ͡° ͜ʖ ͡°) Smiling (2) |  | ||||||
| /人◕ ‿‿ ◕人\ Kyubey |  | ||||||
| ༼ ༎ຶ ෴ ༎ຶ༽ Distraught |  | ||||||
| ᒄ₍⁽ˆ⁰ˆ⁾₎ᒃ♪♬ Frosty the Snowman (2) |  | ||||||
| (╯°□°)╯︵ ┻━┻ Flipping table (2) |  | ||||||
| <(^oo^)> Pig (3) |  | ||||||
| ¯\_(ツ)_/¯ Shrugging (2) |  | ||||||
| U=・ x ・=U Rabbit (2) |  | ||||||
| ⊂((・▽・))⊃ Hug me (2) |  | ||||||
| V●ᴥ●V Doggy (2) |  | ||||||
| (=^_^=) Bunny (3) |  | ||||||
| <コ:彡 Squid (2) |  | ||||||
| -_-; Anime Sweat Drop (2) |  | ||||||
| (°̥̥̥̥̥̥̥̥ᴗ°̥̥̥̥̥̥̥̥) Happy crying |  | ||||||
| (=^・ェ・^=) Kitty (2) |  | ||||||
| (((༼•̫͡•༽))) Ghost (2) |  | ||||||
| (-‸ლ) Whoops |  | ||||||
| (=^ェ^=) Cat (4) |  | ||||||
| ( ´-ω・)︻┻┳══━一 Sniper |  | ||||||
| ⊆☉ᴥ☉⊇ Bear (7) |  | ||||||
| ༼ つ ◕_◕ ༽つ Take my energy |  | ||||||
| (  ̄┏_┓ ̄) Mustache (2) |  | ||||||
| (;´Д`) Giving Up |  | ||||||
| ( ͡° ʖ̯ ͡°) Disgruntled |  | ||||||
| ✌(◕‿-)✌ Peace (3) |  | ||||||
| ಠ_ರೃ Monocle (2) |  | ||||||
| T^T Crying (5) |  | ||||||
| ᘛ⁐̤ᕐᐷ Chameleon |  | ||||||
| ༼ つ ◕_◕ ༽つ Gimme |  | ||||||
| ლ(ಠ益ಠ)ლ Anger |  | ||||||
| (ง •̀_•́)ง Feisty |  | ||||||
| (っ⌒‿⌒)っ Hug (3) |  | ||||||
| ϵ( 'Θ' )϶ Fish (3) |  | ||||||
| (^▽^) Laughing (5) |  | ||||||
| ¯\(°_o)/¯ Confused (4) |  | ||||||
| ̿’̿’\̵͇̿̿\З=( ͠° ͟ʖ ͡°)=Ε/̵͇̿̿/’̿̿ ̿ ̿ ̿ ̿ ̿ Outlaw |  | ||||||
| o(^▽^)o Pumped (2) |  | ||||||
| .∵・(゚Д゚) Scared (2) |  | ||||||
| (*☉౪ ⊙。)ノ Imbecile (2) |  | ||||||
| d-(^.^)z Thumbs Up (2) |  | ||||||
| (>_<) Painful |  | ||||||
| (¬_¬") Annoyed (4) |  | ||||||
| (´╹〽╹`) Worried (4) |  | ||||||
| (o^-^o) Pikachu (2) |  | ||||||
| (▀̿Ĺ̯▀̿ ̿) Deal with it |  | ||||||
| (∩`-´)⊃━☆゚.*・。゚ Magic Attack |  | ||||||
| ꒡ᘦ̲꒡ Sleeping (5) |  | ||||||
| (‾ʖ̫‾) Lethargic |  | ||||||
| ^_^; Guilty |  | ||||||
| ヽ(`⌒´メ)ノ Angry (8) |  | ||||||
| ^^ Blissful |  | ||||||
| ^_^/ High Five (2) |  | ||||||
| ʕ•͡ᴥ•ʔ Polar bear |  | ||||||
| ❆❅❉ Snowing |  | ||||||
| ヽ(★ω★)ノ Excited |  | ||||||
| U^ェ^U Puppy |  | ||||||
| ⊂(^(工)^)⊃ Teddy bear |  | ||||||
| (≧∇≦)/ Joyful (2) |  | ||||||
| ◦°˚\☺/˚°◦ Playing in the snow |  | ||||||
| (╯°□°)╯︵ ʞooqǝɔɐɟ Flipping Facebook |  | ||||||
| (;-_-)ノ Giving up |  | ||||||
| ⊙▂⊙ Shocked |  | ||||||
| |∴め ϖ め∴| SpongeBob SquarePants |  | ||||||
| ◔̯◔ Rolling Eyes |  | ||||||
| ⊂(◜ᴥ◝)つ Teddy Bear |  | ||||||
| ε=(☉_☉) Accidental farting |  | ||||||
| (ಥ﹏ಥ) Devastated (2) |  | ||||||
| (•͡.•͡) Skeptical |  | ||||||
| ε=┏( >_<)┛ Running (5) |  | ||||||
| ┬─┬︵/(.□.)╯ Table Flips You |  | ||||||
| 〠_〠 Tired (3) |  | ||||||
| ∊ಠ_ಠ∍ Distressed |  | ||||||
| V=(° °)=V Crab (2) |  | ||||||
| ᶘ ᵒᴥᵒᶅ Seal (2) |  | ||||||
| Ƹ̵̡Ӝ̵̨̄Ʒ Butterfly |  | ||||||
| (- o - ) zzZ ☽ Sleepy |  | ||||||
| ◯0o。(ー。ー)y Smoking (4) |  | ||||||
| (。々°) Herp Derp |  | ||||||
| -_-* Frustrated (3) |  | ||||||
| (+[__]∙:∙) PlayStation Portable |  | ||||||
| (V) (°,,,,°) (V) Zoidberg |  | ||||||
| /|\( ;,; )/|\ Bat |  | ||||||
| ◖㈠ ω ㈠◗ Panda |  | ||||||
| \m/d(^_^)b\m/ Rocking Out |  | ||||||
| ヽ(゚Д゚)ノ Freak Out (2) |  | ||||||
| (ノ゚0゚)ノ~ Yoo-Hoo |  | ||||||
| ¤\( `⌂´ )/¤ Lifting weights |  | ||||||
| (ò_ó) Furious |  | ||||||
| ( ˘ ³˘)♥ Kiss me |  | ||||||
| (^▽^) Cheerful (3) |  | ||||||
| (⌒ ͜ʖ⌒)b Attentive |  | ||||||
| ᕦ❍ᴗ❍ᕤ Muscular Person |  | ||||||
| (´>_●)メ(●_<`) Sword Fighting |  | ||||||
| :-Þ Teasing |  | ||||||
| =( ^o^)ノ___o Bowling |  | ||||||
| (#×_×) Dead (2) |  | ||||||
| (。・_・)ノ”【】 Painting |  | ||||||
| (/。\) Shy (5) |  | ||||||
| ⎰≀.☮-☮≀⎰ John Lennon |  | ||||||
| ─=≡Σ(([ ⊐•̀⌂•́]⊐ Superhero |  | ||||||
| (¬з¬)σ Pointing (2) |  | ||||||
| (・д・)} On The Phone (3) |  | ||||||
| 㐈⦁ཽし⦁ཽ㐈  Larry David |  | ||||||
| ⨌⨀_⨀⨌ Benjamin Franklin |  | ||||||
| (☄ฺ◣д◢)☄ฺ Scaring |  | ||||||
| ƪ(˘▽˘ƪ) Worshiping |  | ||||||
| [•.•ิ] Huh |  | ||||||
| (◐‿◑) Crazy |  | ||||||
| \(-_- ) Thank You |  | ||||||
| (_ε_) Kiss my butt |  | ||||||
| (⊃‿⊂) Anticipation |  | ||||||
| (* ̄m ̄) Dissatisfied |  | ||||||
| Q('.'Q) Put Em Up |  | ||||||
| \(^o)(^0^)(o^)/ Caroling |  | ||||||
| ( ̄~ ̄) Unimpressed |  | ||||||
| ༼ঢ_༽ঢ༽ Perplexed |  | ||||||
| (。♥‿♥。) Smitten |  | ||||||
| ( ̄□ ̄;) Surprised |  | ||||||
| (^o^) Singing (3) |  | ||||||
| (:3 っ)っ Walrus |  | ||||||
| ( `_)乂(_' ) Arm wrestle |  | ||||||
| (ง •̀ゝ•́)ง Fighting (2) |  | ||||||
| uwu Happy Anime Face |  | ||||||
| └(^o^ )X( ^o^)┘ Best buddies |  | ||||||
| d^_^b DJ |  | ||||||
| ( --)/ ==卍 Ninja Star |  | ||||||
| C:。ミ Octopus |  | ||||||
| (´・ω・`) Snubbing (2) |  | ||||||
| ♪(●′▽`)ノ Good Night |  | ||||||
| (#^.^#) Embarrassed (3) |  | ||||||
| ಥ_ಥ Bawling (3) |  | ||||||
| †_(゚ー゚*)β Exorcism |  | ||||||
| ੯ू•́ू ໒꒱⁼³₌₃ Sonic the Hedgehog |  | ||||||
| (^‿◕) Winking (3) |  | ||||||
| (″・ิ_・ิ)っ Wait (3) |  | ||||||
| 。◕‿◕。 Gleeful |  | ||||||
| ヽ( ★ω★)ノ Pumped up |  | ||||||
| _〆(。。) Writing (2) |  | ||||||
| (∿°○°)∿ ︵ ǝʌol Heartbroken |  | ||||||
| ^;;^ Spider |  | ||||||
| (⓪益⓪) Staring (2) |  | ||||||
| ( ̄┏∞┓ ̄) Fu Manchu Man |  | ||||||
| ( • ∀•)っθΘʘ Hiding Easter eggs |  | ||||||
| _φ( °-°)/ Doing Homework |  | ||||||
| ◖ර◞ʖ◟ර◗ Grandma |  | ||||||
| ¬.¬ Whatever (3) |  | ||||||
| ⫷ °⧭° ⫸ Clown |  | ||||||
| (♥_♥) In Love |  | ||||||
| >.< Upset (2) |  | ||||||
| ( ◢д◣) Depressed (4) |  | ||||||
| ᕕ( ᐛ )ᕗ Celebrating |  | ||||||
| (¬‿¬) Cunning |  | ||||||
| └(^o^)┐ Grooving (3) |  | ||||||
| ~゜・_・゜~ Raving |  | ||||||
| ᕦ◉▿◉ᕤ Owl (2) |  | ||||||
| \(^O^)/ Celebrate |  | ||||||
| (*’(OO)’*) Piggy (2) |  | ||||||
| ˃ʍ˂ Enraged (2) |  | ||||||
| (ू˃̣̣̣̣̣̣︿˂̣̣̣̣̣̣ ू) Sobbing (3) |  | ||||||
| ( ^^)人(^^ ) Best Buds |  | ||||||
| └@(・ェ・)@┐ Beefcake |  | ||||||
| (☉__☉”) Yikes |  | ||||||
| (╯˘ -˘ )╯ Praying (2) |  | ||||||
| ε=┌( ≧▽)┘ Elated |  | ||||||
| ( •_•)O °Q(•_• ) Playing Ping Pong |  | ||||||
| ∋(°O°)∈ Blowfish |  | ||||||
| (;一_一) Ashamed (4) |  | ||||||
| {♥‿♥} Lovestruck |  | ||||||
| ๏-) Cyclops |  | ||||||
| (o ̄∇ ̄)=◯)`ν゜)・ Punching (6) |  | ||||||
| ┬─┬ノ( º _ ºノ) Putting Table Back (2) |  | ||||||
| (~_(]=--Z(◡˘) Pie Fight |  | ||||||
| ((((((^_^;) Evading |  | ||||||
| (/o^)/°⊥\(^o\) Volleyball |  | ||||||
| -{'''|'''|'''|''']=[] Syringe |  | ||||||
| [^._.^]ノ彡 Nyan Cat |  | ||||||
| ---(o_ _)o Tripping (2) |  | ||||||
| ┬┴┬┴┤(・_├┬┴┬┴ Snooper |  | ||||||
| (ㆆ_ㆆ) Unamused |  | ||||||
| (✿◠‿◠)  Hippie |  | ||||||
| ヾ(* ̄O ̄)ツ Yelling |  | ||||||
| (ɔ◔‿◔)ɔ ♥ Loving |  | ||||||
| (ノ-o-)ノ 中 Olympic Hammer Throw |  | ||||||
| (/ω・\) Peering |  | ||||||
| (´・ω・)っ由 Gift |  | ||||||
| [-_-]~ Ninja |  | ||||||
| (シ_ _)シ Apology (2) |  | ||||||
| ∋∞(●゚v゚)∞∈ Pigtails |  | ||||||
| (>o<)ρミ┳┷┳゜ Table Tennis |  | ||||||
| (^̮^) Pleased (2) |  | ||||||
| ♪~( ̄ε ̄;) Whistling |  | ||||||
| ( ̄▼ ̄) Big Grin |  | ||||||
| ⋟^≏^⋞ Kitty Cat |  | ||||||
| ( ̄へ ̄) Discontent |  | ||||||
| (*・_・)ノ⌒* Throwing Away |  | ||||||
| (*@_*#) Beaten Up |  | ||||||
| (p_-) Thinking |  | ||||||
| (。_°)☆ Punched |  | ||||||
| ♥‿♥ Enamored |  | ||||||
| ε-(´・`) フ Phew |  | ||||||
| ༼ঢ_㇁ঢ༽ Bad hair day |  | ||||||
| (づ ̄ ³ ̄)づ Smooch (3) |  | ||||||
| O(<>'<>)O Aang |  | ||||||
| (_ _)..ooOO Dreaming |  | ||||||
| ┳┻┳° Ping Pong table |  | ||||||
| ^o^ Mog |  | ||||||
| (゚皿゚)r┏┳-* Shooting (2) |  | ||||||
| m( ゚皿゚)m★━━ Laser |  | ||||||
| ٩◔̯◔۶ Eye Roll With Hands Up |  | ||||||
| ヽ(´Д`ヽミノ´Д`)ノ Frantic (2) |  | ||||||
| (-ε- ) Pucker up (3) |  | ||||||
| ヽ(⌐■_■)ノ♪♬ Boogie down |  | ||||||
| 「(°ヘ°) Puzzled |  | ||||||
| d(^_^)b Listening to Music |  | ||||||
| ( -_-)旦~ Drinking |  | ||||||
| <_< Looking (4) |  | ||||||
| (( _ _)☆ ≡〇 Header |  | ||||||
| ^)_(^ Chubby |  | ||||||
| (๑´•.̫ • `๑) Blushing |  | ||||||
| (。▼皿▼) Darth Vader |  | ||||||
| (╬☉Д⊙ฺ) Cyborg |  | ||||||
| (ʘ‿ʘ) Smile |  | ||||||
| ε=ε=ε=┌(๑ʘ∀ʘ)┘ Sprinting |  | ||||||
| ƪ(˘⌣˘)ʃ Raise the roof |  | ||||||
| ( ˘︹˘ ) Smug |  | ||||||
| (▰˘◡˘▰) Satisfied |  | ||||||
| (¬、¬) Shifty |  | ||||||
| ¯(°_o)/¯ Confused shrug |  | ||||||
| ✖‿✖ Dead person |  | ||||||
| (。_°☆\(- – ) Punch |  | ||||||
| (ɔˆ ³(ˆ⌣ˆc) Loving couple |  | ||||||
| (*▿▿* ƪ) Vampire |  | ||||||
| o(^^o)(o^^)o Hopeful |  | ||||||
| ___ψ(‥ ) Studying |  | ||||||
| _φ(°-°=) Doing homework |  | ||||||
| @( o・ω・)@ Monkey |  | ||||||
| (╭ರ_•́) Inquisitive |  | ||||||
| ੯ू‵ू ໒꒱ Poodle |  | ||||||
| (*^^)^*) Kiss (5) |  | ||||||
| (^~^) Meh |  | ||||||
| (/。\) Frightened |  | ||||||
| :þ Playful |  | ||||||
| (>^_^)><(^o^<) Hugging |  | ||||||
| (-_ゞ Groggy |  | ||||||
| (*^o^)人(^o^*) Buddies |  | ||||||
| (●´ノω`)コ Whispering (2) |  | ||||||
| o(´^`)o Reluctant |  | ||||||
| ( つ Д `) Wiping Tears |  | ||||||
| (o´・Υ・)ノ・ Help (2) |  | ||||||
| (。・ˇдˇ・。) Pompous |  | ||||||
| (´∪`*) Friendly |  | ||||||
| ヘ(。□°)ヘ Psycho |  | ||||||
| (人’∀’) Precious |  | ||||||
| (っ˘ڡ˘ς) Yummy |  | ||||||
| ┗(・ω・;)┛ How Should I Know |  | ||||||
| (о^ω^о) Giggling |  | ||||||
| (´ー`)┌フッ Golf Clap |  | ||||||
| \\(<.<|>.>)// Panicking |  | ||||||
| ^(#`∀´)_Ψ Demon |  | ||||||
| (╯‵Д′)╯ Scary |  | ||||||
| :-{  -__-: Stinky |  | ||||||
| ಠᴗಠ Scheming |  | ||||||
| <(; ̄ ・ ̄) Scratching |  | ||||||
| \(^ ^)/ Glad |  | ||||||
| (╯_╰) Bummed out |  | ||||||
| ┗( ●-﹏ `。)づ Hurt (2) |  | ||||||
| (-_-)# Girl |  | ||||||
| 8(>_<)8 Jealous |  | ||||||
| (*°∀°)=3 Infatuated (3) |  | ||||||
| ( ^_^)/ Waving |  | ||||||
| o(^_-)O Boxer |  | ||||||
| {{|└(>o< )┘|}} Up In Arms |  | ||||||
| (^^)// Applause (2) |  | ||||||
| ( `_)?(_' ) Dueling |  | ||||||
| (´~`) Weary |  | ||||||
| v(^_^)v Victory (3) |  | ||||||
| (ノ_ _)ノ Surrender |  | ||||||
| <( ・ェ-)<} Bow and Arrow |  | ||||||
| ( `o´)_θ☆ Kicking |  | ||||||
| (-□-)︵* Blowing a Kiss |  | ||||||
| |д・) Hiding (4) |  | ||||||
| (´Д゜)/゜⌒。 Discarding |  | ||||||
| ʕʔ Bread |  | ||||||
| (ɔ˘з˘)ɔ Romantic |  | ||||||
| ʕ •́؈•̀) Winnie the Pooh |  | ||||||
| (ó ì_í)=óò=(ì_í ò) Bro Pound |  | ||||||
| ヾ(`ε´)ノ Booing |  | ||||||
| |̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅| Stereo |  | ||||||
| ʘ‿ʘ Eager |  | ||||||
| :(¦) Frog |  | ||||||
| ( ^)/占~~~ Banksy |  | ||||||
| (;´༎ຶД༎ຶ`) Weeping (2) |  | ||||||
| ⊂ •͡˘∠•͡˘ ⊃ Suspicious |  | ||||||
| ( ° ᴗ°)~ð  Proposal |  | ||||||
| (๑╹ڡ╹๑) Tasty |  | ||||||
| (¬_¬ ) Neglected |  | ||||||
| ʕु•̫͡•ʔु Bear cub (2) |  | ||||||
| ┌|°з°|┘ Cutting a rug |  | ||||||
| (⊙_◎) Crazed |  | ||||||
| (✖╭╮✖) Deceased |  | ||||||
| ←~(o `▽´ )oΨ Satan |  | ||||||
| ˙ ͜ʟ˙ Content |  | ||||||
| ( ˇ෴ˇ ) Hipster |  | ||||||
| ♫.(◠౪◠).♫ Jamming to music |  | ||||||
| ∊♡_ᴥ_♡∍ Puppy Love |  | ||||||
| L(´□`L) Oh No! (2) |  | ||||||
| (;´ρ`) Yawning |  | ||||||
| (╯ნ_㇁ნ)╯ Defeated |  | ||||||
| (.〜◍`皿′◍〜.) Livid (2) |  | ||||||
| ᡊ|◔じ◔|ᡊ  Woody Allen |  | ||||||
| ✌(გ_㇁გ)✌ Ringo Starr |  | ||||||
| ╹﹏╹ Cold |  | ||||||
| ☉ϖ☉ Lobster |  | ||||||
| (๑≖ิิ益≖ิ๑) Evil Laugh |  | ||||||
| (((☎))) Phone |  | ||||||
| (○`д´)ノシ Σ(っ゚Д゚)っ Chasing |  | ||||||
| o(>< )o⌒* Mad (3) |  | ||||||
| ლ(´ڡ`ლ) Licking |  | ||||||
| ⪿ ↂ ˒̫̮ ↂ ⫀ Elton John |  | ||||||
| (•ᴥ• )́`́'́`́'́⻍ Porcupine |  | ||||||
| 且_(゚◇゚;)ノ゙ Waiter |  | ||||||
| ◖⎚∠⎚◗ Geek |  | ||||||
| -ˆ ω ˆ- Kitten |  | ||||||
| •:_:• Nagato |  | ||||||
| ε=┌(^-^)┘ Skipping |  | ||||||
| (+.+)(-.-)(_ _) Falling Asleep |  | ||||||
| [ ± _ ± ] Sick |  | ||||||
| 〜〜(/ ̄▽)/ 〜ф Chasing A Butterfly |  | ||||||
| \(`0´)/ Fed Up |  | ||||||
| ¥[*.*]¥ Robot |  | ||||||
| (*・)σσ(*゜O゜) Poking |  | ||||||
| ( ̄ー ̄(_ _( Nodding |  | ||||||
| ▼o・_・o▼ Hello |  | ||||||
| (`_^) Wink |  | ||||||
| /( _0_) ̄θ☆≡≡○ Scissor Kick |  | ||||||
| ヽ(´ー`)┌ Mellow |  | ||||||
| (^ _ ^)/~~ Goodbye |  | ||||||
| (*・)「」「」 Magic Casting |  | ||||||
| ( `皿´)。ミ/ Hitting |  | ||||||
| []゛7(∀゜*) Dialing |  | ||||||
| (((((^_^) Teleporting |  | ||||||
| ( ̄ー ̄)//”” Clapping |  | ||||||
| (。。;)\(-_-) Comforting |  | ||||||
| (*  ̄)( ̄ *)  Kissing |  | ||||||
| (;^_^)ッ☆( ゜o゜) Slapping |  | ||||||
| \(~O~)/ Good Morning |  | ||||||
| \_(´▽`)♪_/ Bathtub |  | ||||||
|  | @ -1,470 +0,0 @@ | ||||||
| _FZF_COMPLETION_SEP=$'\x01' |  | ||||||
| 
 |  | ||||||
| # shell parsing stuff |  | ||||||
| _fzf_bash_completion_egrep="$( { which rg || echo egrep; } 2>/dev/null)" |  | ||||||
| _fzf_bash_completion_awk="$( { which gawk || echo awk; } 2>/dev/null)" |  | ||||||
| _fzf_bash_completion_sed="$( { which gsed || echo sed; } 2>/dev/null)" |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_awk_escape() { |  | ||||||
|     "$_fzf_bash_completion_sed" 's/\\/\\\\\\\\/g; s/[[*^$.]/\\\\&/g' <<<"$1" |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_shell_split() { |  | ||||||
|     "$_fzf_bash_completion_egrep" -o \ |  | ||||||
|         -e '[;(){}&\|:]' \ |  | ||||||
|         -e '\|+|&+' \ |  | ||||||
|         -e "(\\\\.|[^\"'[:space:];:(){}&\\|])+" \ |  | ||||||
|         -e "\\\$'(\\\\.|[^'])*('|$)" \ |  | ||||||
|         -e "'[^']*('|$)" \ |  | ||||||
|         -e '"(\\.|\$($|[^(])|[^"$])*("|$)' \ |  | ||||||
|         -e '".*' -e . |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_unbuffered_awk() { |  | ||||||
|     # need to get awk to be unbuffered either by using -W interactive or system("") |  | ||||||
|     "$_fzf_bash_completion_awk" -W interactive "${@:3}" "$1 { $2; print \$0; system(\"\") }" 2>/dev/null |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_flatten_subshells() { |  | ||||||
|     ( |  | ||||||
|         local count=0 buffer= |  | ||||||
|         while IFS= read -r line; do |  | ||||||
|             case "$line" in |  | ||||||
|                 \(|\{) (( count -- )) ;; |  | ||||||
|                 \)|\}) (( count ++ )) ;; |  | ||||||
|             esac |  | ||||||
| 
 |  | ||||||
|             if (( count < 0 )); then |  | ||||||
|                 return |  | ||||||
|             elif (( count > 0 )); then |  | ||||||
|                 buffer="$line$buffer" |  | ||||||
|             else |  | ||||||
|                 printf '%s\n' "$line$buffer" |  | ||||||
|                 buffer= |  | ||||||
|             fi |  | ||||||
|         done < <(tac) |  | ||||||
|         printf '%s\n' "$buffer" |  | ||||||
|     ) | tac |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_find_matching_bracket() { |  | ||||||
|     local count=0 |  | ||||||
|     while IFS=: read num bracket; do |  | ||||||
|         if [ "$bracket" = "$1" ]; then |  | ||||||
|             (( count++ )) |  | ||||||
|             if (( count > 0 )); then |  | ||||||
|                 printf '%s\n' "$num" |  | ||||||
|                 return 0 |  | ||||||
|             fi |  | ||||||
|         else |  | ||||||
|             (( count -- )) |  | ||||||
|         fi |  | ||||||
|     done < <(fgrep $'(\n)' -n) |  | ||||||
|     return 1 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_parse_dq() { |  | ||||||
|     local words="$(cat)" |  | ||||||
|     local last="$(<<<"$words" tail -n1)" |  | ||||||
| 
 |  | ||||||
|     if [[ "$last" == \"* ]]; then |  | ||||||
|         local shell="${last:1}" _shell joined |  | ||||||
|         local word= |  | ||||||
|         while true; do |  | ||||||
|             # we are in a double quoted string |  | ||||||
|             _shell="$(<<<"$shell" "$_fzf_bash_completion_sed" -r 's/^(\\.|[^"$])*\$\(//')" |  | ||||||
| 
 |  | ||||||
|             if [ "$shell" = "$_shell" ]; then |  | ||||||
|                 # no subshells |  | ||||||
|                 break |  | ||||||
|             fi |  | ||||||
| 
 |  | ||||||
|             word+="${shell:0:-${#_shell}-2}" |  | ||||||
|             shell="$_shell" |  | ||||||
| 
 |  | ||||||
|             # found a subshell |  | ||||||
|             split="$(<<<"$shell" _fzf_bash_completion_shell_split)" |  | ||||||
|             if ! split="$(_fzf_bash_completion_parse_dq <<<"$split")"; then |  | ||||||
|                 # bubble up |  | ||||||
|                 printf '%s\n' "$split" |  | ||||||
|                 return 1 |  | ||||||
|             fi |  | ||||||
|             if ! num="$(_fzf_bash_completion_find_matching_bracket ')' <<<"$split")"; then |  | ||||||
|                 # subshell not closed, this is it |  | ||||||
|                 printf '%s\n' "$split" |  | ||||||
|                 return 1 |  | ||||||
|             fi |  | ||||||
|             # subshell closed |  | ||||||
|             joined="$(<<<"$split" head -n "$num" | tr -d \\n)" |  | ||||||
|             word+=$'\n'"\$($joined"$'\n' |  | ||||||
|             shell="${shell:${#joined}}" |  | ||||||
|         done |  | ||||||
|     fi |  | ||||||
|     printf '%s\n' "$words" |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_parse_line() { |  | ||||||
|     _fzf_bash_completion_shell_split \ |  | ||||||
|         | _fzf_bash_completion_parse_dq \ |  | ||||||
|         | _fzf_bash_completion_flatten_subshells \ |  | ||||||
|         | tr \\n \\0 \ |  | ||||||
|         | "$_fzf_bash_completion_sed" -r "$(cat <<'EOF' |  | ||||||
| s/\x00\s*\x00/\n/g; |  | ||||||
| s/\x00(\s*)$/\n\1/; |  | ||||||
| s/([^&\n\x00])&([^&\n\x00])/\1\n\&\n\2/g; |  | ||||||
| s/([\n\x00\z])([<>]+)([^\n\x00])/\1\2\n\3/g; |  | ||||||
| s/([<>][\n\x00])$/\1\n/; |  | ||||||
| s/^(.*[\x00\n])?(\[\[|case|do|done|elif|else|esac|fi|for|function|if|in|select|then|time|until|while|&|;|&&|\|[|&]?)[\x00\n]//; |  | ||||||
| s/^(\s*[\n\x00]|\w+=[^\n\x00]*[\n\x00])*// |  | ||||||
| EOF |  | ||||||
| )" \ |  | ||||||
|         | tr \\0 \\n |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_compspec() { |  | ||||||
|     complete -p -- "$1" || complete -p '' || printf '%s\n' 'complete -o filenames -F _fzf_bash_completion_fallback_completer' |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_fallback_completer() { |  | ||||||
|     # fallback completion in case no compspecs loaded |  | ||||||
|     if [[ "$1" == \~* && "$1" != */* ]]; then |  | ||||||
|         # complete ~user directories |  | ||||||
|         readarray -t COMPREPLY < <(compgen -P '~' -u -- "${1#\~}") |  | ||||||
|     else |  | ||||||
|         # complete files |  | ||||||
|         readarray -t COMPREPLY < <(compgen -f -- "$1") |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_loading_msg() { |  | ||||||
|     echo 'Loading matches ...' |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| fzf_bash_completion() { |  | ||||||
|     printf '\r' |  | ||||||
|     command tput sc 2>/dev/null || echo -ne "\0337" |  | ||||||
|     printf '%s' "$(_fzf_bash_completion_loading_msg)" |  | ||||||
|     command tput rc 2>/dev/null || echo -ne "\0338" |  | ||||||
| 
 |  | ||||||
|     local COMP_WORDS COMP_CWORD COMP_POINT COMP_LINE |  | ||||||
|     local line="${READLINE_LINE:0:READLINE_POINT}" |  | ||||||
|     readarray -t COMP_WORDS < <(_fzf_bash_completion_parse_line <<<"$line") |  | ||||||
| 
 |  | ||||||
|     if [[ "${#COMP_WORDS[@]}" = 0 || "$line" =~ .*[[:space:]]$ ]]; then |  | ||||||
|         COMP_WORDS+=( '' ) |  | ||||||
|     fi |  | ||||||
|     COMP_CWORD="${#COMP_WORDS[@]}" |  | ||||||
|     (( COMP_CWORD-- )) |  | ||||||
| 
 |  | ||||||
|     if [[ ${#COMP_WORDS[@]} -gt 1 ]]; then |  | ||||||
|         _fzf_bash_completion_expand_alias "${COMP_WORDS[0]}" |  | ||||||
|     fi |  | ||||||
|     COMP_LINE="${COMP_WORDS[*]}" |  | ||||||
|     COMP_POINT="${#COMP_LINE}" |  | ||||||
| 
 |  | ||||||
|     local cmd="${COMP_WORDS[0]}" |  | ||||||
|     local prev |  | ||||||
|     if [ "$COMP_CWORD" = 0 ]; then |  | ||||||
|         prev= |  | ||||||
|     else |  | ||||||
|         prev="${COMP_WORDS[COMP_CWORD-1]}" |  | ||||||
|     fi |  | ||||||
|     local cur="${COMP_WORDS[COMP_CWORD]}" |  | ||||||
| 
 |  | ||||||
|     local COMPREPLY= |  | ||||||
|     fzf_bash_completer "$cmd" "$cur" "$prev" |  | ||||||
|     if [ -n "$COMPREPLY" ]; then |  | ||||||
|         if [ -n "$cur" ]; then |  | ||||||
|             line="${line::-${#cur}}" |  | ||||||
|         fi |  | ||||||
|         READLINE_LINE="${line}${COMPREPLY}${READLINE_LINE:$READLINE_POINT}" |  | ||||||
|         (( READLINE_POINT+=${#COMPREPLY} - ${#cur} )) |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     printf '\r' |  | ||||||
|     command tput el 2>/dev/null || echo -ne "\033[K" |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_selector() { |  | ||||||
|     FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse $FZF_DEFAULT_OPTS $FZF_COMPLETION_OPTS" \ |  | ||||||
|         $(__fzfcmd 2>/dev/null || echo fzf) -1 -0 --prompt "> $line" --nth 2 -d "$_FZF_COMPLETION_SEP" \ |  | ||||||
|     | tr -d "$_FZF_COMPLETION_SEP" |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_expand_alias() { |  | ||||||
|     if alias "$1" &>/dev/null; then |  | ||||||
|         value=( ${BASH_ALIASES[$1]} ) |  | ||||||
|         if [ -n "${value[*]}" -a "${value[0]}" != "$1" ]; then |  | ||||||
|             COMP_WORDS=( "${value[@]}" "${COMP_WORDS[@]:1}" ) |  | ||||||
|             COMP_CWORD="$(( COMP_CWORD + ${#value[@]} - 1 ))" |  | ||||||
|         fi |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_get_results() { |  | ||||||
|     local trigger="${FZF_COMPLETION_TRIGGER-**}" |  | ||||||
|     if [[ "$2" =~ .*\$(\{?)([A-Za-z0-9_]*)$ ]]; then |  | ||||||
|         # environment variables |  | ||||||
|         local brace="${BASH_REMATCH[1]}" |  | ||||||
|         local filter="${BASH_REMATCH[2]}" |  | ||||||
|         if [ -n "$filter" ]; then |  | ||||||
|             local prefix="${2:: -${#filter}}" |  | ||||||
|         else |  | ||||||
|             local prefix="$2" |  | ||||||
|         fi |  | ||||||
|         compgen -v -P "$prefix" -S "${brace:+\}}" -- "$filter" |  | ||||||
|     elif [ "$COMP_CWORD" == 0 ]; then |  | ||||||
|         # commands |  | ||||||
|         printf '%s\n' compl_filenames=1 >&"${__evaled}" |  | ||||||
|         compgen -abc -- "$2" | _fzf_bash_completion_dir_marker |  | ||||||
|     elif [[ "$2" == *"$trigger" ]]; then |  | ||||||
|         # replicate fzf ** trigger completion |  | ||||||
|         local suffix="${2##*/}" |  | ||||||
|         local prefix="${2::${#2}-${#suffix}}" |  | ||||||
|         suffix="${suffix::${#suffix}-${#trigger}}" |  | ||||||
| 
 |  | ||||||
|         local flags=() |  | ||||||
|         if [[ "$1" =~ cd|pushd|rmdir ]]; then |  | ||||||
|             flags=( -type d ) |  | ||||||
|         fi |  | ||||||
| 
 |  | ||||||
|         if [[ ! "$prefix" =~ (.?/).* ]]; then |  | ||||||
|             prefix="./$prefix" |  | ||||||
|         elif [ "${prefix::2}" = '~/' ]; then |  | ||||||
|             prefix="${HOME}/${prefix:2}" |  | ||||||
|         fi |  | ||||||
| 
 |  | ||||||
|         # smart case |  | ||||||
|         if [ "${suffix,,}" = "${suffix}" ]; then |  | ||||||
|             flags+=( -ipath "$prefix$suffix*" ) |  | ||||||
|         else |  | ||||||
|             flags+=( -path "$prefix$suffix*" ) |  | ||||||
|         fi |  | ||||||
| 
 |  | ||||||
|         printf '%s\n' compl_filenames=1 >&"${__evaled}" |  | ||||||
|         find -L "$prefix" -mindepth 1 "${flags[@]}" \( -type d -printf "%p/\n" , -type f -print \) 2>/dev/null | "$_fzf_bash_completion_sed" 's,^\./,,' |  | ||||||
|     else |  | ||||||
|         _fzf_bash_completion_complete "$@" |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| fzf_bash_completer() { |  | ||||||
|     local value code |  | ||||||
|     local compl_bashdefault compl_default compl_dirnames compl_filenames compl_noquote compl_nosort compl_nospace compl_plusdirs |  | ||||||
| 
 |  | ||||||
|     # preload completions in top shell |  | ||||||
|     { complete -p -- "$1" || __load_completion "$1"; } &>/dev/null |  | ||||||
| 
 |  | ||||||
|     eval "$( |  | ||||||
|         set -o pipefail |  | ||||||
| 
 |  | ||||||
|         # hack: hijack compopt |  | ||||||
|         compopt() { _fzf_bash_completion_compopt "$@"; } |  | ||||||
| 
 |  | ||||||
|         local __unquoted="${2#[\"\']}" |  | ||||||
|         exec {__evaled}>&1 |  | ||||||
|         coproc ( |  | ||||||
|             ( |  | ||||||
|                 _fzf_bash_completion_get_results "$@" |  | ||||||
|                 while (( $? == 124 )); do |  | ||||||
|                     _fzf_bash_completion_get_results "$@" |  | ||||||
|                 done |  | ||||||
|             ) | _fzf_bash_completion_unbuffered_awk '$0!="" && !x[$0]++' '$0 = substr($0, 1, len) sep substr($0, len+1)' -vlen="${#__unquoted}" -vsep="$_FZF_COMPLETION_SEP" |  | ||||||
|         ) |  | ||||||
|         value="$(_fzf_bash_completion_selector "$1" "$__unquoted" "$3" <&"${COPROC[0]}")" |  | ||||||
|         code="$?" |  | ||||||
| 
 |  | ||||||
|         printf 'COMPREPLY=%q\n' "$value" |  | ||||||
|         printf 'code=%q\n' "$code" |  | ||||||
|         kill 0 |  | ||||||
|     )" |  | ||||||
| 
 |  | ||||||
|     if [ "$code" = 0 ]; then |  | ||||||
|         readarray -t COMPREPLY < <( |  | ||||||
|             if [ "$compl_noquote" != 1 -a "$compl_filenames" = 1 ]; then |  | ||||||
|                 while IFS= read -r line; do |  | ||||||
|                     if [ "$line" = "$2" ]; then |  | ||||||
|                         printf '%s\n' "$line" |  | ||||||
|                     # never quote the prefix |  | ||||||
|                     elif [ "${line::${#2}}" = "$2" ]; then |  | ||||||
|                         printf '%s%q\n' "$2" "${line:${#2}}" |  | ||||||
|                     elif [ "${line::1}" = '~' ]; then |  | ||||||
|                         printf '~%q\n' "${line:1}" |  | ||||||
|                     else |  | ||||||
|                         printf '%q\n' "$line" |  | ||||||
|                     fi |  | ||||||
|                 done |  | ||||||
|             else |  | ||||||
|                 cat |  | ||||||
|             fi <<<"$COMPREPLY" |  | ||||||
|         ) |  | ||||||
|         COMPREPLY="${COMPREPLY[*]}" |  | ||||||
|         [ "$compl_nospace" != 1 ] && COMPREPLY="$COMPREPLY " |  | ||||||
|         [[ "$compl_filenames" == *1* ]] && COMPREPLY="${COMPREPLY/%\/ //}" |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_complete() { |  | ||||||
|     local compgen_actions=() |  | ||||||
|     local compspec="$(_fzf_bash_completion_compspec "$1" 2>/dev/null)" |  | ||||||
| 
 |  | ||||||
|     eval "compspec=( $compspec )" |  | ||||||
|     set -- "${compspec[@]}" "$@" |  | ||||||
|     shift |  | ||||||
|     while [ "$#" -gt 4 ]; do |  | ||||||
|         case "$1" in |  | ||||||
|         -F) |  | ||||||
|             local compl_function="$2" |  | ||||||
|             shift ;; |  | ||||||
|         -C) |  | ||||||
|             local compl_command="$2" |  | ||||||
|             shift ;; |  | ||||||
|         -G) |  | ||||||
|             local compl_globpat="$2" |  | ||||||
|             shift ;; |  | ||||||
|         -W) |  | ||||||
|             local compl_wordlist="$2" |  | ||||||
|             shift ;; |  | ||||||
|         -X) |  | ||||||
|             local compl_xfilter="$2" |  | ||||||
|             shift ;; |  | ||||||
|         -o) |  | ||||||
|             _fzf_bash_completion_compopt -o "$2" |  | ||||||
|             shift ;; |  | ||||||
|         -A) |  | ||||||
|             local compgen_opts+=( "$1" "$2" ) |  | ||||||
|             shift ;; |  | ||||||
|         -P) |  | ||||||
|             local compl_prefix="$(_fzf_bash_completion_awk_escape "$2")" |  | ||||||
|             shift ;; |  | ||||||
|         -S) |  | ||||||
|             local compl_suffix="$(_fzf_bash_completion_awk_escape "$2")" |  | ||||||
|             shift ;; |  | ||||||
|         -[a-z]) |  | ||||||
|             compgen_actions+=( "$1" ) |  | ||||||
|             ;; |  | ||||||
|         esac |  | ||||||
|         shift |  | ||||||
|     done |  | ||||||
|     shift |  | ||||||
| 
 |  | ||||||
|     COMPREPLY=() |  | ||||||
|     if [ -n "$compl_function" ]; then |  | ||||||
|         "$compl_function" "$@" >/dev/null |  | ||||||
|         if [ "$?" = 124 ]; then |  | ||||||
|             local newcompspec="$(_fzf_bash_completion_compspec "$1" 2>/dev/null)" |  | ||||||
|             if [ "$newcompspec" != "$compspec" ]; then |  | ||||||
|                 return 124 |  | ||||||
|             fi |  | ||||||
|             "$compl_function" "$@" >/dev/null |  | ||||||
|         fi |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     compl_filenames="${compl_filenames}${compl_plusdirs}${compl_dirnames}" |  | ||||||
|     if [[ "$compl_filenames" == *1* ]]; then |  | ||||||
|         local dir_marker=_fzf_bash_completion_dir_marker |  | ||||||
|     else |  | ||||||
|         local dir_marker=cat |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     printf 'compl_filenames=%q\n' "$compl_filenames" >&"${__evaled}" |  | ||||||
|     printf 'compl_noquote=%q\n' "$compl_noquote" >&"${__evaled}" |  | ||||||
|     printf 'compl_nospace=%q\n' "$compl_nospace" >&"${__evaled}" |  | ||||||
| 
 |  | ||||||
|     ( |  | ||||||
|         ( |  | ||||||
|             if [ -n "${compgen_actions[*]}" ]; then |  | ||||||
|                 compgen "${compgen_opts[@]}" -- "$2" |  | ||||||
|             fi |  | ||||||
| 
 |  | ||||||
|             if [ -n "$compl_globpat" ]; then |  | ||||||
|                 printf %s\\n "$compl_globpat" |  | ||||||
|             fi |  | ||||||
| 
 |  | ||||||
|             if [ -n "$compl_wordlist" ]; then |  | ||||||
|                 eval "printf '%s\\n' $compl_wordlist" |  | ||||||
|             fi |  | ||||||
| 
 |  | ||||||
|             if [ -n "${COMPREPLY[*]}" ]; then |  | ||||||
|                 printf %s\\n "${COMPREPLY[@]}" |  | ||||||
|             fi |  | ||||||
| 
 |  | ||||||
|             if [ -n "$compl_command" ]; then |  | ||||||
|                 ( |  | ||||||
|                     unset COMP_WORDS COMP_CWORD |  | ||||||
|                     export COMP_LINE="$COMP_LINE" COMP_POINT="$COMP_POINT" COMP_KEY="$COMP_KEY" COMP_TYPE="$COMP_TYPE" |  | ||||||
|                     eval "$compl_command" |  | ||||||
|                 ) |  | ||||||
|             fi |  | ||||||
| 
 |  | ||||||
|             printf '%s\n' |  | ||||||
|         ) | _fzf_bash_completion_apply_xfilter "$compl_xfilter" \ |  | ||||||
|           | _fzf_bash_completion_unbuffered_awk '$0!=""' 'sub(find, replace)' -vfind='.*' -vreplace="$(printf %s "$compl_prefix" | "$_fzf_bash_completion_sed" 's/[&\]/\\&/g')&$(printf %s "$compl_suffix" | "$_fzf_bash_completion_sed" 's/[&\]/\\&/g')" \ |  | ||||||
|           | if IFS= read -r line; then |  | ||||||
|                 printf '%s\n' "$line"; cat |  | ||||||
|             else |  | ||||||
|                 local compgen_opts=() |  | ||||||
|                 [ "$compl_bashdefault" = 1 ] && compgen_opts+=( -o bashdefault ) |  | ||||||
|                 [ "$compl_default" = 1 ] && compgen_opts+=( -o default ) |  | ||||||
|                 [ "$compl_dirnames" = 1 ] && compgen_opts+=( -o dirnames ) |  | ||||||
|                 if [ -n "${compgen_opts[*]}" ]; then |  | ||||||
|                     compgen "${compgen_opts[@]}" -- "$2" |  | ||||||
|                 fi |  | ||||||
|             fi |  | ||||||
| 
 |  | ||||||
|         if [ "$compl_plusdirs" = 1 ]; then |  | ||||||
|             compgen -o dirnames -- "$2" |  | ||||||
|         fi |  | ||||||
|     ) \ |  | ||||||
|     | _fzf_bash_completion_unbuffered_awk '' 'sub(find, replace)' -vfind="^$(_fzf_bash_completion_awk_escape "$2")" -vreplace="$("$_fzf_bash_completion_sed" -r 's/\\(.)/\1/g; s/[&\]/\\&/g' <<<"$2")" \ |  | ||||||
|     | "$dir_marker" |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_apply_xfilter() { |  | ||||||
|     if [ -z "$1" ]; then |  | ||||||
|         cat |  | ||||||
|         return |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     local pattern line word="$cur" |  | ||||||
|     word="${word//\//\\/}" |  | ||||||
|     word="${word//&/\\&}" |  | ||||||
|     # replace any unescaped & with the word being completed |  | ||||||
|     pattern="$("$_fzf_bash_completion_sed" 's/\(\(^\|[^\]\)\(\\\\\)*\)&/\1'"$word"'/g' <<<"${1:1}")" |  | ||||||
| 
 |  | ||||||
|     if [ "${1::1}" = ! ]; then |  | ||||||
|         while IFS= read -r line; do [[ "$line" == $pattern ]] && printf '%s\n' "$line"; done |  | ||||||
|     elif [ -n "$1" ]; then |  | ||||||
|         while IFS= read -r line; do [[ "$line" != $pattern ]] && printf '%s\n' "$line"; done |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_dir_marker() { |  | ||||||
|     local line |  | ||||||
|     while IFS= read -r line; do |  | ||||||
|         # adapted from __expand_tilde_by_ref |  | ||||||
|         if [[ "$line" == \~* ]]; then |  | ||||||
|             eval "$(printf expanded=~%q "${line:1}")" |  | ||||||
|         fi |  | ||||||
|         [ -d "${expanded-"$line"}" ] && line="$line/" |  | ||||||
|         printf '%s\n' "$line" |  | ||||||
|     done |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| _fzf_bash_completion_compopt() { |  | ||||||
|     while [ "$#" -gt 0 ]; do |  | ||||||
|         local val |  | ||||||
|         if [ "$1" = -o ]; then |  | ||||||
|             val=1 |  | ||||||
|         elif [ "$1" = +o ]; then |  | ||||||
|             val=0 |  | ||||||
|         else |  | ||||||
|             break |  | ||||||
|         fi |  | ||||||
| 
 |  | ||||||
|         if [[ "$2" =~ bashdefault|default|dirnames|filenames|noquote|nosort|nospace|plusdirs ]]; then |  | ||||||
|             eval "compl_$2=$val" |  | ||||||
|         fi |  | ||||||
|         shift 2 |  | ||||||
|     done |  | ||||||
| } |  | ||||||
|  | @ -1,10 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| MAIN_DP=DP-2;   |  | ||||||
| 
 |  | ||||||
| v=$1 |  | ||||||
| 
 |  | ||||||
| if [ $# -ne 0 ]; then |  | ||||||
| 	xrandr --output $MAIN_DP --gamma $(paste -d" " <(xrandr | grep " connected" | cut -f1 -d " ") <(xrandr --current --verbose | grep "Gamma" | cut -f7 -d" " | cut -f1 -d":" | xargs -I % echo "1/%") | grep $MAIN_DP | cut -d" " -f2 | xargs -I % echo "%*$v" | bc -l) |  | ||||||
| else |  | ||||||
| 	xrandr --output $MAIN_DP --gamma 1.3 |  | ||||||
| fi |  | ||||||
|  | @ -1,362 +0,0 @@ | ||||||
| ^_^ Overjoyed (2) |  | ||||||
| (╯°□°)╯︵ ┻━┻ Flipping Table (3) |  | ||||||
| ლ(ಠ益ಠლ) But At What Cost |  | ||||||
| (//_^) Emo (5) |  | ||||||
| ʕ •ᴥ•ʔ Koala (3) |  | ||||||
| (っ^‿^)っ Kirby (5) |  | ||||||
| [¬º-°]¬ Zombie (2) |  | ||||||
| (●∈∋●) Bird (5) |  | ||||||
| ಠ_ಠ Disapproval |  | ||||||
| T.T Sad (2) |  | ||||||
| ◤◡ᴥ◡◥  Dog (4) |  | ||||||
| (∩`-´)⊃━☆゚.*・。゚ Wizard |  | ||||||
| ^-^ Happy (7) |  | ||||||
| ᕦ(ò_óˇ)ᕤ Flexing (3) |  | ||||||
| ♪┏(・o・)┛♪ Dancing (8) |  | ||||||
| ( ͡° ͜ʖ ͡°) Smiling (2) |  | ||||||
| /人◕ ‿‿ ◕人\ Kyubey |  | ||||||
| ༼ ༎ຶ ෴ ༎ຶ༽ Distraught |  | ||||||
| ᒄ₍⁽ˆ⁰ˆ⁾₎ᒃ♪♬ Frosty the Snowman (2) |  | ||||||
| (╯°□°)╯︵ ┻━┻ Flipping table (2) |  | ||||||
| <(^oo^)> Pig (3) |  | ||||||
| ¯\_(ツ)_/¯ Shrugging (2) |  | ||||||
| U=・ x ・=U Rabbit (2) |  | ||||||
| ⊂((・▽・))⊃ Hug me (2) |  | ||||||
| V●ᴥ●V Doggy (2) |  | ||||||
| (=^_^=) Bunny (3) |  | ||||||
| <コ:彡 Squid (2) |  | ||||||
| -_-; Anime Sweat Drop (2) |  | ||||||
| (°̥̥̥̥̥̥̥̥ᴗ°̥̥̥̥̥̥̥̥) Happy crying |  | ||||||
| (=^・ェ・^=) Kitty (2) |  | ||||||
| (((༼•̫͡•༽))) Ghost (2) |  | ||||||
| (-‸ლ) Whoops |  | ||||||
| (=^ェ^=) Cat (4) |  | ||||||
| ( ´-ω・)︻┻┳══━一 Sniper |  | ||||||
| ⊆☉ᴥ☉⊇ Bear (7) |  | ||||||
| ༼ つ ◕_◕ ༽つ Take my energy |  | ||||||
| (  ̄┏_┓ ̄) Mustache (2) |  | ||||||
| (;´Д`) Giving Up |  | ||||||
| ( ͡° ʖ̯ ͡°) Disgruntled |  | ||||||
| ✌(◕‿-)✌ Peace (3) |  | ||||||
| ಠ_ರೃ Monocle (2) |  | ||||||
| T^T Crying (5) |  | ||||||
| ᘛ⁐̤ᕐᐷ Chameleon |  | ||||||
| ༼ つ ◕_◕ ༽つ Gimme |  | ||||||
| ლ(ಠ益ಠ)ლ Anger |  | ||||||
| (ง •̀_•́)ง Feisty |  | ||||||
| (っ⌒‿⌒)っ Hug (3) |  | ||||||
| ϵ( 'Θ' )϶ Fish (3) |  | ||||||
| (^▽^) Laughing (5) |  | ||||||
| ¯\(°_o)/¯ Confused (4) |  | ||||||
| ̿’̿’\̵͇̿̿\З=( ͠° ͟ʖ ͡°)=Ε/̵͇̿̿/’̿̿ ̿ ̿ ̿ ̿ ̿ Outlaw |  | ||||||
| o(^▽^)o Pumped (2) |  | ||||||
| .∵・(゚Д゚) Scared (2) |  | ||||||
| (*☉౪ ⊙。)ノ Imbecile (2) |  | ||||||
| d-(^.^)z Thumbs Up (2) |  | ||||||
| (>_<) Painful |  | ||||||
| (¬_¬") Annoyed (4) |  | ||||||
| (´╹〽╹`) Worried (4) |  | ||||||
| (o^-^o) Pikachu (2) |  | ||||||
| (▀̿Ĺ̯▀̿ ̿) Deal with it |  | ||||||
| (∩`-´)⊃━☆゚.*・。゚ Magic Attack |  | ||||||
| ꒡ᘦ̲꒡ Sleeping (5) |  | ||||||
| (‾ʖ̫‾) Lethargic |  | ||||||
| ^_^; Guilty |  | ||||||
| ヽ(`⌒´メ)ノ Angry (8) |  | ||||||
| ^^ Blissful |  | ||||||
| ^_^/ High Five (2) |  | ||||||
| ʕ•͡ᴥ•ʔ Polar bear |  | ||||||
| ❆❅❉ Snowing |  | ||||||
| ヽ(★ω★)ノ Excited |  | ||||||
| U^ェ^U Puppy |  | ||||||
| ⊂(^(工)^)⊃ Teddy bear |  | ||||||
| (≧∇≦)/ Joyful (2) |  | ||||||
| ◦°˚\☺/˚°◦ Playing in the snow |  | ||||||
| (╯°□°)╯︵ ʞooqǝɔɐɟ Flipping Facebook |  | ||||||
| (;-_-)ノ Giving up |  | ||||||
| ⊙▂⊙ Shocked |  | ||||||
| |∴め ϖ め∴| SpongeBob SquarePants |  | ||||||
| ◔̯◔ Rolling Eyes |  | ||||||
| ⊂(◜ᴥ◝)つ Teddy Bear |  | ||||||
| ε=(☉_☉) Accidental farting |  | ||||||
| (ಥ﹏ಥ) Devastated (2) |  | ||||||
| (•͡.•͡) Skeptical |  | ||||||
| ε=┏( >_<)┛ Running (5) |  | ||||||
| ┬─┬︵/(.□.)╯ Table Flips You |  | ||||||
| 〠_〠 Tired (3) |  | ||||||
| ∊ಠ_ಠ∍ Distressed |  | ||||||
| V=(° °)=V Crab (2) |  | ||||||
| ᶘ ᵒᴥᵒᶅ Seal (2) |  | ||||||
| Ƹ̵̡Ӝ̵̨̄Ʒ Butterfly |  | ||||||
| (- o - ) zzZ ☽ Sleepy |  | ||||||
| ◯0o。(ー。ー)y Smoking (4) |  | ||||||
| (。々°) Herp Derp |  | ||||||
| -_-* Frustrated (3) |  | ||||||
| (+[__]∙:∙) PlayStation Portable |  | ||||||
| (V) (°,,,,°) (V) Zoidberg |  | ||||||
| /|\( ;,; )/|\ Bat |  | ||||||
| ◖㈠ ω ㈠◗ Panda |  | ||||||
| \m/d(^_^)b\m/ Rocking Out |  | ||||||
| ヽ(゚Д゚)ノ Freak Out (2) |  | ||||||
| (ノ゚0゚)ノ~ Yoo-Hoo |  | ||||||
| ¤\( `⌂´ )/¤ Lifting weights |  | ||||||
| (ò_ó) Furious |  | ||||||
| ( ˘ ³˘)♥ Kiss me |  | ||||||
| (^▽^) Cheerful (3) |  | ||||||
| (⌒ ͜ʖ⌒)b Attentive |  | ||||||
| ᕦ❍ᴗ❍ᕤ Muscular Person |  | ||||||
| (´>_●)メ(●_<`) Sword Fighting |  | ||||||
| :-Þ Teasing |  | ||||||
| =( ^o^)ノ___o Bowling |  | ||||||
| (#×_×) Dead (2) |  | ||||||
| (。・_・)ノ”【】 Painting |  | ||||||
| (/。\) Shy (5) |  | ||||||
| ⎰≀.☮-☮≀⎰ John Lennon |  | ||||||
| ─=≡Σ(([ ⊐•̀⌂•́]⊐ Superhero |  | ||||||
| (¬з¬)σ Pointing (2) |  | ||||||
| (・д・)} On The Phone (3) |  | ||||||
| 㐈⦁ཽし⦁ཽ㐈  Larry David |  | ||||||
| ⨌⨀_⨀⨌ Benjamin Franklin |  | ||||||
| (☄ฺ◣д◢)☄ฺ Scaring |  | ||||||
| ƪ(˘▽˘ƪ) Worshiping |  | ||||||
| [•.•ิ] Huh |  | ||||||
| (◐‿◑) Crazy |  | ||||||
| \(-_- ) Thank You |  | ||||||
| (_ε_) Kiss my butt |  | ||||||
| (⊃‿⊂) Anticipation |  | ||||||
| (* ̄m ̄) Dissatisfied |  | ||||||
| Q('.'Q) Put Em Up |  | ||||||
| \(^o)(^0^)(o^)/ Caroling |  | ||||||
| ( ̄~ ̄) Unimpressed |  | ||||||
| ༼ঢ_༽ঢ༽ Perplexed |  | ||||||
| (。♥‿♥。) Smitten |  | ||||||
| ( ̄□ ̄;) Surprised |  | ||||||
| (^o^) Singing (3) |  | ||||||
| (:3 っ)っ Walrus |  | ||||||
| ( `_)乂(_' ) Arm wrestle |  | ||||||
| (ง •̀ゝ•́)ง Fighting (2) |  | ||||||
| uwu Happy Anime Face |  | ||||||
| └(^o^ )X( ^o^)┘ Best buddies |  | ||||||
| d^_^b DJ |  | ||||||
| ( --)/ ==卍 Ninja Star |  | ||||||
| C:。ミ Octopus |  | ||||||
| (´・ω・`) Snubbing (2) |  | ||||||
| ♪(●′▽`)ノ Good Night |  | ||||||
| (#^.^#) Embarrassed (3) |  | ||||||
| ಥ_ಥ Bawling (3) |  | ||||||
| †_(゚ー゚*)β Exorcism |  | ||||||
| ੯ू•́ू ໒꒱⁼³₌₃ Sonic the Hedgehog |  | ||||||
| (^‿◕) Winking (3) |  | ||||||
| (″・ิ_・ิ)っ Wait (3) |  | ||||||
| 。◕‿◕。 Gleeful |  | ||||||
| ヽ( ★ω★)ノ Pumped up |  | ||||||
| _〆(。。) Writing (2) |  | ||||||
| (∿°○°)∿ ︵ ǝʌol Heartbroken |  | ||||||
| ^;;^ Spider |  | ||||||
| (⓪益⓪) Staring (2) |  | ||||||
| ( ̄┏∞┓ ̄) Fu Manchu Man |  | ||||||
| ( • ∀•)っθΘʘ Hiding Easter eggs |  | ||||||
| _φ( °-°)/ Doing Homework |  | ||||||
| ◖ර◞ʖ◟ර◗ Grandma |  | ||||||
| ¬.¬ Whatever (3) |  | ||||||
| ⫷ °⧭° ⫸ Clown |  | ||||||
| (♥_♥) In Love |  | ||||||
| >.< Upset (2) |  | ||||||
| ( ◢д◣) Depressed (4) |  | ||||||
| ᕕ( ᐛ )ᕗ Celebrating |  | ||||||
| (¬‿¬) Cunning |  | ||||||
| └(^o^)┐ Grooving (3) |  | ||||||
| ~゜・_・゜~ Raving |  | ||||||
| ᕦ◉▿◉ᕤ Owl (2) |  | ||||||
| \(^O^)/ Celebrate |  | ||||||
| (*’(OO)’*) Piggy (2) |  | ||||||
| ˃ʍ˂ Enraged (2) |  | ||||||
| (ू˃̣̣̣̣̣̣︿˂̣̣̣̣̣̣ ू) Sobbing (3) |  | ||||||
| ( ^^)人(^^ ) Best Buds |  | ||||||
| └@(・ェ・)@┐ Beefcake |  | ||||||
| (☉__☉”) Yikes |  | ||||||
| (╯˘ -˘ )╯ Praying (2) |  | ||||||
| ε=┌( ≧▽)┘ Elated |  | ||||||
| ( •_•)O °Q(•_• ) Playing Ping Pong |  | ||||||
| ∋(°O°)∈ Blowfish |  | ||||||
| (;一_一) Ashamed (4) |  | ||||||
| {♥‿♥} Lovestruck |  | ||||||
| ๏-) Cyclops |  | ||||||
| (o ̄∇ ̄)=◯)`ν゜)・ Punching (6) |  | ||||||
| ┬─┬ノ( º _ ºノ) Putting Table Back (2) |  | ||||||
| (~_(]=--Z(◡˘) Pie Fight |  | ||||||
| ((((((^_^;) Evading |  | ||||||
| (/o^)/°⊥\(^o\) Volleyball |  | ||||||
| -{'''|'''|'''|''']=[] Syringe |  | ||||||
| [^._.^]ノ彡 Nyan Cat |  | ||||||
| ---(o_ _)o Tripping (2) |  | ||||||
| ┬┴┬┴┤(・_├┬┴┬┴ Snooper |  | ||||||
| (ㆆ_ㆆ) Unamused |  | ||||||
| (✿◠‿◠)  Hippie |  | ||||||
| ヾ(* ̄O ̄)ツ Yelling |  | ||||||
| (ɔ◔‿◔)ɔ ♥ Loving |  | ||||||
| (ノ-o-)ノ 中 Olympic Hammer Throw |  | ||||||
| (/ω・\) Peering |  | ||||||
| (´・ω・)っ由 Gift |  | ||||||
| [-_-]~ Ninja |  | ||||||
| (シ_ _)シ Apology (2) |  | ||||||
| ∋∞(●゚v゚)∞∈ Pigtails |  | ||||||
| (>o<)ρミ┳┷┳゜ Table Tennis |  | ||||||
| (^̮^) Pleased (2) |  | ||||||
| ♪~( ̄ε ̄;) Whistling |  | ||||||
| ( ̄▼ ̄) Big Grin |  | ||||||
| ⋟^≏^⋞ Kitty Cat |  | ||||||
| ( ̄へ ̄) Discontent |  | ||||||
| (*・_・)ノ⌒* Throwing Away |  | ||||||
| (*@_*#) Beaten Up |  | ||||||
| (p_-) Thinking |  | ||||||
| (。_°)☆ Punched |  | ||||||
| ♥‿♥ Enamored |  | ||||||
| ε-(´・`) フ Phew |  | ||||||
| ༼ঢ_㇁ঢ༽ Bad hair day |  | ||||||
| (づ ̄ ³ ̄)づ Smooch (3) |  | ||||||
| O(<>'<>)O Aang |  | ||||||
| (_ _)..ooOO Dreaming |  | ||||||
| ┳┻┳° Ping Pong table |  | ||||||
| ^o^ Mog |  | ||||||
| (゚皿゚)r┏┳-* Shooting (2) |  | ||||||
| m( ゚皿゚)m★━━ Laser |  | ||||||
| ٩◔̯◔۶ Eye Roll With Hands Up |  | ||||||
| ヽ(´Д`ヽミノ´Д`)ノ Frantic (2) |  | ||||||
| (-ε- ) Pucker up (3) |  | ||||||
| ヽ(⌐■_■)ノ♪♬ Boogie down |  | ||||||
| 「(°ヘ°) Puzzled |  | ||||||
| d(^_^)b Listening to Music |  | ||||||
| ( -_-)旦~ Drinking |  | ||||||
| <_< Looking (4) |  | ||||||
| (( _ _)☆ ≡〇 Header |  | ||||||
| ^)_(^ Chubby |  | ||||||
| (๑´•.̫ • `๑) Blushing |  | ||||||
| (。▼皿▼) Darth Vader |  | ||||||
| (╬☉Д⊙ฺ) Cyborg |  | ||||||
| (ʘ‿ʘ) Smile |  | ||||||
| ε=ε=ε=┌(๑ʘ∀ʘ)┘ Sprinting |  | ||||||
| ƪ(˘⌣˘)ʃ Raise the roof |  | ||||||
| ( ˘︹˘ ) Smug |  | ||||||
| (▰˘◡˘▰) Satisfied |  | ||||||
| (¬、¬) Shifty |  | ||||||
| ¯(°_o)/¯ Confused shrug |  | ||||||
| ✖‿✖ Dead person |  | ||||||
| (。_°☆\(- – ) Punch |  | ||||||
| (ɔˆ ³(ˆ⌣ˆc) Loving couple |  | ||||||
| (*▿▿* ƪ) Vampire |  | ||||||
| o(^^o)(o^^)o Hopeful |  | ||||||
| ___ψ(‥ ) Studying |  | ||||||
| _φ(°-°=) Doing homework |  | ||||||
| @( o・ω・)@ Monkey |  | ||||||
| (╭ರ_•́) Inquisitive |  | ||||||
| ੯ू‵ू ໒꒱ Poodle |  | ||||||
| (*^^)^*) Kiss (5) |  | ||||||
| (^~^) Meh |  | ||||||
| (/。\) Frightened |  | ||||||
| :þ Playful |  | ||||||
| (>^_^)><(^o^<) Hugging |  | ||||||
| (-_ゞ Groggy |  | ||||||
| (*^o^)人(^o^*) Buddies |  | ||||||
| (●´ノω`)コ Whispering (2) |  | ||||||
| o(´^`)o Reluctant |  | ||||||
| ( つ Д `) Wiping Tears |  | ||||||
| (o´・Υ・)ノ・ Help (2) |  | ||||||
| (。・ˇдˇ・。) Pompous |  | ||||||
| (´∪`*) Friendly |  | ||||||
| ヘ(。□°)ヘ Psycho |  | ||||||
| (人’∀’) Precious |  | ||||||
| (っ˘ڡ˘ς) Yummy |  | ||||||
| ┗(・ω・;)┛ How Should I Know |  | ||||||
| (о^ω^о) Giggling |  | ||||||
| (´ー`)┌フッ Golf Clap |  | ||||||
| \\(<.<|>.>)// Panicking |  | ||||||
| ^(#`∀´)_Ψ Demon |  | ||||||
| (╯‵Д′)╯ Scary |  | ||||||
| :-{  -__-: Stinky |  | ||||||
| ಠᴗಠ Scheming |  | ||||||
| <(; ̄ ・ ̄) Scratching |  | ||||||
| \(^ ^)/ Glad |  | ||||||
| (╯_╰) Bummed out |  | ||||||
| ┗( ●-﹏ `。)づ Hurt (2) |  | ||||||
| (-_-)# Girl |  | ||||||
| 8(>_<)8 Jealous |  | ||||||
| (*°∀°)=3 Infatuated (3) |  | ||||||
| ( ^_^)/ Waving |  | ||||||
| o(^_-)O Boxer |  | ||||||
| {{|└(>o< )┘|}} Up In Arms |  | ||||||
| (^^)// Applause (2) |  | ||||||
| ( `_)?(_' ) Dueling |  | ||||||
| (´~`) Weary |  | ||||||
| v(^_^)v Victory (3) |  | ||||||
| (ノ_ _)ノ Surrender |  | ||||||
| <( ・ェ-)<} Bow and Arrow |  | ||||||
| ( `o´)_θ☆ Kicking |  | ||||||
| (-□-)︵* Blowing a Kiss |  | ||||||
| |д・) Hiding (4) |  | ||||||
| (´Д゜)/゜⌒。 Discarding |  | ||||||
| ʕʔ Bread |  | ||||||
| (ɔ˘з˘)ɔ Romantic |  | ||||||
| ʕ •́؈•̀) Winnie the Pooh |  | ||||||
| (ó ì_í)=óò=(ì_í ò) Bro Pound |  | ||||||
| ヾ(`ε´)ノ Booing |  | ||||||
| |̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅| Stereo |  | ||||||
| ʘ‿ʘ Eager |  | ||||||
| :(¦) Frog |  | ||||||
| ( ^)/占~~~ Banksy |  | ||||||
| (;´༎ຶД༎ຶ`) Weeping (2) |  | ||||||
| ⊂ •͡˘∠•͡˘ ⊃ Suspicious |  | ||||||
| ( ° ᴗ°)~ð  Proposal |  | ||||||
| (๑╹ڡ╹๑) Tasty |  | ||||||
| (¬_¬ ) Neglected |  | ||||||
| ʕु•̫͡•ʔु Bear cub (2) |  | ||||||
| ┌|°з°|┘ Cutting a rug |  | ||||||
| (⊙_◎) Crazed |  | ||||||
| (✖╭╮✖) Deceased |  | ||||||
| ←~(o `▽´ )oΨ Satan |  | ||||||
| ˙ ͜ʟ˙ Content |  | ||||||
| ( ˇ෴ˇ ) Hipster |  | ||||||
| ♫.(◠౪◠).♫ Jamming to music |  | ||||||
| ∊♡_ᴥ_♡∍ Puppy Love |  | ||||||
| L(´□`L) Oh No! (2) |  | ||||||
| (;´ρ`) Yawning |  | ||||||
| (╯ნ_㇁ნ)╯ Defeated |  | ||||||
| (.〜◍`皿′◍〜.) Livid (2) |  | ||||||
| ᡊ|◔じ◔|ᡊ  Woody Allen |  | ||||||
| ✌(გ_㇁გ)✌ Ringo Starr |  | ||||||
| ╹﹏╹ Cold |  | ||||||
| ☉ϖ☉ Lobster |  | ||||||
| (๑≖ิิ益≖ิ๑) Evil Laugh |  | ||||||
| (((☎))) Phone |  | ||||||
| (○`д´)ノシ Σ(っ゚Д゚)っ Chasing |  | ||||||
| o(>< )o⌒* Mad (3) |  | ||||||
| ლ(´ڡ`ლ) Licking |  | ||||||
| ⪿ ↂ ˒̫̮ ↂ ⫀ Elton John |  | ||||||
| (•ᴥ• )́`́'́`́'́⻍ Porcupine |  | ||||||
| 且_(゚◇゚;)ノ゙ Waiter |  | ||||||
| ◖⎚∠⎚◗ Geek |  | ||||||
| -ˆ ω ˆ- Kitten |  | ||||||
| •:_:• Nagato |  | ||||||
| ε=┌(^-^)┘ Skipping |  | ||||||
| (+.+)(-.-)(_ _) Falling Asleep |  | ||||||
| [ ± _ ± ] Sick |  | ||||||
| 〜〜(/ ̄▽)/ 〜ф Chasing A Butterfly |  | ||||||
| \(`0´)/ Fed Up |  | ||||||
| ¥[*.*]¥ Robot |  | ||||||
| (*・)σσ(*゜O゜) Poking |  | ||||||
| ( ̄ー ̄(_ _( Nodding |  | ||||||
| ▼o・_・o▼ Hello |  | ||||||
| (`_^) Wink |  | ||||||
| /( _0_) ̄θ☆≡≡○ Scissor Kick |  | ||||||
| ヽ(´ー`)┌ Mellow |  | ||||||
| (^ _ ^)/~~ Goodbye |  | ||||||
| (*・)「」「」 Magic Casting |  | ||||||
| ( `皿´)。ミ/ Hitting |  | ||||||
| []゛7(∀゜*) Dialing |  | ||||||
| (((((^_^) Teleporting |  | ||||||
| ( ̄ー ̄)//”” Clapping |  | ||||||
| (。。;)\(-_-) Comforting |  | ||||||
| (*  ̄)( ̄ *)  Kissing |  | ||||||
| (;^_^)ッ☆( ゜o゜) Slapping |  | ||||||
| \(~O~)/ Good Morning |  | ||||||
| \_(´▽`)♪_/ Bathtub |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| i3lock-fancy -p -t '' |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| scream -i virbr0 & |  | ||||||
| looking-glass-client -G input:rawMouse=yes input:autocapture=yes -j input:escapeKey=119 |  | ||||||
| pkill scream |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| pacmd set-source-volume 2 300000 |  | ||||||
| #notify-send "You are on max input vol" |  | ||||||
|  | @ -1,6 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| 
 |  | ||||||
| FOLDER=/home/david/docs/proj/davidovski.xyz/f/meme |  | ||||||
| cd $FOLDER |  | ||||||
| xdotool type "https://davidovski.xyz/f/meme/$(ls -1 | dmenu)" |  | ||||||
| 
 |  | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| chosen=$(mpc listall | dmenu -i -p mpd) |  | ||||||
| [ "$chosen" != "" ] || exit |  | ||||||
| mpc insert "$chosen" |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| pacmd set-source-volume 2 0 |  | ||||||
| #notify-send "You are muted" |  | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| pacmd set-source-volume 2 62000 |  | ||||||
| #notify-send "You are on normal input vol" |  | ||||||
| 
 |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| F="$HOME/docs/proj/scratchpad.txt" |  | ||||||
| bspc rule -a \* -o state=floating && $TERMINAL -e vim $F  |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| printf "suspend\nreboot\npoweroff\nhibernate" | rofi -dmenu -p "systemctl" | xargs -r systemctl |  | ||||||
|  | @ -1,43 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| 
 |  | ||||||
| #cfg |  | ||||||
| useragent="Love by u/gadelat" |  | ||||||
| timeout=60 |  | ||||||
| 
 |  | ||||||
| subreddit=$1 |  | ||||||
| sort=$2 |  | ||||||
| top_time=$3 |  | ||||||
| 
 |  | ||||||
| if [ -z $sort ]; then |  | ||||||
|     sort="hot" |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ -z $top_time ];then |  | ||||||
|     top_time="" |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| url="https://www.reddit.com/r/$subreddit/$sort/.json?raw_json=1&t=$top_time" |  | ||||||
| content=`wget -T $timeout -U "$useragent" -q -O - $url` |  | ||||||
| mkdir -p $subreddit |  | ||||||
| while : ; do |  | ||||||
|     urls=$(echo -n "$content"| jq -r '.data.children[]|select(.data.post_hint|test("image")?) | .data.preview.images[0].source.url') |  | ||||||
|     names=$(echo -n "$content"| jq -r '.data.children[]|select(.data.post_hint|test("image")?) | .data.title') |  | ||||||
|     ids=$(echo -n "$content"| jq -r '.data.children[]|select(.data.post_hint|test("image")?) | .data.id') |  | ||||||
|     a=1 |  | ||||||
|     wait # prevent spawning too many processes |  | ||||||
|     for url in $urls; do |  | ||||||
|         name=`echo -n "$names"|sed -n "$a"p` |  | ||||||
|         id=`echo -n "$ids"|sed -n "$a"p` |  | ||||||
|         ext=`echo -n "${url##*.}"|cut -d '?' -f 1` |  | ||||||
|         newname=`echo $name | sed "s/^\///;s/\// /g"`_"$subreddit"_$id.$ext |  | ||||||
|         echo $name |  | ||||||
|         wget -T $timeout -U "$useragent" --no-check-certificate -nv -nc -P down -O "$subreddit/$newname" $url &>/dev/null & |  | ||||||
|         a=$(($a+1)) |  | ||||||
|     done |  | ||||||
|     after=$(echo -n "$content"| jq -r '.data.after//empty') |  | ||||||
|     if [ -z $after ]; then |  | ||||||
|         break |  | ||||||
|     fi |  | ||||||
|     url="https://www.reddit.com/r/$subreddit/$sort/.json?count=200&after=$after&raw_json=1&t=$top_time" |  | ||||||
|     content=`wget -T $timeout -U "$useragent" --no-check-certificate -q -O - $url` |  | ||||||
| done |  | ||||||
|  | @ -1,16 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| 
 |  | ||||||
| set -e |  | ||||||
| 
 |  | ||||||
| if [ "$2" = "suspend" ] || [ "$2" = "hybrid-sleep" ] |  | ||||||
| then |  | ||||||
|     case "$1" in |  | ||||||
|         pre) |  | ||||||
|             true  |  | ||||||
|             ;; |  | ||||||
|         post)  |  | ||||||
|             sleep 1 |  | ||||||
|             pkill -f 'brave \-\-type=gpu-process' |  | ||||||
|             ;; |  | ||||||
|     esac |  | ||||||
| fi |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| filename=$(date +"/home/david/screenrecord_%F_%T") |  | ||||||
| /usr/bin/obs --startrecording --minimize-to-tray --scene main |  | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| #sleep 0.2 |  | ||||||
| #scrot -s '/home/david/pics/screenshot/%F_%T_$wx$h.png' -e 'xclip -selection clipboard -target image/png -i $f' |  | ||||||
| maim -su /dev/stdout |  tee >(xclip -selection clipboard -t image/png) > $(date +"/home/david/pics/screenshot/%F_%T.png") |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
|  #!/bin/sh |  | ||||||
| filename=$(date +"/home/david/pics/screenshot/%F_%T.png") |  | ||||||
| maim -su $filename && bspc rule -a \* -o state=floating && feh -Z $filename |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| #sleep 0.2 |  | ||||||
| #scrot -s '/home/david/pics/screenshot/%F_%T_$wx$h.png' -e 'xclip -selection clipboard -target image/png -i $f' |  | ||||||
| maim -u /dev/stdout |  tee >(xclip -selection clipboard -t image/png) > $(date +"/home/david/pics/screenshot/%F_%T.png") |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| [ ! -s ~/.config/mpd/pid ] && mpd .config/mpd/mpd.conf |  | ||||||
| [ -s ~/.config/mpd/pid ] && mpd-rpc --no-idle --fork |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| mkdir ~/phone |  | ||||||
| jmtpfs ~/phone |  | ||||||
| rsync -vr --ignore-existing ~/music/* ~/phone/SanDisk\ SD\ card/Music/ |  | ||||||
| echo "Synced files, Press enter to unmount" |  | ||||||
| read |  | ||||||
| umount ~/phone |  | ||||||
| rmdir ~/phone |  | ||||||
| 
 |  | ||||||
|  | @ -1,61 +0,0 @@ | ||||||
| #!/usr/bin/python |  | ||||||
| import sys |  | ||||||
| 
 |  | ||||||
| #Arguments |  | ||||||
| dev = sys.argv[1] |  | ||||||
| prop = sys.argv[2] |  | ||||||
| scale = float(sys.argv[3]) |  | ||||||
| tablet_ratio = (lambda s: float(s[0]) / float(s[1]))(sys.argv[4].split(":")) if len(sys.argv) > 4 else 16/9 |  | ||||||
| 
 |  | ||||||
| #Layout of screens: (x, y, w, h) |  | ||||||
| screens = [ |  | ||||||
| 	(0,0, 1080, 1920), |  | ||||||
| 	(1080, 0, 2560, 1440), |  | ||||||
| 	(3640, 208, 1280, 1024), |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| #TODO find this with xrandr |  | ||||||
| 
 |  | ||||||
| target = screens[1] |  | ||||||
| 
 |  | ||||||
| #Physical offset of the selected screen |  | ||||||
| offsetx = target[0] |  | ||||||
| offsety = target[1] |  | ||||||
| 
 |  | ||||||
| #Size of the full screen areas |  | ||||||
| sh = 1920 |  | ||||||
| sw = 1280 + 2560 + 1080 |  | ||||||
| #TODO calculate using list of screens |  | ||||||
| 
 |  | ||||||
| #Aspect ratio of the tablet, to avoid weird scaling problems |  | ||||||
| 
 |  | ||||||
| #Size of the tablet |  | ||||||
| #Prioritize the with when scaling between aspect ratios |  | ||||||
| tw = target[2]   |  | ||||||
| th = tw / tablet_ratio |  | ||||||
| print(tw, "x", th) |  | ||||||
| 
 |  | ||||||
| #make a variable that will try to make the scale the same over diferent resoultions |  | ||||||
| f = target[3] / target[3] |  | ||||||
| print ("f value =", f) |  | ||||||
| 
 |  | ||||||
| #calculate the new area size |  | ||||||
| aw = tw * scale * f |  | ||||||
| ah = th * scale * f |  | ||||||
| 
 |  | ||||||
| ox = (target[2] - aw) / 2 + offsetx |  | ||||||
| oy = (target[3] - ah) / 2 + offsety |  | ||||||
| #ox = offsetx |  | ||||||
| #oy = offsety |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| c0 = aw  / sw |  | ||||||
| c2 = ah / sh  |  | ||||||
| c1 = ox  / sw |  | ||||||
| c3 = oy  / sh |  | ||||||
| 
 |  | ||||||
| print(str(c0), "0", str(c1), "0", str(c2), str(c3), "0 0 1") |  | ||||||
| 
 |  | ||||||
| import os |  | ||||||
| os.system(" ".join(["xinput set-prop", dev, prop, str(c0), "0", str(c1), "0", str(c2), str(c3), "0 0 1"])) |  | ||||||
| #alias tablet2="xinput set-prop 18 156 2.45 0 -0.725 0 2.45 -0.725 0 0 1" |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| GAP=16; bspc config window_gap | grep -q $GAP && bspc config window_gap 0 || bspc config window_gap $GAP |  | ||||||
| 
 |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| bspc config honor_size_hints | grep -q true && bspc config honor_size_hints false || bspc config honor_size_hints true |  | ||||||
| 
 |  | ||||||
|  | @ -1,288 +0,0 @@ | ||||||
| #!/usr/bin/env python3 |  | ||||||
| 
 |  | ||||||
| from xdg.BaseDirectory import xdg_config_home |  | ||||||
| from enum import Enum |  | ||||||
| import subprocess |  | ||||||
| import platform |  | ||||||
| import distro |  | ||||||
| import json |  | ||||||
| import re |  | ||||||
| import os |  | ||||||
| import wmctrl |  | ||||||
| 
 |  | ||||||
| colors = [ |  | ||||||
|     # Regular colors. |  | ||||||
|     "\u001b[30m", |  | ||||||
|     "\u001b[31m", |  | ||||||
|     "\u001b[32m", |  | ||||||
|     "\u001b[33m", |  | ||||||
|     "\u001b[34m", |  | ||||||
|     "\u001b[35m", |  | ||||||
|     "\u001b[36m", |  | ||||||
|     "\u001b[37m", |  | ||||||
| 
 |  | ||||||
|     # Bright colors. |  | ||||||
|     "\u001b[30;1m", |  | ||||||
|     "\u001b[31;1m", |  | ||||||
|     "\u001b[32;1m", |  | ||||||
|     "\u001b[33;1m", |  | ||||||
|     "\u001b[34;1m", |  | ||||||
|     "\u001b[35;1m", |  | ||||||
|     "\u001b[36;1m", |  | ||||||
|     "\u001b[37;1m", |  | ||||||
| 
 |  | ||||||
|     # Reset. |  | ||||||
|     "\u001b[0m" |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| decorations = [ |  | ||||||
|     "\u001b[1m", # Bold. |  | ||||||
|     "\u001b[4m", # Underline. |  | ||||||
|     "\u001b[7m"  # Reversed. |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| # Creates a copy of the specified string with color and decorations added. |  | ||||||
| def colored(string, colorIndex, decorationIndices=[]): |  | ||||||
|     newString = colors[colorIndex] |  | ||||||
|     for decorationIndex in decorationIndices: |  | ||||||
|         newString += decorations[decorationIndex] |  | ||||||
|     newString += string + colors[len(colors)-1] |  | ||||||
|     return newString |  | ||||||
| 
 |  | ||||||
| # Enum for the different data types. |  | ||||||
| class Type(str, Enum): |  | ||||||
|     os = 'os' |  | ||||||
|     kernel = 'kernel' |  | ||||||
|     wm = 'wm' |  | ||||||
|     packages = 'packages' |  | ||||||
|     uptime = 'uptime' |  | ||||||
| 
 |  | ||||||
| # Enum for the different align modes. |  | ||||||
| class AlignMode(str, Enum): |  | ||||||
|     spaces = 'spaces' |  | ||||||
|     center = 'center' |  | ||||||
| 
 |  | ||||||
| # Loads the settings from the configuration file. |  | ||||||
| # First checks for a configuration file in ~/.config/vfetch/vfetch.conf, |  | ||||||
| # else it defaults to the configuration file in the same folder as the script. |  | ||||||
| def loadSettings(): |  | ||||||
|     try: |  | ||||||
|         file = open(xdg_config_home + '/vfetch/vfetch.conf', 'r') |  | ||||||
|     except FileNotFoundError: |  | ||||||
|         file = open(os.path.dirname(os.path.realpath(__file__)) + '/vfetch.conf', 'r') |  | ||||||
|     content = file.read() |  | ||||||
|     settings = json.loads(content) |  | ||||||
|     file.close() |  | ||||||
|     return settings |  | ||||||
| 
 |  | ||||||
| # Prints string without ending with a new line. |  | ||||||
| def printn(string): |  | ||||||
|     print(string, end="") |  | ||||||
| 
 |  | ||||||
| # Prints string at a specified position. |  | ||||||
| def printAt(string, *position): |  | ||||||
|     if len(position) == 1: |  | ||||||
|         x = position[0][0] |  | ||||||
|         y = position[0][1] |  | ||||||
|     else: |  | ||||||
|         x = position[0] |  | ||||||
|         y = position[1] |  | ||||||
|     printn("\x1b7\x1b[%d;%df%s\x1b8" % (y+1, x+1, string)) |  | ||||||
| 
 |  | ||||||
| # Prints the data lines. |  | ||||||
| def printLines(lines, colorIndex, offsetX, offsetY, alignMode, alignSpace): |  | ||||||
|     longestName = 0 |  | ||||||
|     dataPosition = 0 |  | ||||||
| 
 |  | ||||||
|     if alignMode is AlignMode.spaces: |  | ||||||
|         for line in lines: |  | ||||||
|             position = len(line[0]) + alignSpace |  | ||||||
|             if position > dataPosition: |  | ||||||
|                 dataPosition = position |  | ||||||
|     else: |  | ||||||
|         # Finds the length of the longest name. |  | ||||||
|         longestName = len(max(lines, key = lambda data: len(data[0]))[0]) |  | ||||||
| 
 |  | ||||||
|     y = 0 |  | ||||||
|     x = offsetX |  | ||||||
|     # Prints the lines and formats them accordingly. |  | ||||||
|     for line in lines: |  | ||||||
|         if alignMode is AlignMode.spaces: |  | ||||||
|             printAt(line[1], x + dataPosition, y+offsetY) |  | ||||||
|         elif alignMode is AlignMode.center: |  | ||||||
|             line[0] = ' ' * (longestName - len(line[0])) + line[0] |  | ||||||
| 
 |  | ||||||
|         printAt(colored(line[0], colorIndex, [0]), x, y+offsetY) |  | ||||||
|         if alignMode is AlignMode.center: |  | ||||||
|             printAt(' ~ ' + line[1], x+len(line[0]), y+offsetY) |  | ||||||
|         y += 1 |  | ||||||
| 
 |  | ||||||
| # Sets the cursor position. |  | ||||||
| def setCursorPosition(*position, newLine=False): |  | ||||||
|     if len(position) == 1: |  | ||||||
|         x = position[0][0] |  | ||||||
|         y = position[0][1] |  | ||||||
|     else: |  | ||||||
|         x = position[0] |  | ||||||
|         y = position[1] |  | ||||||
|     string = '\033[%d;%dH' % (y, x) |  | ||||||
|     if newLine: |  | ||||||
|         print(string) |  | ||||||
|     else: |  | ||||||
|         printn(string) |  | ||||||
| 
 |  | ||||||
| # Runs the specified terminal command. |  | ||||||
| def termRun(command, arguments): |  | ||||||
|     output = subprocess.run([command, arguments], text=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) |  | ||||||
|     return output.stdout |  | ||||||
| 
 |  | ||||||
| # Prints ascii image. |  | ||||||
| def printAscii(position, asciiImage): |  | ||||||
|     setCursorPosition(position) |  | ||||||
|     lines = asciiImage.split('\n') |  | ||||||
|     for line in lines: |  | ||||||
|         print(line) |  | ||||||
| 
 |  | ||||||
| # Gets the operating system. |  | ||||||
| def getOS(architecture=False, removeLinux=False): |  | ||||||
|     os = distro.linux_distribution()[0] |  | ||||||
|     if removeLinux: |  | ||||||
|         os = re.sub('linux', '', os, flags=re.IGNORECASE) |  | ||||||
|     os = os.rstrip() |  | ||||||
|     if architecture: |  | ||||||
|         os += ' ' + platform.machine() |  | ||||||
|     return os |  | ||||||
| 
 |  | ||||||
| # Gets the kernel. |  | ||||||
| def getKernel(fullName=True): |  | ||||||
|     kernel = platform.release() |  | ||||||
|     if not fullName: |  | ||||||
|         kernel = kernel.split('-')[0] |  | ||||||
|     return kernel |  | ||||||
| 
 |  | ||||||
| # Gets the window manager. |  | ||||||
| def getWM(): |  | ||||||
|     try: |  | ||||||
|         return wmctrl.os.environ.get('DESKTOP_SESSION') |  | ||||||
|     except: |  | ||||||
|         pass |  | ||||||
|     try: |  | ||||||
|         return wmctrl.os.environ.get('XDG_SESSION_DESKTOP') |  | ||||||
|     except: |  | ||||||
|         return None |  | ||||||
| 
 |  | ||||||
| # Gets the number of packages. |  | ||||||
| def getPackages(displayPackageManager=False): |  | ||||||
|     try: |  | ||||||
|         packages = termRun('pacman', '-Qq') |  | ||||||
|         string = str(len(packages.split('\n'))) |  | ||||||
|         if displayPackageManager: |  | ||||||
|             string += ' (pacman)' |  | ||||||
|         return string |  | ||||||
|     except: |  | ||||||
|         return None |  | ||||||
| 
 |  | ||||||
| # Gets the machine uptime. |  | ||||||
| def getUptime(): |  | ||||||
|     with open('/proc/uptime', 'r') as f: |  | ||||||
|         uptime_seconds = float(f.readline().split()[0]) |  | ||||||
|         hours = uptime_seconds / 3600 |  | ||||||
|         minutes = (hours - int(hours)) * 60 |  | ||||||
|         hours = int(hours) |  | ||||||
|         minutes = int(minutes) |  | ||||||
|         string = '' |  | ||||||
|         if hours != 0: |  | ||||||
|             string += str(hours) + 'h ' |  | ||||||
|         if minutes != 0 or hours == 0: |  | ||||||
|             string += str(minutes) + 'm' |  | ||||||
|     return string |  | ||||||
| 
 |  | ||||||
| # Gets the data for the specified data type. |  | ||||||
| def getData(type, settings): |  | ||||||
|     data = { |  | ||||||
|         Type.os: getOS(settings['displayArchitecture'], settings['removeLinux']), |  | ||||||
|         Type.kernel: getKernel(settings['kernelFullName']), |  | ||||||
|         Type.wm: getWM(), |  | ||||||
|         Type.packages: getPackages(settings['displayPackageManager']), |  | ||||||
|         Type.uptime: getUptime() |  | ||||||
|     }.get(type, None) |  | ||||||
| 
 |  | ||||||
|     if data is None: |  | ||||||
|         return None |  | ||||||
| 
 |  | ||||||
|     name = { |  | ||||||
|         Type.os: [ 'OS', '' ], |  | ||||||
|         Type.kernel: [ 'Kernel', '' ], |  | ||||||
|         Type.wm: [ 'WM', '缾' ], |  | ||||||
|         Type.packages: [ 'Packages', '' ], |  | ||||||
|         Type.uptime: [ 'Uptime', '' ] |  | ||||||
|     }.get(type, None)[int(settings['iconMode'])] |  | ||||||
| 
 |  | ||||||
|     if settings['lowercase']: |  | ||||||
|         name = name.lower() |  | ||||||
|         data = data.lower() |  | ||||||
| 
 |  | ||||||
|     return [name, data] |  | ||||||
| 
 |  | ||||||
| # Gets the size of the specified ascii image. |  | ||||||
| def asciiSize(asciiImage): |  | ||||||
|     x = 0 |  | ||||||
|     split = asciiImage.split('\n') |  | ||||||
|     for line in split: |  | ||||||
|         if len(line) > x: |  | ||||||
|             x = len(line) |  | ||||||
|     return [x, len(split)] |  | ||||||
| 
 |  | ||||||
| # Trims the specified ascii image of empty lines and trailing whitespaces. |  | ||||||
| def trimAscii(asciiImage): |  | ||||||
|     lines = asciiImage.split('\n') |  | ||||||
|     string = '' |  | ||||||
|     for line in lines: |  | ||||||
|         trimmedString = line.rstrip() |  | ||||||
|         if len(trimmedString) != 0: |  | ||||||
|             string += trimmedString + '\n' |  | ||||||
|     string = string[:-1] # Removes last newline. |  | ||||||
|     return string |  | ||||||
| 
 |  | ||||||
| # Loads the ascii image at the specified path. |  | ||||||
| def loadAsciiImage(path): |  | ||||||
|     file = open(path, 'r') |  | ||||||
|     asciiImage = trimAscii(file.read()) |  | ||||||
|     file.close() |  | ||||||
|     return asciiImage |  | ||||||
| 
 |  | ||||||
| settings = loadSettings() |  | ||||||
| 
 |  | ||||||
| displayAscii = settings['displayAscii'] |  | ||||||
| offset = settings['offset'] |  | ||||||
| 
 |  | ||||||
| # Loads the data lines. If the data is invalid (None) it does not get added. |  | ||||||
| lines = [] |  | ||||||
| for dataType in settings['data']: |  | ||||||
|     data = getData(dataType, settings) |  | ||||||
|     if data is not None: |  | ||||||
|         lines.append(data) |  | ||||||
| 
 |  | ||||||
| # Loads the ascii image if the option is set for it. |  | ||||||
| if displayAscii: |  | ||||||
|     asciiImage = loadAsciiImage(settings['asciiImage']) |  | ||||||
|     size = asciiSize(asciiImage) |  | ||||||
|     offset[0] += size[0] |  | ||||||
|     finalPosition = [0, size[1]] |  | ||||||
| else: |  | ||||||
|     finalPosition = [0, len(lines)+offset[1]] |  | ||||||
| 
 |  | ||||||
| # Makes the prompt after the script finishes have a blank line before it. |  | ||||||
| finalPosition[1] += 1 |  | ||||||
| 
 |  | ||||||
| os.system('clear') |  | ||||||
| 
 |  | ||||||
| if displayAscii: |  | ||||||
|     printAscii([0,0], asciiImage) |  | ||||||
| 
 |  | ||||||
| alignMode = AlignMode(settings['alignMode']) |  | ||||||
| 
 |  | ||||||
| printLines(lines, settings['colorIndex'], offset[0], offset[1], alignMode, settings['alignSpace']) |  | ||||||
| 
 |  | ||||||
| # Sets the final cursor position for the prompt to end up at. |  | ||||||
| setCursorPosition(finalPosition, newLine=True) |  | ||||||
|  | @ -1,14 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| SEARCH_ENGINE="https://search.brave.com/search?q=" |  | ||||||
| SEARCH_HISTORY=/tmp/.search_history |  | ||||||
| 
 |  | ||||||
| SEARCH=$(cat $SEARCH_HISTORY | dmenu -p "search") |  | ||||||
| 
 |  | ||||||
| touch $SEARCH_HISTORY |  | ||||||
| 
 |  | ||||||
| cat <<< "$SEARCH |  | ||||||
| $(cat $SEARCH_HISTORY)" > $SEARCH_HISTORY |  | ||||||
| 
 |  | ||||||
| brave "$SEARCH_ENGINE$SEARCH" |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue