Tirsdag 22. Februar 2022

Mystiske Linux-koder

Kode for oppsett av blå temafarge i Linux Kvakk:

Gå til System –> Innstillinger –> Utseende og oppførsel –> Utseende
og velge Mint-X-Blue.

Gå til System –> Innstillinger –> Utseende og oppførsel –> Skrifter
og velge 11 som skriftstørrelse for alle typer skrift samt 20 for Monospace.

Gå til System –> Innstillinger –> Utseende og oppførsel –> Utseende
og velge Installer. Pakke ut Elegance.tar.gz

Etter at Linux Mint fra versjon 18.3 gikk over til gtk-3.0 og temavalgene er i css, kan man ikke lenger selv endre fargene i konfigurasjonen; dette må derfor gjøres manuelt.

Gå til usr/share/themes/Mint-X-Blue og åpne mappen gtk-3.0 med administratorrettigheter; åpne deretter filen gtk-main.css:

/* Default Color Scheme */

@define-color theme_bg_color #d6d6d6; (lysegrå)
@define-color theme_fg_color #212121; (mørkegrå)
@define-color theme_base_color #f7f7f7; (svært lys grå)
@define-color theme_text_color #212121; (mørkegrå)
@define-color theme_selected_bg_color #5b73c4; (blågrå)
@define-color theme_selected_fg_color #f5f5f5; (svært lys grå)
@define-color theme_tooltip_bg_color #fbeaa0; (lys brun)
@define-color theme_tooltip_fg_color #212121; (mørkegrå)

/* Misc Colors */

@define-color insensitive_fg_color shade(@theme_bg_color, 0.6);
@define-color border shade(@theme_bg_color, 0.7);
@define-color internal_element_color shade(@theme_fg_color, 0.7);
@define-color internal_element_prelight shade(@theme_fg_color, 0.9);

Endre til

@define-color theme_bg_color #d1d3fa;
@define-color theme_fg_color #000000;
@define-color theme_base_color #ffffff;
@define-color theme_text_color #000000;
@define-color theme_selected_bg_color #5560ee;
@define-color theme_selected_fg_color #ffffff;
@define-color theme_tooltip_bg_color #ffffff;
@define-color theme_tooltip_fg_color #000000;

/* Misc Colors */

@define-color insensitive_fg_color #bfbfbf;
@define-color border shade(@theme_bg_color, 0.7);
@define-color internal_element_color shade(@theme_fg_color, 0.7);
@define-color internal_element_prelight shade(@theme_fg_color, 0.9);

Betydningen av fargevalgene:

@define-color theme_bg_color #d1d3fa; (#b9bef8 er litt mørkere blå)
(øvre del av vinduet, bakgrunn i symbolene øverst til høyre på siden (Klokke og XApp Status Applet), skriften i valgene i nedtrekksmenyene som man ikke kan velge)
@define-color theme_fg_color #000000;
(skriften i øvre del av vinduet, skriften i menyene øverst på siden, skriften i nedtrekksmenyene, symbolene øverst til høyre på siden)
@define-color theme_base_color #ffffff;
(bakgrunnen i en tekstside, bakgrunn i en mappe)
@define-color theme_text_color #000000;
(tekstfarge)
@define-color theme_selected_bg_color #5560ee;
(valgt element, valgt tekst, fargen på boksene i menyene når man klikker på dem, tekstboksene når man klikker på en mappe)
@define-color theme_selected_fg_color #ffffff;
(skriften i menyene øverst på siden når man trykker på dem, skriften i øvre del av vinduet når man peker på den, markering av skriften i nedtrekksmenyene)
@define-color theme_tooltip_bg_color #ffffff;
(boksene når man peker på et element)
@define-color theme_tooltip_fg_color #000000;
(skriften i informasjonen man får når man peker på et element)

Fargen på valgene i nedtrekksmenyene og symbolene som man ikke kan velge er definert i

/* Misc Colors */

@define-color insensitive_fg_color shade(@theme_bg_color, 0.6);

Åpne deretter filen gtk-widgets.css:

button,
.header-bar.titlebar GtkMenuButton.button.titlebutton {
color: @button_fg;
text-shadow: 0 1px @button_text_shadow;
-gtk-icon-shadow: 0 1px @button_text_shadow;
}

Endre til

button,
.header-bar.titlebar GtkMenuButton.button.titlebutton {
color: @button_fg;
text-shadow: none;
-gtk-icon-shadow: none;
}

Dette fjerner de hvite skyggene ved bokstavene i kalenderen og ikonene i XApp Status Applet etter at bakgrunnen er gjort gjennomsiktig.

/****************
* content view *
****************/

.content-view {
background-color: @theme_base_color;
}

.content-view:hover {
-gtk-icon-effect: highlight;
}

Endre til

/****************
* content view *
****************/

.content-view {
background-color: transparent;
}

.content-view:hover {
-gtk-icon-effect: highlight;
}

samt

/***************
* menubaritem *
***************/

menubar > menuitem,
.menubar > menuitem {
padding: 4px 6px;
border: 1px solid transparent;
text-shadow: 0 1px alpha(white, 0.4);
}

Endre til

/***************
* menubaritem *
***************/

menubar > menuitem,
.menubar > menuitem {
padding: 4px 6px;
border: 1px solid transparent;
text-shadow: none;
}

Sistnevnte fjerner den hvite skyggen ved bokstavene i menyen øverst på siden.

Ønsker man å definere fargen på Arbeidsområdebytter (Workspace Switcher), kan man legge til følgende på slutten av gtk-widgets.css:

.wnck-pager {
background-color: #e8e9fd; }
.wnck-pager:selected {
background-color: #747cf1; }
.wnck-pager:hover {
background-color: #d1d3fa; }

Fargen på sidemenyene (treeview) er definert i mappen
usr/share/themes/Mint-X-Blue/gtk-3.0/apps. Åpne mappen med administratorrettigheter, og redigere filen
mate-applications.css:

@define-color caja_sidebar_bg #505050;
@define-color caja_sidebar_fg #dadada;
@define-color caja_sidebar_selected_fg #fff;

Endre til

@define-color caja_sidebar_bg #e8e9fd;
@define-color caja_sidebar_fg #000000;
@define-color caja_sidebar_selected_fg #fff;

For å gi kalenderen og ikonene i XApp Status Applet gjennomsiktig bakgrunn, må man i tillegg endre dette:

#PanelApplet button {
padding: 3px;
border-style: solid;
border-width: 2px;
border-radius: 3px;
background-color: @theme_bg_color;
background-image: none;
}

Endre til

#PanelApplet button {
padding: 3px;
border-style: solid;
border-width: 2px;
border-radius: 3px;
background-color: transparent;
background-image: none;
}

Til slutt endrer man fargen på tab-ene i nedre panel, som opprinnelig er gråaktige:

#PanelApplet wnck-tasklist button.flat {
padding: 0px 3px 0px 3px;
border-style: solid;
border-width: 2px;
border-radius: 3px;
border-color: transparent;
border-image: -gtk-scaled(url(”../borders/button/button.png”), url(”../borders/button/button@2.png”)) 4 / 4px stretch;
box-shadow: inset 0 1px alpha(white, 0.5),
inset 1px 0 alpha(white, 0.3),
inset -1px 0 alpha(white, 0.3),
inset 0 -1px alpha(white, 0.05);
background-color: transparent;
background-image: linear-gradient(to bottom,
alpha(white, 0.5),
alpha(white, 0.01));
}

#PanelApplet wnck-tasklist button.flat:hover,
#PanelApplet button:hover {
padding: 0px 3px 0px 3px;
border-style: solid;
border-width: 2px;
border-radius: 3px;
border-color: transparent;
border-image: -gtk-scaled(url(”../borders/button/button.png”), url(”../borders/button/button@2.png”)) 4 / 4px stretch;
box-shadow: inset 0 1px alpha(white, 0.5),
inset 1px 0 alpha(white, 0.3),
inset -1px 0 alpha(white, 0.3),
inset 0 -1px alpha(white, 0.05);
background-color: transparent;
background-image: linear-gradient(to bottom,
alpha(white, 0.7),
alpha(white, 0.1));
}

#PanelApplet wnck-tasklist button.flat:checked:hover,
#PanelApplet wnck-tasklist button.flat:checked,
#PanelApplet wnck-tasklist button.flat:active:hover,
#PanelApplet wnck-tasklist button.flat:active,
#PanelApplet button:checked,
#PanelApplet button:checked:hover,
#PanelApplet button:active,
#PanelApplet button:active:hover {
padding: 0px 3px 0px 3px;
border-style: solid;
border-width: 2px;
border-radius: 3px;
border-color: transparent;
border-image: -gtk-scaled(url(”../borders/button/button-active.png”), url(”../borders/button/button-active@2.png”)) 4 / 4px stretch;
box-shadow: inset 0 1px alpha(black, 0.1),
inset 1px 0 alpha(black, 0.08),
inset -1px 0 alpha(black, 0.08),
inset 0 -1px alpha(black, 0.06);
background-color: transparent;
background-image: linear-gradient(to bottom,
alpha(black, 0.2),
alpha(black, 0.2));
}

Endre til

#PanelApplet wnck-tasklist button.flat {
padding: 0px 3px 0px 3px;
border-style: solid;
border-width: 2px;
border-radius: 3px;
border-color: transparent;
border-image: -gtk-scaled(url(”../borders/button/button.png”), url(”../borders/button/button@2.png”)) 4 / 4px stretch;
box-shadow: inset 0 1px alpha(white, 0.5),
inset 1px 0 alpha(white, 0.3),
inset -1px 0 alpha(white, 0.3),
inset 0 -1px alpha(white, 0.05);
background-color: #e8e9fd;
background-image: none;
}

#PanelApplet wnck-tasklist button.flat:hover,
#PanelApplet button:hover {
padding: 0px 3px 0px 3px;
border-style: solid;
border-width: 2px;
border-radius: 3px;
border-color: transparent;
border-image: -gtk-scaled(url(”../borders/button/button.png”), url(”../borders/button/button@2.png”)) 4 / 4px stretch;
box-shadow: inset 0 1px alpha(white, 0.5),
inset 1px 0 alpha(white, 0.3),
inset -1px 0 alpha(white, 0.3),
inset 0 -1px alpha(white, 0.05);
background-color: #e8e9fd;
background-image: none;
}

#PanelApplet wnck-tasklist button.flat:checked:hover,
#PanelApplet wnck-tasklist button.flat:checked,
#PanelApplet wnck-tasklist button.flat:active:hover,
#PanelApplet wnck-tasklist button.flat:active,
#PanelApplet button:checked,
#PanelApplet button:checked:hover,
#PanelApplet button:active,
#PanelApplet button:active:hover {
padding: 0px 3px 0px 3px;
border-style: solid;
border-width: 2px;
border-radius: 3px;
border-color: transparent;
border-image: -gtk-scaled(url(”../borders/button/button-active.png”), url(”../borders/button/button-active@2.png”)) 4 / 4px stretch;
box-shadow: inset 0 1px alpha(black, 0.1),
inset 1px 0 alpha(black, 0.08),
inset -1px 0 alpha(black, 0.08),
inset 0 -1px alpha(black, 0.06);
background-color: #a2a8f6;
background-image: none;
}

Temafargene endres ved utlogging.

Gå til System –> Innstillinger –> Utseende og oppførsel –> Utseende –> Tilpass:
Kontroller: Mint-X-Blue
Vinduskant: Elegance
Ikoner: Mint-X-Blue
Peker: Forvalgt peker

Videre kan man bekrefte at det er root som har filrettighetene dersom man har brukt sikkerhetskopier av mapper til å gjennomføre endringer:

sudo chown root:root -R /usr/share/themes/Mint-X-Blue

- - - - -

Kode for nedlasting av film fra nett-TV med youtube-dl; URL-en til enkeltepisoder listet opp i 1.txt, URL-en til serier listet opp i 2.txt, URL-en til serier med flere sesonger listet opp i 3.txt, og URL-en til serier i formatet Serienavn - sesong 1 - [episodenummer] listet opp i 4.txt:

youtube-dl -i -a 1.txt -o "/home/linux/Dokumenter/1/%(title)s.%(ext)s" --all-subs --retries 100; youtube-dl -i -a 2.txt -o "/home/linux/Dokumenter/1/%(series)s/%(title)s.%(ext)s" --all-subs --retries 100; youtube-dl -i -a 3.txt -o "/home/linux/Dokumenter/1/%(series)s/%(series)s - sesong %(season_number)s/%(title)s - sesong %(season_number)s.%(ext)s" --all-subs --retries 100; youtube-dl -i -a 4.txt -o "/home/linux/Dokumenter/1/%(series)s/%(series)s - sesong %(season_number)s/%(series)s - sesong %(season_number)s - %(episode_number)s.%(ext)s" --all-subs --retries 100; cd /home/linux/Dokumenter/1 && find -type d -not -path "./mkv" -exec mkdir -p "./mkv/{}" ; && rm -r /home/linux/Dokumenter/1/mkv/mkv && for i in *.vtt */*.vtt */*/*.vtt; do ffmpeg -i "$i" "${i%.*}.srt"; done ; for file in * */* */*/*; do rename -v 's/.nb-nor.srt/.srt/' *.srt */*.srt */*/*.srt; done ; for file in * */* */*/*; do rename -v -f 's/.nb-ttv.srt/.srt/' *.srt */*.srt */*/*.srt; done ; for mp4 in *.mp4 */*.mp4 */*/*.mp4; do base="${mp4%mp4}" args=(-o "mkv/${base}mkv" "${mp4}"); if [ -f "${base}srt" ]; then args=("${args[@]}" "${base}srt"); fi; if [ -f "${base}idx" ]; then args=("${args[@]}" "${base}idx"); fi; mkvmerge "${args[@]}"; done && ls * */* && cd ~/Dokumenter

Kode for nedlasting av en YouTube-kanal med yt-dlp; ikke bedre kvalitet enn 1080p:

yt-dlp --get-filename -o "%(upload_date)s https://www.youtube.com/watch?v=%(id)s" "https://www.youtube.com/c/[navn på kanal]" > ~/Dokumenter/1.txt && sed -i 's/https/| https/g' 1.txt && sort 1.txt -t'|' -k1 -o 1.txt && sed 's/...........//' 1.txt --> 2.txt && yt-dlp -i -f bestvideo[height<=1080][ext=mp4]+bestaudio[ext=m4a] --autonumber-start 1 -a 2.txt -o "/home/linux/Dokumenter/1/%(autonumber)03d - %(title)s.%(ext)s" --retries 100

Kode for nedlasting av en YouTube-kanal med yt-dlp uansett hvor høy oppløsningen er:

yt-dlp --get-filename -o "%(upload_date)s https://www.youtube.com/watch?v=%(id)s" "https://www.youtube.com/c/[navn på kanal]" > ~/Dokumenter/1.txt && sed -i 's/https/| https/g' 1.txt && sort 1.txt -t'|' -k1 -o 1.txt && sed 's/...........//' 1.txt --> 2.txt && yt-dlp -i -f bestvideo[ext=mp4]+bestaudio[ext=m4a] --autonumber-start 1 -a 2.txt -o "/home/linux/Dokumenter/1/%(autonumber)03d - %(title)s.%(ext)s" --retries 100

Kode for lagring og nedlasting av en spilleliste fra YouTube med yt-dlp:

yt-dlp -j --flat-playlist "https://www.youtube.com/playlist?list=[ID-en til listen]" | jq -r '.id' | sed 's_^_https://www.youtube.com/watch?v=_' > Spilleliste.txt && yt-dlp -i -f bestvideo[ext=mp4]+bestaudio[ext=m4a] --all-subs --autonumber-start 1 -a Spilleliste.txt -o "/home/linux/Dokumenter/1/%(autonumber)03d - %(title)s.%(ext)s" --retries 100

Kode for nedlasting av en enkel film fra YouTube med yt-dlp; ikke bedre kvalitet enn 1080p:

yt-dlp URL -i -f bestvideo[height<=1080][ext=mp4]+bestaudio[ext=m4a] --retries 100

Kode for nedlasting av lyd som mp3 320 kbps listet opp i filen 1.txt med yt-dlp, inkludert de originale m4a-filene:

yt-dlp -i -a 1.txt -f bestaudio --extract-audio --audio-format mp3 --audio-quality 320k --embed-thumbnail --add-metadata --retries 100 -k -o "/home/linux/Dokumenter/1/%(series)s/%(title)s.%(ext)s"

Kode for lagring og nedlasting av en spilleliste fra YouTube i mp3 320 kbps med yt-dlp:

yt-dlp -j --flat-playlist "https://www.youtube.com/playlist?list=[ID-en til listen]" | jq -r '.id' | sed 's_^_https://www.youtube.com/watch?v=_' > Spilleliste.txt && yt-dlp -i -f bestaudio --extract-audio --audio-format mp3 --audio-quality 320k --embed-thumbnail --add-metadata -a Spilleliste.txt -o "/home/linux/Dokumenter/1/%(autonumber)03d - %(title)s.%(ext)s" --retries 100

Kode som gir automatisk tittel for bøker lastet ned med NBNO.py, der bøkene er listet opp i 1.txt slik: Tittel digibok_ID, med én boktittel pr.linje:

cd /home/linux/Dokumenter/bok && sed -i 's/digibok/| digibok/g' 1.txt && sort 1.txt -t'|' -k2 -o 1.txt && while IFS=| read -r tittel nummer; do python3 nbno.py --id "${nummer}" --cover --pdf; done < 1.txt && sed -i 's/| digibok/digibok/g' 1.txt && for file in *.pdf; do read line; mv -v "${file}" "${line}".pdf; done < 1.txt && for i in */; do read line; mv -v "${i}" "${line}"; done < 1.txt && rename 's/^(.*) (.*)(..*)$/$1.pdf/' *.pdf && find . -type d | rename 's/digibok_//' && ls && cd ~/Dokumenter

Si din oppriktige mening om dette innlegget

Det hadde vært snilt av deg om du kunne fylle ut skjemaet for å legge til kommentaren din. Så lenge du ikke begynner å jage meg med en løpsk motorsag og vil grille meg i mikrobølgeovnen, er alt i orden.
Tusen takk for at du tar deg tid til å skrive noen ord i denne bloggen, og håper alt ordner seg for deg; det fortjener du virkelig.