avatar

Rady k nastavení počítače

Snad i trochu praktické hříčky programátora, kterému je Ubuntu dobré

Triky pro Bash

Lepší prompt

Výchozí nastavení vám v terminálu vypíše něco jako adam@peklostroj:/home/adam$. Vcelku cool, ale otravně dlouhé a zbytečné. Jako náhradu navrhuju, abyste si na konec souboru ~/.bashrc doplnili následující kód:

fancy_prompt() {
    local green=$(tput setaf 2)
    local yellow=$(tput setaf 3)
    local reset=$(tput sgr0)
    PS1="\[$(tput bold)$yellow\]\$?\[$green\]\\A\[$yellow\]\\w\[$reset\] "
}

if [ "$color_prompt" = yes ]; then
    fancy_prompt;
fi

Co jsem od toho chtěl:

Výsledek je tedy něco jako 023:45~/dokumenty. Jestli chcete tu proměnnou PS1 poladit podle svých představ, buďte opatrní na hranaté závorky kolem všech formátovacích značek; jinak se vám budou špatně vypisovat a zalamovat víceřádkové příkazy.

Iniciativní Python

Docela často omylem vkopíruju pythonský kód do terminálového okna s obyčejným Bashem. Jediný způsob, jak to vyřešit pořádně, samozřejmě je dávat si pozor, ale malý trik aspoň pomůže. Často totiž jsou na začátku nějaké příkazy import, které k mému zděšení spouštějí skutečné programy v systému. Pohodlí tedy prospěje, když se místo těch zbytečných programů spustí rovnou Python a začne provádět příkazy podle zadání.

Vložte si do souboru ~/.bashrc následující dvě funkce:

import() {
    python3 -ic "import $*";
}
from() {
    python3 -ic "from $*";
}

Různé programy

Nahrávání videa z monitoru

Pro natáčení návodů se hodí umět dělat záznam z monitoru. VLC to umí, ale nedovede tam správně ukázat kurzor myši. Dobře se mi osvědčil program recordmydesktop, který sice má vachrlaté konzolové ovládání, ale následujícím skriptem si z něj můžete udělat nástroj na jedno kliknutí:

#!/bin/bash
recordmydesktop --no-sound --on-the-fly-encoding --windowid=$(xwininfo | grep xwininfo | tail -n 1 | cut -f 4 -d ' ')

Jak doplnit zvuk? Doporučuju nahrát dodatečně v Audacity a rovnou si tam efektem nechat potlačit šum.

Jak to sestříhat? Doporučuju Blender, samozřejmě. Bohužel ale má potíže video takhle pořízené správně načíst a seekovat v něm, takže se vyplatí to ještě předem překonvertovat ffmpegem. Konkrétně používám příkaz v tomhle tvaru:

ffmpeg -i porizene_video.ogv -q:v 1 -r 25 nazev_pro_vystupni_video.mpg

Výstup z Blenderu taky nebývá moc dobře komprimovaný, tak ho kdyžtak ještě protáhněte ffmpegem znova. Předpokládám, že si necháte zvuk uložit od Blenderu do odděleného souboru, třeba jako flac. Následující program se v rámci druhého průchodu zeptá, jestli má soubor přepsat – což by šlo vyřešit, ale snad stačí vědět, že máte zmáčknout enter.

ffmpeg -i sestrihane_video.mpg -i sestrihany_zvuk.flac -map 0:0 -map 1:0 -f mp4 -c:v libx264 -preset slow -tune animation -ac 1 -strict -2 -b:v 300k -pass 1 vysledek.avi -threads 2;
ffmpeg -i sestrihane_video.mpg -i sestrihany_zvuk.flac -map 0:0 -map 1:0 -f mp4 -c:v libx264 -preset slow -tune animation -ac 1 -strict -2 -b:v 300k -pass 2 vysledek.avi -threads 2