Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: AimoE - 13.08.22 - klo:17.54

Otsikko: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 13.08.22 - klo:17.54
Minulla on skripti joka näyttää tekstimuotoisen menun. Voisin periaatteessa muuntaa sen "zenity --checklist" -menuksi, ja varmaan muunnankin jos ei muu auta. Mutta ihan ensin haluaisin tietää onko keinoa esittää checklist-menu menu itse valituilla ikoneilla, zenityn ruksiboksien sijaan. Löysin mieleiset ikonit svg-muodossa.

Millä keinolla voisin bash-skriptissä käyttää ikoneja, ja joudunko ensin muuntamaan svg-tiedostot pikseleiksi?
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: Vika/fiba - 15.08.22 - klo:18.14
En tiedä noista svg-tiedostoista, mutta jos käytät emojeja tekstin osana, ikäänkuin kirjaimina, voit maalata ja kopioida emojeja ainakin näiltä sivuilta:

https://emojipedia.org/unicode-8.0/ (https://emojipedia.org/unicode-8.0/) ja https://www.utf8icons.com/subsets/emoticons (https://www.utf8icons.com/subsets/emoticons)

Sitten vain liität (paste) oikeaan kohtaan tekstiä.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 15.08.22 - klo:18.35
No niinpä tietysti. Kyse on nimenomaan font icon -tyyppisistä kuvakkeista, jotka satuin lataamaan svg-muodossa, mutta saahan ne koppipastanakin. Tulipa toope olo.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 15.08.22 - klo:18.38
Eipä vaan bash echo saa sitä näkymään kuvana ihan noin helposti. Millähän tavalla se pitäisi saada kopioiduksi?
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 15.08.22 - klo:18.50
Kokonaisen fonttisetin hakuun löytyy ohje (https://www.pcsuggest.com/trendy-bash-shell-prompt-with-fontawesome-and-ps1/). Täytyy katsoa miten teen oman pikkusetin jossa ei ole liikaa tavaraa. Kai se tästä vielä.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: Vika/fiba - 15.08.22 - klo:19.14
Ilmeisesti katsot noita emojeja terminaalissa. Jos emoji näkyy "x-boxina", se voi tarkoittaa, että käytetty kirjasintyyppi eli fontti ei osaa kyseistä erikoismerkkiä näyttää. Kopioi kyseinen ruksilaatikko ja liitä teksteditorin dokumenttiin. Kokeile eri fonteilla, voi hyvinkin ilmestyä näkyviin.
Terminaalin asetuksista voi muuttaa oletusfonttia.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 15.08.22 - klo:19.20
Ei, kyse ei ole emojeista, vaan ensin etsin sopivaa kuvaketta tarkoituksiin, ja löysin sen https://fontawesome.com/icons -sivustolta. Siellä on SVG:llä tuotettuja kuvia, joita voi käyttää fonttina (ja koska ne on fontteja, niiden kokoa, väriä, yms. voi muunnella). Ohjeet vaan tuppaa olemaan nettisivujen ohjelmintia varten, bash-ohjeita on vaikea löytää. Täytyisi siis joko ladata sieltä fontti eli kirjasinkokoelma, taikka sitten tehdä oma pikku kokoelma, ja sitten pitäisi vielä osata käyttää sitä bash-skriptissä. Semmosta kivaa pikku puuha iltojen iloksi.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: Vika/fiba - 15.08.22 - klo:19.44
Ei pitäisi olla kovin vaikeaa, kunhan ymmärrät periaatteen: nämä hymiöt tai muut kuviot ovat "kirjaimia", tosin harvinaisia eli erikoismerkkejä, joita ei saa suoraan näppäimistöltä, vaan vaativat erikoistoimia.

Kokeile tuolla sivulla: https://www.utf8icons.com/subsets/emoticons (https://www.utf8icons.com/subsets/emoticons) klikata ensimmäistä hymyä, tulet sivulle: https://www.utf8icons.com/character/128512/grinning-face (https://www.utf8icons.com/character/128512/grinning-face) Siellä näkyy Unicode HEX -koodi tälle merkille. Siis U+1F600.
Tuon voi kirjoittaa Linuxissa ctrl + vaihto +u1f600 eli 😀 ja samalla systeemillä muut hex-koodit, ctrl +vaihto +koodi

Edit. korjasin tuon ctrl +vaihto +u1f600 -rimpsun, kun siihen just sattui typo 😡
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 15.08.22 - klo:19.49
Tuo aiemmin löytämäni ohje kattaa jo tuon, mutta miten saan sen itse valitsemani kuvakkeen heksaksi on vielä epäselvää.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: Vika/fiba - 15.08.22 - klo:20.29
Onistuuko tällä ohjeella linkittämältäsi sivulta?

Lainaus
3. Convert unicode icon characters to proper UTF-8 HEX codes

You can't just put the fontawesome characters directly, you have to find out the proper UTF-8 encoded in HEX format. To do so, choose the icon you like, if your terminal supports directly copy paste, check it with hexdump -C command, look at the example bellow,

echo -n  | hexdump -C

Cpoy only first six hex characters (3 bytes) , ef 80 87 in this case, and configure it to print the required icon character.

echo -e 'xefx80x87'        # test it

just put the x prefix before every two hex character. Find out the rest characters in the same procedure.

example:

    xefx80x87 for 
    xefx87xba for 
    xefx85xbc for 

Luultavasti font avesome pitäisi asentaa ennenkuin toimii.


Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 15.08.22 - klo:20.36
Jospa kokeilet itse niitä fontawesome -tapauksia, niin näet mikä pulma tässä on.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: Vika/fiba - 16.08.22 - klo:09.50
Kokeilin. Tämä toimii kuten tuolla sivulla
Koodia: [Valitse]
echo -n  | hexdump -C
Mutta tämä ei oikein toimi
Koodia: [Valitse]
echo -e 'xefx80x87'
Minun kykyni eivät riitä. Eikö näistä löydy sopivia kuvioita? https://www.utf8icons.com/subsets (https://www.utf8icons.com/subsets)
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 16.08.22 - klo:10.08
Sori, löysin tuolle sivulle tätä kautta: https://askubuntu.com/questions/1018724/set-up-fontawesome-icon-in-bash-promt (jossa selitetäään että ohjeesta on pudonneet escape-merkit)
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 16.08.22 - klo:10.22
koeta hakea kuvake sieltä sivustolta ensin, vasta sitten näet missä pulma on.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 16.08.22 - klo:11.06
Komennolla rendersvg voisi muuntaa svg-kuvan png-bittimössöksi, josta voisi ottaa heksadumpin. En kuitenkaan halua, että alkuaan kirjasimeksi suunniteltu kuva muuttuu moneksi merkiksi, joka sotkee ulkoasun esim. bashin select -komentoa käyttäessä. (Käytän select-komentoa silloin, kun ajan samaa scriptiä sekä Ubuntulla että Windowsilla, koska silloin zenity tms. Linux-yhteensopiva graafinen menu ei ole käytettävissä.)

Eli heksadumpin sijaan otan lusikan kauniiseen kouraan ja opettelen miten kirjasinkokoelma eli fontti tehdään ja miten sitä käytetään bashissä -- ja toivon, että se sitten toimii myös Windowsilla.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: kamara - 16.08.22 - klo:16.22
Eli heksadumpin sijaan otan lusikan kauniiseen kouraan ja opettelen miten kirjasinkokoelma eli fontti tehdään ja miten sitä käytetään bashissä -- ja toivon, että se sitten toimii myös Windowsilla.

TrueType-fontti on lienee (siis omasta mielestäni) helpointa tehdä CorelDraw-ohjelmalla, jos sellaisen sattuu jostain löytämään omaan käyttöön. Toki ohjelma ei taida toimia Linukkapuolella, ja silloin kun tein oman fonttini, niin fonteissa ei ollut mahdollisuuksia tehdä monivärisiä.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 16.08.22 - klo:16.47
https://fontawesome.com/ tarjoaa keinon, ja toinen jota moni suosittelee on https://icomoon.io/. Mutta näissä ympyröissä kaikki ohjeet kertovat miten fontteja käytetään nettisivuilla. Bash-puolella ei ole vielä kaikki muumit laaksossa.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 16.08.22 - klo:17.25
No, kokeilin niin että latasin kokonaisen ttf-tiedoston. Mutta en saa näkyviin niitä kuvakkeita jotka haluan. Tuolla heksadumpilla jne. saan näkyviin samat kummallisuudet kuin suoraan copy&pastella html-sivulta. Kuvake ei vaan näy sellaisena kuin fontawsome-sivulla.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: nm - 16.08.22 - klo:18.41
Fontti pitää ottaa käyttöön siinä päätteessä, jota käytät. Zenity vaatii oman kikkailunsa, jos haluat fontin toimimaan siinä. Bash ei oikeastaan liity asiaan mitenkään.

Ehkä olisi hyvä sauma tutkia muita käyttöliittymäratkaisuja, kun Zenityn rajoitteet alkavat tulla vastaan.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: Vika/fiba - 16.08.22 - klo:19.03
Pitäisikö kuitenkin asentaa font awesome järjestelmään?
Synaptic löytää paketin fonts-font-awesome.

Kun vähän selailin sivua https://fontawesome.com/start (https://fontawesome.com/start) , en koskisi pitkällä tikullakaan. Mutta ilmeisesti siellä on jäljellä jotain avointa koodia, jota eivät pysty kokonaan piilottamaan.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 16.08.22 - klo:19.09
Fontti pitää ottaa käyttöön siinä päätteessä, jota käytät.

Tein mitä sanottiin aiemmin mainitussa ohjeessa (https://www.pcsuggest.com/trendy-bash-shell-prompt-with-fontawesome-and-ps1/). Mitä muuta pitää päätteessä tehdä? En saanut kuvaketta näkymään oikein myöskään editorissa (Emacs).

Edit:
Paitsi että talletin .ttf-tiedostotot hakemistoon ~/.local/share/fonts/ (ja ajoin komennon fc-cache -f -v). Nyt kuitenkin huomaan, että fc-list ei näytä noita lisäämiäni .ttf-tiedostoja. Aika monessa paikassa kerrottiin että omaankin hakemistoon ne voi viedä. Millä fontin saa käyttöön?
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: nm - 16.08.22 - klo:19.34
Tuossa ohjeessa ei neuvota lainkaan sitä vaihetta, jossa fontti otetaan käyttöön pääteohjelmassa. Asetuksen sijainti riippuu siitä, mitä päätettä käytät: GNOME Terminal,  Konsole, Xfce Terminal, xterm jne.

Sitten kun terminaali käyttää haluamaasi fonttia, saat fontissa olevat merkit näkyviin niiden UTF-koodeilla. Huomaa, että pääte osaa käyttää vain yhtä fonttia kerrallaan, ja jos haluat nähdä myös tavallisia aakkosia, fontissa tulee olla nekin mukana.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 16.08.22 - klo:19.36
Zenity vaatii oman kikkailunsa, jos haluat fontin toimimaan siinä.

Ehkä olisi hyvä sauma tutkia muita käyttöliittymäratkaisuja, kun Zenityn rajoitteet alkavat tulla vastaan.

Ei enhän minä zenityn kanssa sitä käytä, vaan nimenomaan silloin kun EN VOI käyttäää zenityä, eli silloin kun joudun käyttämään bash select-komentoa (kun ajan samaa skriptiä linukalla ja winukalla, enkä viitsi tehdää kahta erilaista käyttöliittymää samalle asialle). Bashin select-komento on kökkö, kun kaikki rivit numeroidaaan, ja monivalintavalikossa myös valikosta poistuminen täytyy valita numerolla (seim. Ctrl-D ei onnistu). Siinä hommassa tarvitsen kuvaketta, joka selventää vaihtoehtoja, ja sen täytyisi olla fonttityyppinen, ettei mene rivinpituudet sekaisin.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 16.08.22 - klo:19.39
No jos avaan päätteel Ctrl-Alt-T:llä, se on xterm. En löydä sen asetuksista kohtaa jossa fontin voisi valita. Ja täsäs todellakin on tilanne, että yritän käyttää tavallista fonttia ja kuvakkeita yhtaikaa, samalla tavalla kuin edellä mainitussa ohjeessa tehdään. Siinä neuvotaan vain asettamaan käyttöön UTF-8, ja se minulla joon asetettuna.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: nm - 16.08.22 - klo:19.50
Ohjeessa käytetään yhtä fonttia, jossa on sekä tavalliset merkit että tarvittavat kuvakkeet. Tietääkseni mikään unix-pääte ei tue useaa samanaikaista fonttia.

xtermin fontin voi asettaa .Xresources-tiedostossa: https://superuser.com/questions/463414/how-to-get-truetype-fonts-to-display-in-xterm-from-a-xresources-file

Suosittelisin kuitenkin kokeilemaan ensin sellaisella pääteohjelmalla, jossa voit valita fontin päätteen asetusvalikon kautta listasta. Silloin asetusvirheen todennäköisyys on pienempi.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 17.08.22 - klo:07.57
Elikkä nettisivujen ohjelmoinnisssa voi helposti käyttää pientä, muutamasta kirjasimesta koostuvaa fonttia sekaisin muiden fonttien kanssa, mutta päätteessä on käytössä vain se yksi fontti, joka on päätetty kun pääte avattiin. Täytyisi siis pystyä lisäämään pari kirjasinta siihen ainoaan fonttiin, mielellään tyhjille paikoille. Mutta sellaisen lisäyksen tekeminen on työn ja tuskan takana (https://graphicdesign.stackexchange.com/questions/21646/is-it-possible-to-add-new-characters-to-a-font). Tai sitten pitäisi päätteen ja bashin sijaan tehdä selainsovellus, mutta sitä minä en halua tehdä hommassa, jossa komentorivi on pääroolissa.

Argh.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: nm - 17.08.22 - klo:09.14
Ei enhän minä zenityn kanssa sitä käytä, vaan nimenomaan silloin kun EN VOI käyttäää zenityä, eli silloin kun joudun käyttämään bash select-komentoa (kun ajan samaa skriptiä linukalla ja winukalla, enkä viitsi tehdää kahta erilaista käyttöliittymää samalle asialle). Bashin select-komento on kökkö, kun kaikki rivit numeroidaaan, ja monivalintavalikossa myös valikosta poistuminen täytyy valita numerolla (seim. Ctrl-D ei onnistu).

Miten olisi whiptail ja sen tarjoama checklist-dialogi?

https://en.m.wikibooks.org/wiki/Bash_Shell_Scripting/Whiptail

https://www.redhat.com/sysadmin/use-whiptail
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 17.08.22 - klo:12.39
whiptail on kokeiltu jo aiemmin, eikä se selvennä menua yhtään.

Jatkan siis merkin '✔' käyttämistä, parina nyt välilyönti. Parempi olisi jos saisi eriväriset merkit ilman tput-komentoja -- jokainen lisämerkki kun vaikuttaa rivin pituuteen vaikkei olisi kirjoittuva merkki, ja se sotkee ulkoasua, kun select päättelee montako saraketta ikkunaan mahtuu. Se ongelma taitaa kylläkin olla riippumaton merkistön valinnasta.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: kamara - 17.08.22 - klo:16.15
whiptail on kokeiltu jo aiemmin, eikä se selvennä menua yhtään.

Jatkan siis merkin '✔' käyttämistä, parina nyt välilyönti. Parempi olisi jos saisi eriväriset merkit ilman tput-komentoja -- jokainen lisämerkki kun vaikuttaa rivin pituuteen vaikkei olisi kirjoittuva merkki, ja se sotkee ulkoasua, kun select päättelee montako saraketta ikkunaan mahtuu. Se ongelma taitaa kylläkin olla riippumaton merkistön valinnasta.

Yksi vaihtoehto on tosiaan, että lisäät haluamaasi fonttiin oman merkin. Ilmeisesti FontForgella se on mahdollista tehdä, mutta en ole siihen ohjelmaan "yhtään" perehtynyt, mutta asensin sen, ja huomasin sillä pystyttävän lisäämään oman merkin tyhjälle paikalle.

Toiminnoiltaan ei vaikuttanut hirvittävän helpolta käyttöliittymältään, mutta toki on graafinen ohjelma.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: Vika/fiba - 17.08.22 - klo:18.41
Löysin tällaisen  ✅ eli U+2705.
Toimi omassa Gnome-terminaalissani, jossa fonttina Monospace Regular.

 ✅
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 17.08.22 - klo:18.59
Tarttisin kansio auki -kuvakkeen punaisena, kansio kiinni vihreänä. https://unicode-table.com/en/sets/check/ näyttää vain ruksin punaisena, ainakin minulle (Firefoxissa).

Pukit ja ruksit ovat kovin tulkinnavaraisia, mieluummin näkisin ihan selvän kansiokuvakkeen, ja oikean värisenä.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: Vika/fiba - 17.08.22 - klo:20.13
Nämä kansio-kuvakkeet ovat minusta huonompia kuin pukit jaruksit. Ei juuri erota, onko kansio auki vai kiinni.
U+1F4C2 📂
U+1F4C1 📁
Nämä muuten näkyvät terminaalissa keltaisena, mutta yhtä epäinformatiivisina. Lisäksi näitä ei voi sinne kirjoittaa vaan on kopioitava, koska ctrl+vaihto+f on varattu pikanäppäin ja aloittaa haun.

U+2705 ✅
U+274C ❌
Ovat nämä helpompia hahmottaa.

Ehkä joudut opettelemaan FontForgen käytön.
Otsikko: Vs: ikonien käyttö bash-skriptissä
Kirjoitti: AimoE - 17.08.22 - klo:20.23
Haulla https://fontawesome.com/search?q=folder&s=regular löytyy kuvakkeet "folder-open" ja "folder-closed". Kun avatun saisi punavärillä ja suljetun vaikka vaan musta-valkoisena, niin johan erottuisi selvästi.