User:Esby/truc

From Wikimedia Commons, the free media repository
Jump to: navigation, search

Trucs et astuces que j'oublie constamment sous linux & co.


creer un lanceur[edit]

ubuntu n'a plus l'option d'associer un programme de manière simple à un type de fichier...

sudo apt-get install --no-install-recommends gnome-panel

Pour créer un lanceur:

gnome-desktop-item-edit ~/Desktop/ --create-new


créer un lanceur pour rawtherapee[edit]

sudo apt-get install alacarte

1- créer un lien symbolique depuis le repertoire de build de rt.

ln -s ~/rawtherapee/build/release ~/rt

2 - avec alacarte ajouter une entrée dans le menu graphisme. en ligne de commande mettre:

~/rt/rawtherapee %U

unzip-iconv sous debian[edit]

https://github.com/ikohara/dpkg-unzip-iconv

libglut3-dev / ubuntu 12.04[edit]

remplacée par freeglut3-dev...


debugger des asserts avec rawtherapee[edit]

G_DEBUG=fatal_warnings gdb ~/rt_default_Debug_patched/rawtherapee
run
bt

ffmpeg[edit]

Testée sous ubuntu 12.10, adaptée pour debian 7.

La compilation de ffmpeg est une variante de http://doc.ubuntu-fr.org/tutoriel/comment_compiler_ffmpeg croisée avec les instructions présentes dans http://forum.doom9.org/showthread.php?t=164386&page=10 par qyot27

On utilise sudo make install. On installe dans /opt/ffmpeg donc --prefix=/opt/ffmpeg au niveau du configure On rajoute enable-shared et enable-pic dans le configure pour libvpx et x264 ainsi les autres...

dépendances[edit]

sudo apt-get update
sudo apt-get upgrade


sudo apt-get -y install autoconf automake build-essential git libass-dev libgpac-dev \
    libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev \
    libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev checkinstall yasm \
    liblog4cpp5-dev liblog4cpp5 libcairo2-dev libpango1.0-dev libjpeg-dev libqt4-dev \
    libqt4-designer libqt4-gui kdevelop  subversion

mkdir -p ~/tmp/avxsynth


  • debian specific

Ajouter le dépôt

sudo apt-get -y install libfdk-aac-dev libgsm1-dev libopencore-amrwb-dev libopencore-amrnb-dev libopenjpeg-dev libschroedinger-dev libspeex-dev libxvidcore-dev libdc1394-22-dev

Yasm 1.3[edit]

cd ~/tmp/avxsynth
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix=/opt/ffmpeg/
make
sudo make install

lame[edit]

cd ~/tmp/avxsynth
wget http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz
tar -zxvf lame-3.99.5.tar.gz && rm lame-3.99.5.tar.gz
cd lame-3.99.5
export CFLAGS="$CFLAGS -fPIC"
./configure --enable-nasm --disable-shared  --prefix=/opt/ffmpeg/ 
make
sudo make install

libvpx[edit]

cd ~/tmp/avxsynth
git clone https://github.com/webmproject/libvpx.git
cd libvpx 
./configure --enable-pic --prefix=/opt/ffmpeg/
make
sudo make install

x264[edit]

cd ~/tmp/avxsynth
git clone git://github.com/qyot27/x264_L-SMASH.git
cd x264_L-SMASH
git checkout master
./configure --enable-strip --enable-static --enable-pic --prefix=/opt/ffmpeg
make
sudo make install

ffmpeg[edit]

cd ~/tmp/avxsynth
git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
./configure --enable-avisynth --enable-libass --enable-libmp3lame --enable-libxvid --enable-libvorbis --enable-gpl --enable-libfdk-aac --enable-libtheora --enable-zlib --disable-shared --enable-libx264 --enable-nonfree --enable-version3 --enable-libschroedinger --enable-avfilter --enable-libspeex --enable-libopenjpeg --enable-libgsm --enable-postproc --enable-pthreads --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-ffplay --enable-librubberband --enable-pthreads --prefix=/opt/ffmpeg --enable-x11grab --enable-runtime-cpudetect --enable-bzlib --enable-libdc1394 --enable-libvpx --enable-shared --enable-pic  --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib --extra-cflags=-I/opt/ffmpeg/include/
make
sudo make install


Rawtherapee[edit]

Tiré de [1]

sudo apt update
sudo apt install build-essential cmake curl git libcanberra-gtk3-dev libexiv2-dev libexpat-dev libfftw3-dev libglibmm-2.4-dev libgtk-3-dev libgtkmm-3.0-dev libiptcdata0-dev libjpeg-dev liblcms2-dev libpng-dev libsigc++-2.0-dev libtiff5-dev zlib1g-dev 

# note: pour gtkmm 2.4
sudo apt-get install libgtkmm-2.4-dev libbz2-dev libcanberra-gtk-dev

script de compilation de rt: (a mettre dans le répertoire de source)

#!/bin/bash
btype="release"
mkdir -p build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE="$btype" -DPROC_TARGET_NUMBER="2" -DBUILD_BUNDLE="ON" -DBINDIR="." -DDATADIR="." -DCACHE_NAME_SUFFIX=4 .. && \
make -j4 install && \
cd $btype && (echo r | gdb ./rawtherapee )

linux / *bsd[edit]

substitutions dans des fichiers multiples[edit]

/usr/bin/perl -p -i -e "s/chaine_cible/remplacement/g" *

desactiver updatedb tracker etc[edit]

pour monitorer

sudo iotop

tracker-store

gsettings set org.freedesktop.Tracker.Miner.Files crawling-interval -2  
gsettings set org.freedesktop.Tracker.Miner.Files enable-monitors false
tracker-control -r

updatedb.mlocate

sudo chmod -x /usr/bin/updatedb

clavier lent après 10s en maintenant shift appuyé[edit]

(bug) - Cf. [2]
xkbset -a 
xkbset -sl

Pour verifier le bug:

  xkbset q | grep "Accessibility Features"

Desactiver les fichiers récents[edit]

Suite à des problèmes de performance pour charger des fichiers...

 echo 'gtk-recent-files-max-age=0' >> ~/.gtkrc-2.0;


Désactiver les scrollbars bizarres d'ubuntu[edit]

 echo "export LIBOVERLAY_SCROLLBAR=0" | sudo tee /etc/X11/Xsession.d/80overlayscrollbars 

Freebsd, activation du son[edit]

kldload snd_driver

Réglage du volume sous freebsd[edit]

(Problème au reboot, et comme je reboot jamais...)

kmix

Gravage de dvd[edit]

(Idem je grave jamais de dvd ou cd...)

k3b

ERROR: file system is larger than underlying device - sd card panasonic gh4[edit]

from [3]

sudo apt-get install libfuse-dev
git clone https://github.com/relan/exfat.git
cd exfat/
autoreconf --install
./configure --prefix=/usr
sudo make install
sudo mount.exfat-fuse /dev/(...) ~/usb

obtenir une liste de paquet pour suppression en masse ou reinstallation[edit]

Sous debian / ubuntu.

sudo dpkg -l | cut -d " " -f3 | grep toto > list

installations de pilotes additionels (drivers carte graphique)[edit]

ubuntu/ debian?

sudo jockey-gtk

(sous ubuntu 12.10)

sudo software-properties-gtk

historique unique pour bash[edit]

(évite les doubles dans l'historique)

editer ~/.bashrc

export HISTCONTROL=ignoreboth:erasedups

trouver des fichiers raws non renommés[edit]

(NB: nomenclature panasonic)

find .   -name "P[0-9][0-9][0-9][0-9][0-9][0-9][0-9].RW2"

idem pour les MTS

find .   -name "[0-9][0-9][0-9][0-9][0-9].MTS"

renumeroter des fichiers[edit]

code à adapter à la situation ce code renomme des fichiers se trouvant dans list avec une nouvelle numerotation

list est généré avec un

 ls | cut -f '.' -f 1 | sort | uniq 

pour préserver l'ordre.

#!/bin/bash
filename="list"
i=494
while read -r line
do
    name="$line"
    rename "s/$name/P1650$i/" *
    let i++
done < "$filename"

coloration syntaxique pour vim[edit]

vi ~/.vimrc

syntax on
colorscheme koehler


installer une version antérieure de hugin et la bloquer[edit]

déterminer la version a installer

apt-cache showpkg hugin
apt-cache showpkg hugin-tools
apt-cache showpkg hugin-data

installer une version spécifique

sudo apt-get install hugin=2011.4.0+dfsg-5 hugin-tools=2011.4.0+dfsg-5 hugin-data=2011.4.0+dfsg-5

verrouiller la version

sudo apt-mark hold hugin hugin-data hugin-tools

installer une version antérieure de mkvtoolnix (mmg) et la bloquer[edit]

déterminer la version a installer

apt-cache showpkg mkvtoolnix

installer une version spécifique

sudo apt-get install mkvtoolnix=5.6.0-1 mkvtoolnix-gui=5.6.0-1

verrouiller la version

sudo apt-mark hold mkvtoolnix mkvtoolnix-gui

imagemagick[edit]

  • listes les fonts
convert -list font
  • conversion de tif en jpeg qualité 98
mogrify -format jpg -quality 98 *.tif
  • conversion de jpeg en jpeg de resolution 1280x1280 (max) et qualité 98:
mkdir output
find . -iname "*.jpg" | xargs -l -i convert -resize 1280x1280 -quality 98 {} output/{}
* conversion de tif en png en 1920x1080 avec ajout de bord noir sur les cotés...
mkdir output
find . -iname "*.tif" | xargs -l -i convert -resize 1920x1080 -background black -extent 1920x1080 -gravity center  {} output/{}.png
  • conversion de tif en jpeg
find . -iname "*.tif" | xargs --verbose -l -i convert -quality 98 "{}" "{}.jpg"
find . -iname "*.tif.jpg" -exec echo rename "s/.tif.jpg/.jpg/" {}  \;
  • montage en mosaique par rangée de 10
mkdir output
find . -iname "*.JPG" | xargs -l -i convert -resize 200x200 -quality 98 {} output/{}
cd output
montage -limit area 0 *.JPG -tile x10 montage.jpg

alternative pour la première étape (128x128) si des noms de fichiers sont problématiques pour xargs

mkdir output
mogrify -path output/ -format "png" -resize "128x128" *.jpg
cd output
montage -geometry 768x768  *.png  -tile 13x7 +polaroid  montage.png #pour 91 photos


  • renommage de jpeg prefixées (XXX-nom.jpg)
find . -iname "*.jpg" -exec sh -c 'oldname="{}" ; newname=`echo "{}" | cut -d "-" -f 2- ` ; mv "$oldname" "$newname" ' \;

apply_banner.sh[edit]

Script source[edit]

#!/bin/bash
# usage:
# apply_banner.sh '%imgpath% %title%'
#
imgpath="$1"
tmpfilename="$imgpath.jpg"
title=`basename "$2" .jpg`

#helper function to determine the width of the text
function getlen()
{
  font="$1"
  text="$2"
  pointsize="$3"
  return_getlen=`convert xc: -font "$font" -pointsize "$pointsize" -debug annotate -annotate 0 "$text" null: 2>&1 | grep Metrics: | tr ";" "\n" | grep -v Metrics | grep width | cut -d ":" -f 2`
}

function gethei()
{
  font="$1"
  text="$2"
  pointsize="$3"
  return_gethei=`convert xc: -font "$font" -pointsize "$pointsize" -debug annotate -annotate 0 "$text" null: 2>&1 | grep Metrics: | tr ";" "\n" | grep -v Metrics | grep height | cut -d ":" -f 2`
}


# return excessing if the label will exceed the size of 2000 pixels, ok otherwise
function testing_font()
{
  font1="$1"
  text1="$2"
  pointsize1="$3"
  font2="$4"
  text2="$5"
  pointsize2="$6"

  #determining total font width
  getlen "$font1" "$text1" "$pointsize1"
  len1=$return_getlen
  getlen "$font2" "$text2" "$pointsize2"
  len2=$return_getlen
  echo "len1: $len1 len2: $len2"
  let total_length="$len1+$len2"

  #downsizing font if necessary
  if [ $total_length -ge 2000 ] # we keep 48 margin pixels of safety
  then
    result_testing_font="excessing"
  else
    result_testing_font="ok"
  fi
}

font1="insert-font1"
font2="insert-font2"
pointsize1="28" # customize this size depending your font
text1=" $title"
text2="Some text - copyright information - author name or contact info"
pointsize2="60" # customize this size depending your font and the length of your text
bannersize="65"

pointsize1="32"
result_testing_font="initial_state"
until [ "$result_testing_font" = "ok" ]
do
  let pointsize1="$pointsize1"-2
  testing_font "$font1" "$text1" "$pointsize1" "$font2" "$text2" "$pointsize2"
  echo "pointsize: $pointsize1 $result_testing_font"
  if [ $pointsize -lt 6 ]
  then
    result_testing_font="ok"
  fi
done

#determining shift1 parameter
gethei "$font1" "$text1" "$pointsize1" 
let shift1="($bannersize-$return_gethei)/2"
echo "shift1: $shift1 "

#determining shift2 parameter
gethei "$font2" "$text2" "$pointsize2"
let shift2="($bannersize-$return_gethei)/2"
echo "shift2: $shift2 "

#determining which side is larger
w=`identify -format '%w' "$imgpath"`
h=`identify -format '%h' "$imgpath"`
if [ $w -ge $h ]
then
#adding to bottom
# change color to your liking
convert \( \( "$imgpath" -resize 2048x1981 -gravity south -background blue -splice 0x1 -background white -splice "0x$bannersize" \) -font "$font1" -pointsize $pointsize1 -gravity southwest -annotate "+0+$shift1" " $text1"  -gravity southeast +append \) -font "$font2" -pointsize $pointsize2 -annotate "+0+$shift2" "$text2" +append -background blue -splice 0x1 -gravity south "$tmpfilename"

else
#adding to right
# change color to your liking
convert \( \( \( "$imgpath" -rotate 90 \) -resize 2048x1981 -gravity south -background blue -splice 0x1 -background white -splice "0x$bannersize" \) -font "$font1" -pointsize $pointsize1 -gravity southwest -annotate "+0+$shift1" " $text1" -gravity southeast +append \) -font "$font2" -pointsize $pointsize2 -annotate "+0+$shift2" "$text2" +append -background blue -splice 0x1 -gravity south -rotate -90 "$tmpfilename"

fi

mv -f "$tmpfilename" "$imgpath"

Usage[edit]

  • apply banner script
ls |  xargs -l -i apply_banner.sh {} {}

alternative for files containing quotes - warning will seek in all folder

find . -iname '*.jpg' -exec apply_banner.sh "{}" "{}"  \;

Divers (orienté photo /image)[edit]

  • rotation des jpeg en lossless (sans perte de qualité)
exifautotran *.jpg
  • strip des exifs (utile dans de très très rares cas):
exiftool -all= *.jpg
  • lister les fichiers RAWS n'ayant pas de fichier jpg
find . -iname "*jpg" -exec basename '{}' .jpg \; > ~/list

puis

ls  | grep -f ~/list -v
  • resize pour fb
mkdir output
mogrify -format jpg -verbose -auto-orient -resize 2048x2048 -quality 95% -path 'output' *.jpg
  • find en conjonction avec un grep (sur le contenu d'une liste de fichier) et xargs
mkdir selection
find . -iname *.jpg  | grep -f listfile.txt |  sed 's/.*/"&"/' | xargs -I{} mv "{}" selection

lazarus[edit]

Bonnes pratiques avec subversion:

  • Pour éviter d'avoir le fichier lpr qui change à chaque fois que le projet est ouvert:
option du projet -> option -> information de sessions dans un fichier lps séparé.
  • quels fichiers à mettre en version:
 *.pas *.lfm *.lpr *.ico *.lpi? 
  • quels fichiers à ne pas mettre en version:
 *.lps  *.


portable sous debian[edit]

Sous Debian / wheezy (7)

  • installer xorg
apt-get install xorg
  • installer e17 (à la main)

source: http://www.enlightenment.org/?p=about/e17

apt-get install gcc libc6-dev make gdb wget libpam-dev libfreetype6-dev libpng-dev libjpeg-dev zlib1g-dev libdbus-1-dev libtiff-dev librsvg2-dev libgif-dev libcurl4-openssl-dev libasound2-dev libudev-dev libspectre-dev libpoppler-dev libraw-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libfribidi-dev libexif-dev liblua5.1-0-dev libx11-dev libxcursor-dev libxrender-dev libxrandr-dev libxfixes-dev libxdamage-dev libxcomposite-dev libxss-dev libxp-dev libxext-dev libxinerama-dev libxkbfile-dev libxtst-dev libxcb-shape0-dev libxcb-keysyms1-dev mesa-common-dev
apt-get install libgl1-mesa-dev

for I in eina eet evas embryo ecore eio edje efreet e_dbus \
evas_generic_loaders ethumb eeze emotion elementary; do \
  wget http://download.enlightenment.org/releases/$I-1.7.4.tar.gz; \
done



export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
export CFLAGS="-O3 -fvisibility=hidden -ffast-math"
for I in eina eet evas embryo ecore eio edje efreet e_dbus \
evas_generic_loaders ethumb eeze emotion elementary; do \
  tar zxf $I-1.7.4.tar.gz; \
  cd $I-1.7.4; \
  ./configure --disable-gnutls && make && sudo make install; \
  cd ..; \
done

sudo ldconfig


wget http://download.enlightenment.org/releases/enlightenment-0.17.0.tar.gz
tar zxf enlightenment-0.17.0.tar.gz
cd enlightenment-0.17.0
./configure && make && sudo make install
cd ..

sudo ln -s /usr/local/share/xsessions/enlightenment.desktop /usr/share/xsessions/enlightenment.desktop


  • installer wicd (wifi)

* installer rfkill (pour le wifi)
<pre>
apt-get install rfkill
  • installation du terminal de gnome et de gthumb
apt-get install gnome-terminal gthumb gedit
  • installation de gwenview et kipi plugin
apt-get install gwenview
apt-get install kipi-plugins
  • installation de mplayer (pour les vidéos)
apt-get install mplayer
  • installation d'audacious (pour les mp3)
apt-get install audacious
  • pour le web et les mails:
apt-get install chromium-browser
apt-get install icedove
  • divers - réglage de l'heure
apt-get install ntpdate