Add configuration files

This commit is contained in:
Yorick Barbanneau 2023-03-07 21:30:31 +01:00
parent 73b1ebe491
commit 0f125a7d4f
12 changed files with 658 additions and 0 deletions

78
files/bin/create_conf.sh Executable file
View file

@ -0,0 +1,78 @@
#!/usr/bin/env bash
test=""
base_dir="${HOME}/medias/videos/sambab"
conf="$*"
key_UUID="0564-A865"
#key_UUID="188E-29AA"
printf "Creation de la conférence de %s\n" "$conf"
cd ~/medias/videos/sambab || exit 1
#Get las friday date for creating folder
friday=$(date --date='last Friday' +"%Y.%m.%d")
#Add basedir, then I have my directory
folder="${base_dir}/${friday}-${conf// /_}"
#create it
mkdir "${folder}"/{rushes,audio,titles} -p || {
echo " - >Error !";
exit 1;
}
cp "${base_dir}/logo_amis.svg" "${folder}/titles" || { echo "error on SVG copy"; exit 1; }
cp "${base_dir}/template.kdenlive" "${folder}/montage.kdenlive" || { echo "error on template copy"; exit 1; }
inkscape_date=$(LANG=fr_FR.UTF-8 date --date='last Friday' +"%A %d %B %Y")
echo "Put Name on title"
sed -i "s/\[\[conf\]\]/${conf//_/ }/g" ${folder}/titles/logo_amis.svg || {
echo " ->Error !";
exit 1;
}
echo "Put date on tile"
sed -i "s/\[\[date\]\]/${inkscape_date}/g" ${folder}/titles/logo_amis.svg || {
echo " ->Error !";
exit 1;
}
echo "Importing PNG File in ${folder}/montage.kdenlive"
sed -i "s#\[\[logo\]\]#${folder}/titles/logo_amis.png#g" "${folder}"/montage.kdenlive || {
>&2 echo " ->Error !";
exit 1;
}
echo "Export SVG title"
inkscape --export-type="png" "${folder}/titles/logo_amis.svg" || {
echo " ->Error !";
exit 1;
}
echo "Mount USBkey with UUID $key_UUID"
usb_key="/dev/$(lsblk -o KNAME,UUID | grep ${key_UUID} | awk '{print $1}')"
[[ ! $usb_key = "/dev/" ]] || {
>&2 echo " -> Error getting device name, is USB key plugged? $usb_key";
exit 1;
}
disk="$(udisksctl mount -b ${usb_key} | awk '{print $4}')"
sleep 1
[[ -n $disk ]] || {
>&2 echo " -> Error mounting device $usb_key";
exit 1
}
echo "Copy files from USB key"
mv ${disk}/$(date --date='last Friday' +'%Y-%m-%d')\ *.mkv "${folder}/rushes/" || {
>&2 echo " -> Error moving video file!";
exit 1;
}
mv ${disk}/RECORD/EXREC/*.MP3 "${folder}/audio/" || {
>&2 echo " -> Error moving audio file!";
exit 1;
}
udisksctl unmount -b ${usb_key}
exit 0

11
files/bin/import-gsettings Executable file
View file

@ -0,0 +1,11 @@
#!/bin/sh
# usage: import-gsettings <gsettings key>:<settings.ini key> <gsettings key>:<settings.ini key> ...
expression=""
for pair in "$@"; do
IFS=:; set -- $pair
expressions="$expressions -e 's:^$2=(.*)$:gsettings set org.gnome.desktop.interface $1 \"\1\":e'"
done
IFS=
eval exec sed --debug -E $expressions "${XDG_CONFIG_HOME:-$HOME/.config}"/gtk-3.0/settings.ini

36
files/bin/launcher.sh Executable file
View file

@ -0,0 +1,36 @@
#!/bin/bash
# terminal application launcher for sway, using fzf
# inspired by https://github.com/Biont/sway-launcher-desktop
set -o pipefail
shopt -s nullglob globstar
HIST_FILE="${XDG_CACHE_HOME:-$HOME/.cache}/sway-launcher-history.txt"
export FZF_DEFAULT_OPTS="--layout=reverse --no-extended --print-query --no-sort"
[ ! -f "$HIST_FILE" ] && touch {"$HIST_FILE"
# Create fifo for populate fzf in async mode
FZFPIPE=$(mktemp -u)
mkfifo "$FZFPIPE"
trap 'rm "$FZFPIPE"' EXIT INT
#retrieve history and pipe it into our fifo
readarray HIST_LINES <"$HIST_FILE"
(printf '%s' "${HIST_LINES[@]#* }" >>"$FZFPIPE") &
# Get command, if empty exit
command=$(fzf <"$FZFPIPE" | tail -n1 || exit 1)
[[ "$command" == "" ]] && exit 0
# Update history
index=$(printf '%s' "${HIST_LINES[@]}" | grep -n -Pe "^[0-9]+ ${command}$" | awk -F ':' '{print $1-1}')
if [ -n "$index" ]; then
occurences=${HIST_LINES[$index]%% *}
occurences=$((occurences + 1))
HIST_LINES[$index]="${occurences} ${command}"$'\n'
else
HIST_LINES+=("1 $command"$'\n')
fi
printf '%s' "${HIST_LINES[@]}" | sort --numeric-sort --reverse > "$HIST_FILE"
swaymsg -t command exec "$command"
exit 0

3
files/bin/netflix Executable file
View file

@ -0,0 +1,3 @@
#!/bin/sh
exec qutebrowser -C ~/.config/qutebrowser/config.py -B ~/.local/share/qutebrowser-apps/netflix

3
files/bin/sway.sh Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash
sway

36
files/cmus/notify.sh Executable file
View file

@ -0,0 +1,36 @@
#!/bin/bash
#
#CMUS notification
#
options="--app-name=cmus"
body=""
while [ "$#" -ge 2 ]
do
eval $1='$2'
shift
shift
done
filename=${file##*/}
image=${file%/*}/cover.jpg
[ -f "$image" ] && options="$options -i ${image}"
title=${title:-$filename}
if [ -n "$artist" ]
then
body="$body <i>$artist</i>\n"
fi
if [ -n "$album" ]
then
body="$body $album"
fi
if [ -n "$date" ]
then
body="$body ${date%%-*}"
fi
body=${body:-'no informations'}
notify-send $options "$title" "$body"

56
files/cmus/rc Normal file
View file

@ -0,0 +1,56 @@
## Base16 Default Dark
# overall background and foreground color
set color_win_fg=7
set color_win_bg=0
# bottom status line
set color_statusline_fg=20
set color_statusline_bg=19
# bottom title line
set color_titleline_fg=7
set color_titleline_bg=18
# top title area
set color_win_title_fg=20
set color_win_title_bg=19
set color_win_title_attr=bold
# command-line colors
set color_cmdline_bg=default
set color_cmdline_fg=default
set color_error=1
set color_info=6
# separator of windows
# should be black
set color_separator=16
# unselected currently playing track's text
set color_win_cur=13
# active selection for currently playing track
set color_win_cur_sel_bg=20
set color_win_cur_sel_fg=0
set color_win_cur_sel_attr=none
# inactive selection for currently playing track
set color_win_inactive_cur_sel_bg=8
set color_win_inactive_cur_sel_fg=21
# active selection
set color_win_sel_bg=6
set color_win_sel_fg=0
set color_win_sel_attr=none
# inactive selection
set color_win_inactive_sel_bg=19
set color_win_inactive_sel_fg=20
# directory listing color
set color_win_dir=default
set status_display_program=~/.config/cmus/notify.sh
add -l ~/medias/music

View file

@ -0,0 +1,16 @@
[Settings]
gtk-theme-name=Arc-Darker-solid
gtk-font-name=DejaVu Sans 12
gtk-cursor-theme-name=Adwaita
gtk-cursor-theme-size=0
gtk-button-images=0
gtk-menu-images=0
gtk-icon-theme-name=Papirus-Dark
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=none

View file

@ -0,0 +1,10 @@
[Unit]
Description=Import Gsettings from GTK ini file
[Service]
Type=oneshot
ExecStart=%h/.local/bin/import-gsettings
RemainAfterExit=yes
[Install]
WantedBy=sway-session.target

335
files/vifm/vifmrc Normal file
View file

@ -0,0 +1,335 @@
" vim: filetype=vifm :
" Sample configuration file for vifm (last updated: 8 August, 2022)
" You can edit this file by hand.
" The " character at the beginning of a line comments out the line.
" Blank lines are ignored.
" The basic format for each item is shown with an example.
" ------------------------------------------------------------------------------
" Main settings
" ------------------------------------------------------------------------------
" Command used to edit files in various contexts. The default is vim.
" If you would like to use another vi clone such as Elvis or Vile
" you will need to change this setting.
if executable('vim')
set vicmd=vim
elseif executable('nvim')
set vicmd=nvim
elseif executable('elvis')
set vicmd=elvis\ -G\ termcap
elseif executable('vile')
set vicmd=vile
elseif $EDITOR != ''
echo 'Note: using `'.$EDITOR.'` as an editor'
let &vicmd = $EDITOR
endif
" This makes vifm perform file operations on its own instead of relying on
" standard utilities like `cp`. While using `cp` and alike is a more universal
" solution, it's also much slower when processing large amounts of files and
" doesn't support progress measuring.
set syscalls
" Trash Directory
" The default is to move files that are deleted with dd or :d to
" the trash directory. If you change this you will not be able to move
" files by deleting them and then using p to put the file in the new location.
" I recommend not changing this until you are familiar with vifm.
" This probably shouldn't be an option.
set trash
" What should be saved automatically on restarting vifm. Drop "savedirs"
" value if you don't want vifm to remember last visited directories for you.
set vifminfo=dhistory,chistory,state,tui,shistory,
\phistory,fhistory,dirstack,registers,bookmarks,bmarks
" This is how many directories to store in the directory history.
set history=100
" Automatically resolve symbolic links on l or Enter.
set nofollowlinks
" Natural sort of (version) numbers within text.
set sortnumbers
" Maximum number of changes that can be undone.
set undolevels=100
" Use Vim's format of help file (has highlighting and "hyperlinks").
" If you would rather use a plain text help file set novimhelp.
set vimhelp
" If you would like to run an executable file when you
" press Enter, l or Right Arrow, set this.
set norunexec
" List of color schemes to try (picks the first one supported by the terminal)
colorscheme Zenburn
" Format for displaying time in file list. For example:
" TIME_STAMP_FORMAT=%m/%d-%H:%M
" See man date or man strftime for details.
set timefmt='%Y/%m/%d %H:%M'
" Show list of matches on tab completion in command-line mode
set wildmenu
" Display completions in a form of popup with descriptions of the matches
set wildstyle=popup
" Display suggestions in normal, visual and view modes for keys, marks and
" registers (at most 5 files). In other view, when available.
set suggestoptions=normal,visual,view,otherpane,keys,marks,registers
" Ignore case in search patterns unless it contains at least one uppercase
" letter
set ignorecase
set smartcase
" Don't highlight search results automatically
set nohlsearch
" Use increment searching (search while typing)
set incsearch
" Try to leave some space from cursor to upper/lower border in lists
set scrolloff=4
" Don't do too many requests to slow file systems
if !has('win')
set slowfs=curlftpfs
endif
set milleroptions=lsize:1,csize:1,rsize:1,rpreview:all
" set custom status line look
set statusline=" Hint: %z%= %A %10u:%-7g %15s %20d "
"------------------------------------------------------------------------------
" Bookmarks
" ------------------------------------------------------------------------------
" :mark mark /full/directory/path [filename]
mark b ~/.local/bin/
mark h ~/
" ------------------------------------------------------------------------------
" Commands
" ------------------------------------------------------------------------------
" :com[mand][!] command_name action
"
" These are some of the macros that can be used in the action part:
" %a for user arguments
" %c for current file under the cursor
" %C for current file under the cursor of inactive pane
" %f for selected file(s)
" %F for selected file(s) of inactive pane
" %b is the same as %f %F
" %d for current directory name
" %D for current directory name of inactive pane
" %r{x} for list of files in register {x}
" %m runs the command in a menu window
" %u uses command's output to build a file list
" see `:help vifm-macros` and `:help vifm-filename-modifiers` for more
command! df df -h %m 2> /dev/null
command! diff vim -d %f %F
command! zip zip -r %c.zip %f
command! run !! ./%f
command! make !!make %a
command! mkcd :mkdir %a | cd %a
command! vgrep vim "+grep %a"
command! reload :write | restart full
" ------------------------------------------------------------------------------
" File types association
" ------------------------------------------------------------------------------
" :filetype pattern1,pattern2 defaultprogram,program2
" :fileviewer pattern1,pattern2 consoleviewer
"
" The first entry is the default program to be used with a matching file.
" The other programs for the file type can be accessed via :file command.
" The command macros like %f, %F, %d, %D may be used in the commands.
" The %a macro is ignored. To use a % you must put %%.
" Spaces in an app name must be escaped, for example: QuickTime\ Player.app
" For automated FUSE mounts, you must register an extension with :file[x]type
" in one of the following formats:
"
" :filetype patterns FUSE_MOUNT|mount_cmd %SOURCE_FILE %DESTINATION_DIR
"
" %SOURCE_FILE and %DESTINATION_DIR are filled in at runtime.
"
" Example:
" :filetype *.zip,*.[jwe]ar FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
"
" :filetype patterns FUSE_MOUNT2|mount_cmd %PARAM %DESTINATION_DIR
"
" %PARAM and %DESTINATION_DIR are filled in at runtime.
"
" Example:
" :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
"
" %PARAM value is the first line of the matched file, example: root@127.0.0.1:/
"
" You can also add %CLEAR if you want to clear screen before running FUSE
" program. There is also %FOREGROUND, which is useful for entering passwords.
fileviewer .*/,*/ ls --group-directories-first --classify --color %c
fileviewer {*.pdf},<application/pdf> pdftotext -nopgbrk %c -
fileviewer {*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm},<image/*>
\ chafa -f sixel -s %pwx%ph %c:p %pd %N 2>/dev/null
fileviewer *.zip,*.jar,*.war,*.ear,*.oxt tar -tf %f
fileviewer *.tgz,*.tar.gz tar -tzf %c
fileviewer *.tar.bz2,*.tbz2 tar -tjf %c
fileviewer *.tar.xz,*.txz tar -tJf %c
fileviewer *.tar.zst,*.tzst tar -t --zstd -f %c
fileviewer {*.tar},<application/x-tar> tar -tf %c
" rar archives
fileviewer {*.rar},<application/x-rar> unrar v %c
fileviewer {*.7z},<application/x-7z-compressed> 7z l %c
fileviewer <text/*> highlight -O xterm256 -s base16/default-dark %c
filetype * xdg-open
" Customize view columns a bit (enable ellipsis for truncated file names)
set viewcolumns=-{name}..,6{}.
" Show vertical border
set fillchars=vborder:│
" Filter-out build and temporary files
" filter! {*.lo,*.o,*.d,*.class,*.pyc,*.pyo,.*~}
" ------------------------------------------------------------------------------
" Sample keyboard mappings
" ------------------------------------------------------------------------------
" Start shell in current directory
nnoremap s :shell<cr>
" Display sorting dialog
nnoremap S :sort<cr>
" Toggle visibility of preview window
nnoremap w :view<cr>
vnoremap w :view<cr>gv
if $DISPLAY && executable('gvim')
" Open file in existing instance of gvim
nnoremap o :!gvim --remote-tab-silent %f<cr>
" Open file in new instance of gvim
nnoremap O :!gvim %f<cr>
endif
" Open file in the background using its default program
nnoremap gb :file &<cr>l
" Interaction with system clipboard
if has('win')
" Yank current directory path to Windows clipboard with forward slashes
nnoremap yp :!echo %"d:gs!\!/! %i | clip<cr>
" Yank path to current file to Windows clipboard with forward slashes
nnoremap yf :!echo %"c:gs!\!/! %i | clip<cr>
elseif $WAYLAND_DISPLAY
if executable('wl-copy')
" Yank current directory path into primary and selection clipboards
nnoremap yd :!echo -n %d | wl-copy %i &&
\ echo -n %d | wl-copy -p %i<cr>
" Yank current file path into into primary and selection clipboards
nnoremap yf :!echo -n %c:p | wl-copy %i &&
\ echo -n %c:p | wl-copy -p %i<cr>
endif
elseif $DISPLAY
if executable('xclip')
" Yank current directory path into the clipboard
nnoremap yd :!echo %d | xclip %i<cr>
" Yank current file path into the clipboard
nnoremap yf :!echo %c:p | xclip %i<cr>
elseif executable('xsel')
" Yank current directory path into primary and selection clipboards
nnoremap yd :!echo -n %d | xsel --input --primary %i &&
\ echo -n %d | xsel --clipboard --input %i<cr>
" Yank current file path into into primary and selection clipboards
nnoremap yf :!echo -n %c:p | xsel --input --primary %i &&
\ echo -n %c:p | xsel --clipboard --input %i<cr>
endif
endif
" Mappings for faster renaming
nnoremap I cw<c-a>
nnoremap cc cw<c-u>
nnoremap A cw
" As above, but without the file extension
" nnoremap I cW<c-a>
" nnoremap cc cW<c-u>
" nnoremap A cW
" Open console in current directory
if $DISPLAY && executable('xterm')
nnoremap ,t :!xterm &<cr>
elseif $TERMINAL
nnoremap ,t :!$TERMINAL &<cr>
endif
" Open editor to edit vifmrc and apply settings after returning to vifm
nnoremap ,c :write | edit $MYVIFMRC | restart full<cr>
" Open gvim to edit vifmrc
if $DISPLAY && executable('gvim')
nnoremap ,C :!gvim --remote-tab-silent $MYVIFMRC &<cr>
endif
" Toggle wrap setting on ,w key
nnoremap ,w :set wrap!<cr>
" Example of standard two-panel file managers mappings
nnoremap <f3> :!less %f<cr>
nnoremap <f4> :edit<cr>
nnoremap <f5> :copy<cr>
nnoremap <f6> :move<cr>
nnoremap <f7> :mkdir<space>
nnoremap <f8> :delete<cr>
" Midnight commander alike mappings
" Open current directory in the other pane
nnoremap <a-i> :sync<cr>
" Open directory under cursor in the other pane
nnoremap <a-o> :sync %c<cr>
" Swap panes
nnoremap <c-u> <c-w>x
" ------------------------------------------------------------------------------
" Various customization examples
" ------------------------------------------------------------------------------
" Use ag (the silver searcher) instead of grep
" set grepprg='ag --line-numbers %i %a %s'
" Add additional place to look for executables
" let $PATH = $HOME.'/bin/fuse:'.$PATH
" Block particular shortcut
" nnoremap <left> <nop>
" Export IPC name of current instance as environment variable and use it to
" communicate with the instance later.
"
" It can be used in some shell script that gets run from inside vifm, for
" example, like this:
" vifm --server-name "$VIFM_SERVER_NAME" --remote +"cd '$PWD'"
"
" let $VIFM_SERVER_NAME = v:servername
" Activate screen/tmux support
" screen!
" ------------------------------------------------------------------------------
" Icon decorations example
" ------------------------------------------------------------------------------
" https://github.com/cirala/vifm_devicons

17
files/zsh/.zprofile Executable file
View file

@ -0,0 +1,17 @@
for file in ~/.config/environment.d/*.conf
do
while read -r line
do
varname=${line%=*}
value=${${(e)line#*=}//\"}
export $varname="${value}"
done < $file
done
#notmutch
export NOTMUCH_CONFIG="${HOME}/.config/notmuch/config"
export PATH=~/.local/bin:$PATH
unset DEBUGINFOD_URLS
if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
exec ~/.local/bin/sway.sh
fi

57
files/zsh/.zshrc Executable file
View file

@ -0,0 +1,57 @@
SAVEHIST=10000
HISTSIZE=10000
HISTFILE="$HOME/.local/share/zsh/zhistory"
setopt EXTENDED_HISTORY
setopt APPEND_HISTORY
setopt HIST_FIND_NO_DUPS
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_IGNORE_SPACE
setopt HIST_VERIFY
setopt SHARE_HISTORY
setopt HIST_IGNORE_DUPS
setopt INC_APPEND_HISTORY
setopt HIST_REDUCE_BLANKS
# Activate extended gobbing
setopt extended_glob
# Install Zinit
ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git"
[ ! -d $ZINIT_HOME ] && mkdir -p "$(dirname $ZINIT_HOME)"
[ ! -d $ZINIT_HOME/.git ] && git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME"
source "${ZINIT_HOME}/zinit.zsh"
autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_zinit
zinit ice pick"async.sh" src"scripts/base16-default-dark.sh"
zinit load "chriskempson/base16-shell"
zinit ice wait"1a" lucid
zinit light "zdharma/fast-syntax-highlighting"
# Some completions
zinit ice wait"0" blockf lucid
zinit load "zsh-users/zsh-completions"
# Apply Pure theme
zinit ice pick"async.zsh" src"pure.zsh"
zinit light "sindresorhus/pure"
#Search
zinit light "zdharma/history-search-multi-word"
zinit light "zsh-users/zsh-history-substring-search"
autoload -Uz compinit && compinit
zinit cdreplay -q
# Keymap
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
# dirscolors
if [ -f ~/.dir_colors ]; then
eval `dircolors ~/.dir_colors`
fi