Skip to content

Instantly share code, notes, and snippets.

View MartyLake's full-sized avatar

Matthieu Talbot MartyLake

  • Expressive
  • France
View GitHub Profile
@MartyLake
MartyLake / gist:01c42a805e144f759d9b4c4e4cb3e8c4
Created March 14, 2024 19:04
convert ffmpeg video to vertical with overlay
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
set -x
FILTERGRAPH="[0:v]pad=iw:2*trunc(iw*16/18):(ow-iw)/2:(oh-ih)/2[padded];[padded]scale=1080:1920[resized];[resized][1:v]overlay"
echo "nullscr,$FILTERGRAPH,nullsink" | graph2dot
false
for f in $(find input -type f); do
@MartyLake
MartyLake / .envrc
Last active July 11, 2023 09:10
Deal with multiple git identities
export GIT_SSH_COMMAND="ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519_example -F /dev/null"
export GIT_AUTHOR_NAME='example'
export GIT_AUTHOR_EMAIL='example@gmail.com'
export GIT_COMMITTER_NAME='example'
export GIT_COMMITTER_EMAIL='example@gmail.com'
ssh-add -l | grep example || ssh-add ~/.ssh/id_ed25519_example
@MartyLake
MartyLake / unpaper.sh
Created October 9, 2022 22:54
unpaper example
# folder repository
# ./ #<-- destination folder
# ./originals/any.pdf #<-- any number of pdfs to convert, originals
# ./originals/unpaper.sh #<-- this script
# inspired from https://gist.github.com/legumbre/1182280/60c3bfc13b9d89b57fef733f67ad60de2624be6a
set -x
for i in *.pdf; do
gs -q -dNOPAUSE -dBATCH -sDEVICE=ppmraw -sOutputFile=%04d.ppm "$i"
for f in *.ppm; do
@MartyLake
MartyLake / Create an album: Normalize all wav volume and convert all wav to mp3
Last active December 11, 2021 14:08 — forked from championofblocks/wav-mp3
Create an album: Normalize all wav volume and convert all wav to mp3
# dont normalize here if songs have different intensity, for example quiet intro song followed by loud pop song
# from http://normalize.nongnu.org/README.html
# normalize -bv *.wav
# from https://gist.github.com/championofblocks/3982727
for i in *.wav; do lame -b 320 -h "${i}" "${i%.wav}.mp3"; done
# from https://askubuntu.com/questions/65331/how-to-convert-a-m4a-sound-file-to-mp3
# + https://askubuntu.com/questions/385636/what-is-the-proper-way-to-convert-flac-files-to-320-kbit-sec-mp3
find . -type f -name '*.m4a' -exec bash -c 'avconv -i "$0" -qscale:a 0 "${0/%m4a/mp3}"' '{}' \;
@MartyLake
MartyLake / crontab
Last active November 17, 2021 22:39
docker-compose
# check if all docker-compose containers are properly running
bash -c "(diff <(cd /srv && /usr/bin/local/docker-compose ps --services --filter "status=running") <(cd /srv && /usr/bin/local/docker-compose ps --services) || /usr/bin/local/docker-compose up -d) >> /var/log/crontab-root-dbg.log"
@MartyLake
MartyLake / .local.vimrc
Last active February 12, 2021 22:16
.local.vimrc
"call make from the root folder
let &l:makeprg = 'cd ' . expand('<sfile>:p:h') . ' && make'
augroup fix_path_for_catch2_output_results
autocmd!
au QuickFixCmdPre * lcd <sfile>:p:h/build
augroup END
@MartyLake
MartyLake / readme.md
Created November 7, 2018 13:13
compile_commands.json
@MartyLake
MartyLake / compile_commands_to_gtags_files.sh
Last active November 26, 2019 14:34
convert compile_commands.json to gtags.files
[ -f "compile_commands.json" ] || echo "compile_commands.json not found." ; return -1
grep '"file"' compile_commands.json | sed -E 's/.*"..\/..\/..\/(.*)",/\1/' > gtags.files
global -u
@MartyLake
MartyLake / generate_compile_commands.py
Created September 27, 2019 12:56
Generate compile_commands.json from a cmakelists.txt file
""" a big WIP, as I discovered that VS2019 supports the export """
import os
import subprocess
import shutil
import contextlib
import tempfile
SRC_DIR=(os.path.dirname(os.path.realpath(__file__)))
@contextlib.contextmanager
@MartyLake
MartyLake / .vimrc
Last active March 22, 2019 17:35
bootstrap script to generate compile_commands.json and clang complete on project that uses cmake and vim
" only use linters that uses compile_commands.json
let g:ale_linters.cpp = ['clangcheck', 'clangtidy', 'cppcheck']
" various options for clang_complete
set concealcursor=inv
let g:clang_snippets = 1
set completeopt=menu,longest
let g:clang_complete_optional_args_in_snippets = 1
let g:clang_trailing_placeholder = 1