101010.pl is one of the many independent Mastodon servers you can use to participate in the fediverse.
101010.pl czyli najstarszy polski serwer Mastodon. Posiadamy wpisy do 2048 znaków.

Server stats:

574
active users

#copy

1 post1 participant0 posts today

#copy : an individual book, or a single set of books containing the works of an author

- French: copie

- German: Kopie

- Italian: copia

- Portuguese: copia

- Spanish: copia

------------

Thank you so much for being a member of our community!

Replied in thread

@rl_dane I am thanking you for pointing me to the books of that writer who gave them away for a short period at Amazon

A question I have now before doing any research; is there a command available where I can just copy my books that are within my Kindle library, convert them to the standard ebook format so that they can have them forever, because now I don't have a copy of the books Amazon has them

“When there was only analog #tape, making a physical copy of your tapes was the #backup (aka “safety copy”). One problem is that this is not actually an exact #copy. The backup goes through multiple stages of analog circuitry and cabling, and it ends up residing on a totally different magnetic tape – all factors guaranteeing that it won’t be exactly the same as the original.

Due to tape deck discrepancies or incorrect settings, the copy could even sound different than the original. It also took the industry many years to realize that #analog tapes (primary or backup) might not last forever, and, due to poor storage and sticky-shed syndrome, many old tapes have been pulled out of storage only to have them disintegrate and self-destruct!”

“Are You Backing Up?” — #MikeKosacek / #TapeOp / #music / #recording <tapeop.com/interviews/161/are->

tapeop.comAre You Backing Up?Tape Op is a free magazine exclusively about recording music. Subscribe (yep, for free) at tapeop.com.

For the love of god if you're trying to convince your employer or an organization to "come over" to the #Fediverse, do NOT under any circumstances suggest that they set up a #Mastodon #instance!

Mastodon is the ONLY Fediverse platform that ...
by default ... forces #server #admins to #cache, #copy, and #proxy all #media that passes through its server. This means that not only are server admins paying to host the media their users #upload, but they have to pay to host the media everyone else on the fucking fediverse uploads as well.

Other platforms offer this feature, but
Mastodon is the only one that has this turned on by default.

This results in Mastodon server admins having to shell out thousands of dollars each month in
#S3 hosting costs for no reason whatsoever.

There are much better alternative instance platforms than Mastodon.

Vieną ramų kažkurios dienos rytą, gurkšnodamas kavą ir be tikslo naršydamas Mastodon tinkle, užtikau diskusiją. Žmonės dalinosi savo produktyvumo patarimais, ir viena tema patraukė mano dėmesį: dažnai naudojamų teksto fragmentų valdymas. Daug kas skundėsi, kad nuolat rašo tuos pačius sakinius ar frazes – ar tai būtų mandagūs el. laiškų užbaigimo žodžiai, ar dažnai naudojamos kodo eilutės.

Staiga supratau, kad ir pats susidūriu su šia problema. Kiek kartų per dieną rašau “Pagarbiai“ arba “Su geriausiais linkėjimais“ el. laiškuose? O kiek kartų įvedu savo kontaktinius duomenis ar tam tikras SQL užklausas? Per daug, kad skaičiuočiau.

Būdamas Linux entuziastas ir mėgėjas automatizuoti viską, kas juda, nusprendžiau: reikia tai išspręsti. Ir taip gimė mano mažas, bet galingas įrankis – pasirinktinio teksto įterpimo scenarijus.

Problemos esmė

Prieš nerdamas į techninę dalį, apibrėžkime problemą:

  1. Dažnai naudojame tuos pačius teksto fragmentus.
  2. Šių fragmentų perrašinėjimas atima laiką ir kelia įtampą riešo sąnariui.
  3. Kartais apsirenkame ar pamirštame, ką tiksliai rašėme anksčiau.

Mums reikia įrankio, kuris leistų:

  • Saugoti dažnai naudojamus tekstus.
  • Greitai pasiekti ir įterpti šiuos tekstus vienu klavišų paspaudimu.
  • Lanksčiai pasirinkti iš kelių variantų pagal situaciją.

Sprendimas: Bash magija

Čia į pagalbą ateina mano sukurtas Bash scenarijus. Jo idėja paprasta:

  1. Sukuriame katalogą su įvairiais tekstiniais failais.
  2. Kai mums reikia teksto, paspaudžiame klavišų kombinaciją.
  3. Pasirodo langas, kuriame galime pasirinkti norimą tekstą.
  4. Pasirinktas tekstas automatiškai nukopijuojamas į iškarpinę.
  5. Įklijuojame tekstą ten, kur reikia, naudodami Ctrl+V.

Įsivaizduokite: jokio daugiau kartojimo, jokių klaidų ieškant senų laiškų. Tiesiog pasirenkate ir įklijuojate.

Kaip pradėti?

Dar aptarkime, kokių papildomų paketų reikia (beveik visi ir taip jau yra įdiegti), kad viskas veiktų sklandžiai, ir kaip juos įdiegti įvairiose Linux distribucijose.

  1. xclip – Įrankis darbui su X11 iškarpine
    • Paskirtis: Leidžia manipuliuoti X Window sistemos iškarpine iš komandinės eilutės. Mūsų atveju naudojamas tekstui įdėti į iškarpinę, kad vėliau galėtumėte jį įklijuoti bet kurioje programoje.
    • Funkcijos:
      • -selection clipboard: Nurodo naudoti pagrindinę iškarpinę (tą, kurią naudoja Ctrl+C ir Ctrl+V).
      • Gali ir nuskaityti tekstą iš iškarpinės, ir įrašyti į ją.
  2. zenity – GTK dialogo įrankis
    • Paskirtis: Leidžia rodyti grafinius dialogo langus ir pranešimus iš komandinės eilutės ar scenarijų. Tai daro jūsų scenarijus interaktyvesniu ir vartotojui draugiškesniu.
    • Funkcijos:
      • --list: Rodo sąrašo pasirinkimo dialogo langą.
      • --info, --error: Rodo informacinius ar klaidos pranešimus.
      • --text-info: Leidžia peržiūrėti ir redaguoti tekstą grafiniame lange.
      • Daug kitų funkcijų: kalendoriai, spalvų pasirinkimai, progreso juostos ir t.t.
  3. find – Failų paieškos įrankis
    • Paskirtis: Naudojamas failams ir katalogams ieškoti pagal įvairius kriterijus. Mūsų scenarijuje jis naudojamas surasti visus .txt failus nurodytame kataloge.
    • Funkcijos:
      • -maxdepth 1: Ieško tik nurodytame kataloge, neikia gilyn į pakatalogius.
      • -type f: Ieško tik failų (ne katalogų).
      • -name "*.txt": Ieško failų, kurių pavadinimai baigiasi .txt.
  4. cat – Failo turinio rodymo įrankis
    • Paskirtis: Skaito failo turinį ir išveda jį į standartinę išvestį. Mūsų atveju naudojamas nuskaityti tekstui iš pasirinkto failo.
    • Funkcijos: Paprastas įrankis, kuris tiesiog parodo failo turinį.
  5. basename – Failo pavadinimo ištraukimo įrankis
    • Paskirtis: Grąžina failo pavadinimą be kelio. Mūsų scenarijuje naudojamas išgauti failo pavadinimą be .txt plėtinio, kad būtų gražiau rodoma pasirinkimo sąraše.
    • Funkcijos:
      • basename "$file" .txt: Grąžina failo pavadinimą be kelio ir be .txt plėtinio.

Dabar pažiūrėkime, kaip įdiegti šiuos paketus įvairiose Linux distribucijose:

Debian/Ubuntu (apt paketų tvarkytuvas)

sudo apt updatesudo apt install xclip zenity findutils coreutils
  • Pastaba: findutils ir coreutils paprastai jau būna įdiegti, bet įtraukiau juos dėl pilnumo.

Arch Linux (pacman paketų tvarkytuvas)

sudo pacman -Sysudo pacman -S xclip zenity findutils coreutils
  • Arch paprastai turi naujausias paketų versijas.

Fedora (dnf paketų tvarkytuvas)

sudo dnf updatesudo dnf install xclip zenity findutils coreutils
  • Fedora orientuota į naujausias technologijas ir griežtą laikymąsi atvirojo kodo principų.

openSUSE (zypper paketų tvarkytuvas)

sudo zypper refreshsudo zypper install xclip zenity findutils coreutils
  • openSUSE žinomas dėl savo stabilumo ir YaST konfigūravimo įrankio.

Papildomos pastabos:

  1. KDE priklausomybės:
    • Jei naudojate KDE Plasma darbalaukio aplinką (kaip aš), dauguma reikalingų bibliotekų jau bus įdiegtos, nes zenity naudoja GTK, o KDE naudoja Qt. Tačiau zenity vis tiek veiks puikiai.
  2. xclip alternatyvos:
    • xsel: Kitas populiarus įrankis darbui su X11 iškarpine. Kai kurie jį mėgsta labiau.
      • Debian/Ubuntu: sudo apt install xsel
      • Arch: sudo pacman -S xsel
      • Fedora: sudo dnf install xsel
      • openSUSE: sudo zypper install xsel
  3. zenity alternatyvos KDE aplinkoje:
    • kdialog: KDE analogas zenity, naudojantis Qt bibliotekas.
      • Debian/Ubuntu: sudo apt install kde-baseapps-bin arba kdialog
      • Arch: sudo pacman -S kde-baseapps
      • Fedora: sudo dnf install kde-baseapps
      • openSUSE: Turėtų būti jau įdiegta su KDE.
    • Norėdami naudoti kdialog, tiesiog pakeiskite zenity komandas į atitinkamas kdialog komandas scenarijuje.
  4. Kiti naudingi paketai:
    • xdotool: Leidžia simuliuoti klaviatūros ir pelės įvestį. Galėtumėte jį naudoti, jei norėtumėte, kad scenarijus ne tik nukopijuotų tekstą, bet ir automatiškai įklijuotų jį.
    • yad: Dar viena zenity alternatyva su daugiau funkcijų.
  5. Versijų skirtumai:
    • Dauguma šių įrankių yra labai stabili ir ilgai egzistuojanti programinė įranga, todėl net jei skirtingose distribucijose bus šiek tiek skirtingos versijos, jūsų scenarijus turėtų veikti vienodai gerai visur.
  6. Jei trūksta paketų:
    • Retai, bet gali pasitaikyti, kad kai kuriose distribucijose (ypač minimalistinėse) šių paketų gali nebūti standartinėse saugyklose. Tokiu atveju galite:
      • Ieškoti alternatyvių saugyklų (pvz., Arch Linux atveju – AUR).
      • Kompiliuoti iš išeitinio kodo (paskutinė išeitis).

Įdiegę šiuos paketus bet kurioje iš šių populiarių Linux distribucijų, turėsite visus reikalingus įrankius, kad jūsų pasirinktinio teksto įterpimo sprendimas veiktų sklandžiai ir efektyviai. Kiekvienas įrankis atlieka savo specifinę funkciją, ir kartu jie sukuria patogią ir interaktyvią vartotojo patirtį.

Taigi, pradedam

Sukurkite tekstų katalogą

Pirmiausia, sukurkite katalogą savo dažnai naudojamiems tekstams:

mkdir ~/git/custom_texts

Tada sukurkite keletą .txt failų šiame kataloge. Pavyzdžiui:
~/git/custom_texts/sveikinimas.txt su tekstu "Labas, kaip sekasi?"
~/git/
custom_texts/atsisveikinimas.txt su tekstu "Viso gero, gražios dienos!"
~/git/
custom_texts/padeka.txt su tekstu "Ačiū už pagalbą!"

Sukurkite Bash scenarijų, pavadinkime jį select_and_paste.sh:

#!/bin/bash# Katalogas su tekstiniais failaisTEXT_DIR="$HOME/git/custom_texts"# Patikrinti, ar katalogas egzistuojaif [ ! -d "$TEXT_DIR" ]; then    zenity --error --title="Klaida" --text="Katalogas $TEXT_DIR nerastas."    exit 1fi# Gauti visų .txt failų sąrašą katalogetext_files=($(find "$TEXT_DIR" -maxdepth 1 -type f -name "*.txt"))# Patikrinti, ar yra .txt failųif [ ${#text_files[@]} -eq 0 ]; then    zenity --error --title="Klaida" --text="Kataloge $TEXT_DIR nerasta .txt failų."    exit 1fi# Sukurti masyvą su failų pavadinimais be kelio ir .txt plėtiniooptions=()for file in "${text_files[@]}"; do    filename=$(basename "$file" .txt)    options+=("$filename")done# Rodyti pasirinkimo dialogąselected=$(zenity --list --title="Pasirinkite tekstą" --column="Tekstai" "${options[@]}" --width=300 --height=450)# Jei vartotojas nieko nepasirinko arba uždarė langąif [ -z "$selected" ]; then    exit 0fi# Pilnas kelias iki pasirinkto failoselected_file="$TEXT_DIR/$selected.txt"# Nuskaityti tekstą iš failotext=$(cat "$selected_file")# Įdėti tekstą į iškarpinęecho -n "$text" | xclip -selection clipboard# Rodyti patvirtinimo pranešimązenity --info --title="Sėkmė" --text="Tekstas iš failo '$selected' sėkmingai įdėtas į iškarpinę."

Padarykite scenarijų vykdomu:

chmod +x ~/scripts/select_and_paste.sh

Nustatykite sparčiojo klavišo veiksmą

Šis žingsnis priklausys nuo jūsų darbalaukio aplinkos. Aš naudoju KDE, bet procesas panašus GNOME, XFCE ar kitose aplinkose.

KDE vartotojams:

  1. Eikite į Nustatymai > Spartieji klavišai ir gestai > Pasirinktiniai spartieji klavišai.
  2. Pasirinkite “Edit“ > “New“ > “Global Shortcut“ > “Command/URL“.
  3. Nustatykite:
    • Pavadinimas: “Pasirinkti ir įterpti tekstą“
    • Trigger: Ctrl+Shift+Y (ar kita jūsų pasirinkta kombinacija)
    • Action: /home/JUSU_VARDAS/scripts/select_and_paste.sh (pas mane ~/git/select_and_paste.sh)
  4. Spauskite “Apply“.

GNOME vartotojams: eikite į Nustatymai > Klaviatūra > Spartieji klavišai ir atlikite panašius veiksmus.

Kaip tai veikia?

Kai paspaudžiate Ctrl+Shift+Y (ar kitą pasirinktą kombinaciją), įvyksta tokia seka:

  1. Paleidžiamas jūsų Bash scenarijus.
  2. Scenarijus ieško .txt failų jūsų ~/git/custom_texts kataloge.
  3. Suradęs failus, jis sukuria sąrašą su jų pavadinimais ir pirmosiomis eilutėmis.
  4. Atsidaro gražus pasirinkimo langas, kuriame matote savo tekstų pavadinimus ir jų peržiūras.
  5. Pasirenkate norimą tekstą ir spaudžiate OK.
  6. Pasirinktas tekstas nuskaitomas iš failo ir įdedamas į iškarpinę.
  7. Jūs matote patvirtinimo pranešimą, kad viskas pavyko.
  8. Dabar einate į bet kurią programą – teksto redaktorių, el. paštą, pokalbių programą – ir spaudžiate Ctrl+V. Magiška! Jūsų pasirinktas tekstas įklijuotas.

Kodėl tai šaunu?

  1. Taupomas laikas: Nebereikia iš naujo rašyti tų pačių frazių.
  2. Mažiau klaidų: Tekstai visada tikslūs, nes jie iš failo.
  3. Organizuotumas: Visi jūsų dažni tekstai vienoje vietoje.
  4. Lankstumas: Galite turėti dešimtis ar net šimtus tekstų, lengvai pasirenkamų.
  5. Pritaikomumas: Lengvai galite pridėti, redaguoti ar ištrinti tekstus.
  6. Veikia bet kurioje programoje, bet kurioje Linux aplinkoje.

Galimos plėtotės

Žinoma, kaip ir su bet kuriuo projektu, idėjų plėtotei netrūksta:

  • Automatinis teksto formatavimas pagal kontekstą.
  • Saugojimas debesyje sinchronizavimui tarp įrenginių.
  • GUI programa tekstams valdyti.

    Papildomi patarimai:
    Galite pridėti daugiau informacijos į pasirinkimo langą, pvz., rodyti teksto pradžią:

options=()for file in "${text_files[@]}"; do    filename=$(basename "$file" .txt)    preview=$(head -n 1 "$file")    options+=("$filename" "$preview")doneselected=$(zenity --list --title="Pasirinkite tekstą" --column="Pavadinimas" --column="Peržiūra" "${options[@]}" --width=500 --height=450)

Galite pridėti galimybę redaguoti tekstą prieš įdėjimą:

text=$(zenity --text-info --title="Redaguoti tekstą" --filename="$selected_file" --editable)

Jei turite daug tekstų, galite juos organizuoti į pakatalogius pagal kategorijas (pvz., sveikinimas/, verslas/, asmeniniai/) ir modifikuoti scenarijų, kad jis ieškotų rekursyviai.
Galite pridėti mygtuką “Pridėti naują tekstą“, kuris atvertų tekstinį redaktorių naujo failo sukūrimui.

Išvada

Tai, kas prasidėjo kaip atsitiktinis pastebėjimas Mastodon tinkle, virto praktiniu įrankiu, kuris dabar taupo man valandas kiekvieną savaitę. Linux grožis ir yra tas, kad su keliais eilučių Bash kodu galite išspręsti realias, kasdienes problemas.

Nesvarbu, ar esate profesionalus programuotojas, ar tik mėgėjas – tokie maži automatizavimo projektai gali drastiškai pagerinti jūsų darbo eigą. Tikiuosi, kad šis įrankis įkvėps jus ne tik jį naudoti, bet ir kurti savo sprendimus. Juk Linux pasaulyje, jei galite tai įsivaizduoti, beveik visada galite tai ir padaryti.

O dabar, jei man reikia baigti šį įrašą… Ctrl+Shift+Y, pasirinkti “blog_ending.txt“, Ctrl+V:

Iki kito karto, kai vėl kalbėsime apie tai, kaip paversti Linux ne tik operacine sistema, bet ir asmeniniu asistentu!

https://funkcijos.wordpress.com/2024/06/02/pasirinktinio-teksto-iterpimo-irankis-tik-vienas-shortcut/

#bash#copy#paste