Fix websearch to use browser env var

This commit is contained in:
davidovki 2023-03-10 17:06:03 +00:00
parent 3538699954
commit b71fd9bbb9
9 changed files with 32 additions and 754 deletions

View File

@ -3,7 +3,7 @@
#define font1 xft:mononoki:minispace=False:size=10:antialias=true
#define font2 xft:MesloLGM Nerd Font Mono:minispace=False:size=10
#define font3 xft:Noto Sans Mono CJK TC:minispace=False:size=10
#define font4 xft:Twemoji:minispace=False:size=10
#define font4 xft:Noto Color Emoji:style=regular:size=10
*.foreground: FG
URxvt.background: BG
URxvt.borderColor: BG

View File

@ -149,7 +149,7 @@ format-prefix-foreground = #5b
[module/temperature]
type = custom/script
exec = sensors | awk '/^Tctl:/ { print substr($2, 2) }'
exec = sensors | awk '/^Core 0:/ { print substr($3, 2) }'
format-prefix = " "
interval = 1

View File

@ -6,10 +6,10 @@
[ -d "$HOME/.scripts" ] && PATH="$HOME/.scripts:$PATH"
export XDG_RUNTIME_DIR=/tmp/$USER-$(uuidgen)
alias editor=vim
alias editor=vim
export TERMINAL="urxvt"
export BROWSER="/usr/bin/chromium-browser"
export BROWSER="/usr/bin/firefox"
export FILE_MANAGER="/usr/bin/thunar"
export EMAIL_CLIENT="/usr/bin/thunderbird"
export EDITOR="/usr/bin/vim"

View File

@ -1,10 +1,10 @@
#!/bin/bash
MAIN_DP=DP-1;
MAIN_DP=eDP1;
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
xrandr --output $MAIN_DP --gamma 1
fi

View File

@ -1,453 +0,0 @@
ʕ•ₒ•ʔ Bear Shocked
ʕ•ᴥ•ʔ Bear
ʕ ·ᴥ·ʔ RBear
ʕ·ᴥ· ʔ LBear
ʕ ꈍᴥꈍʔ Bear Sob
ʕ ʔ Bear Sleep
ʕノ•ᴥ•ʔノ ︵ ┻━┻ Bear Flip
ʕ╮•ᴥ•ʔ╮┳━━┳ Bear Unflip
ʕ; •`ᴥ•´ʔ Bear Angry
ʕ♡˙ᴥ˙♡ʔ Bear Love
ʕ•ᴥ•ʔ?? Bear Confused
(◕‿◕) Happy (1)
(^▽^) Joy (2)
(¬‿¬) Smug Happy
(´・ᴗ・`) Joy (4)
(⌒‿⌒) Joy (5)
(^‿^) Joy (6)
(☆▽☆) Joy (7)
(❛ᴗ❛) Joy (8)
(´♡‿♡`) Love (1)
(◕‿◕)♡ Love (2)
(─‿‿─)♡ Love (3)
(⌒_⌒;) Ashamed
(--_--) Unimpressed
((╬◣﹏◢)) Angry (1)
(`Д´) Angry (2)
(◕︵◕) Sad (1)
(-_-) Sad (2)
(╥_╥) Cry (1)
(╥﹏╥) Cry (2)
(××) Dead
(;;;o_o) Fear
┐( ̄ヘ ̄)┌ Shrug (1)
╮(︶︿︶)╭ Shrug (2)
┐(︶▽︶)┌ Shrug
┐( ˘_˘ )┌ Shrug Small
ᕕ( ᐛ )ᕗ Joyful March
(•ิ_•ิ)? Confused
(¬_¬) Doubt
(⊙_⊙) Shock Raw
(°▽°)/ Greet (1)
(^-^*)/ Greet (2)
( ̄▽ ̄)/ Greet (3)
ヾ(・ω・*) Greet (4)
ʕ•ᴥ•ʔ/ Bear Greet
(^_<) Wink (1)
(-_・) Wink (2)
( ̄ハ ̄*) Nosebleed
┬┴┬┴┤( ͡° ͜ʖ├┬┴┬┴ Hiding
ε===(っ≧ω≦)っ Fart
(_)zzZ Sleep
╰( ͡° ͜ʖ ͡°)つ──☆*:・゚ Magic
(˘ɜ˘)♬♪♫ Whistle
(〜 ̄▽ ̄)〜 Dance R
〜( ̄▽ ̄〜) Dance L
( ͡° ͜ʖ ͡°) LNeutral
( ͡°ʖ̯ ͡°) LSad
( ͠° ͟ʖ ͡°) LConcern
( ͡ᵔ ͜ʖ ͡ᵔ) LJoy
(⌐■_■) Cool
( ^▽^)っ✂╰⋃╯ NoMoreWilly
(╯°益°)╯彡┻━┻ TableRage
( ╯°□°)╯ ┻━━┻ Flip
(╮°-°)╮┳━━┳ Unflip
(◕ω◕) owo (1)
𝕠𝕨𝕠 owo (2)
ʕ•w•ʔ Bear owo
(ノ≧ ヮ ≦)ノ︵ ┻┻ CuteFlip
ಠ_ಠ Disaproval
(◕ᴗ◕✿) Flower Happy (1)
(◕ ω ◕✿) Flower owo
(◕∇◕✿) Flower Happy (2)
(◕ᱛ ◕✿) Flower Shocked
(◕︿◕✿) Flower Sad
(◕ﬦ ◕✿) Flower Disapointed
(◕‸ ◕✿) *pout* Flower Pout
(≖ ︿ ≖ ✿)ꐦꐦ Flower Angry
(╯✿◕益◕)╯︵ ┻━┻ Flower Flip
🗡⊂(ʘ‿ʘ✿) Flower Yandere
(´∀`) Laughing
( ՞ ڡ ՞ ) Yum
(▀̿Ĺ̯▀̿ ̿) Boss
(/-(エ)-) Scared Cowering 1
(ΟΔΟ;;) Fear Shock Scared
(⊃д⊂) Scared 2
_ Scared Cowering
^•-•^ cat derp
(>‿<) squint happy closed eyes
♡ heart
♫ music
.‿. smol happy
^_^ 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
UU 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
o。(ー。ー)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^)___ 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^ )( ^o^)┘ Best buddies
d^_^b DJ
( --)/ ==卍 Ninja Star
:。ミ 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 Nerd
-ˆ ω ˆ- 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
Good Morning
\_(´▽`)♪_/ Bathtub

View File

@ -1,5 +1,7 @@
#!/usr/bin/python
import sys
import numpy as np
import os
if len(sys.argv) < 3:
print("Usage: tablet [dev number] [property number] [scale factor] [aspect ratio]")
@ -43,6 +45,10 @@ tw = target[2]
th = tw / tablet_ratio
print(tw, "x", th)
if "-r" in sys.argv or "-l" in sys.argv:
th = target[2]
tw = th / tablet_ratio
#make a variable that will try to make the scale the same over diferent resoultions
f = target[3] / target[3]
print ("f value =", f)
@ -64,6 +70,18 @@ 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"]))
transform = np.matrix([[c0, 0, c1], [0, c2, c3], [0, 0, 1]])
leftrotate = np.matrix([[0, -1, 1], [1, 0, 0], [0, 0, 1]])
rightrotate = np.matrix([[0, 1, 0], [-1, 0, 1], [0, 0, 1]])
if "-r" in sys.argv:
transform *= rightrotate
if "-l" in sys.argv:
transform *= leftrotate
arr = np.squeeze(np.asarray(transform))
os.system(" ".join(["xinput set-prop", dev, prop, " ".join([str(x) for x in [arr[0, 0], arr[0, 1], arr[0, 2], arr[1, 0], arr[1, 1], arr[1, 2], arr[2, 0], arr[2, 1], arr[2, 2]]])]))
#alias tablet2="xinput set-prop 18 156 2.45 0 -0.725 0 2.45 -0.725 0 0 1"

View File

@ -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)

View File

@ -1,7 +1,8 @@
#!/bin/sh
browser="links-launcher"
SEARCH_ENGINE="https://librex.beparanoid.de/search.php?q="
default_browser="links-launcher"
BROWSER=${BROWSER:-$default_browser}
SEARCH_ENGINE="https://search.davidovski.xyz/search.php?q="
SEARCH_HISTORY=$HOME/.local/share/search_history
SEARCH=$(cat $SEARCH_HISTORY | dmenu -p "search")
@ -11,7 +12,7 @@ echo "$SEARCH" >> $SEARCH_HISTORY
query=$(echo $SEARCH | sed 's/ /+/g')
echo $query | grep -q '(?=^.{5,254}$)(^(?:(?!\d+\.)[a-zA-Z0-9_\-]{1,63}\.?)+(?:[a-zA-Z]{2,})$)' && {
links-launcher "$query"
$BROWSER "$query"
} || {
links-launcher "$SEARCH_ENGINE$query"
$BROWSER "$SEARCH_ENGINE$query"
}

View File

@ -73,5 +73,5 @@ passthrough_disable () {
passthrough_enable () {
sudo mv /etc/modprobe.d/vfio.conf /etc/modprobe.d/vfio.conf.disabled
}
alias links="xlinks -g -html-g-text-color 0xf58f44 -html-g-background-color 0x191919 -font /home/david/.fonts/ttf-mononoki/mononoki-Regular.ttf"
alias links="links -g -html-g-text-color 0xfefefe -html-g-background-color 0x191919 -font /home/david/.fonts/ttf-mononoki/mononoki-Regular.ttf"
alias weechat="weechat -d ~/.weechat"