diff --git a/.bash_profile b/.bash_profile index e5bfb29..06c8d69 100644 --- a/.bash_profile +++ b/.bash_profile @@ -29,6 +29,8 @@ export PAGER=less export MAKEFLAGS='-j' +export PASSWORD_STORE_ENABLE_EXTENSIONS=true + export DOCKER_BUILDKIT=0 # i/o timeout export DOCKER_HOST="unix://$XDG_RUNTIME_DIR/podman/podman.sock" diff --git a/.config/aerc/accounts.conf b/.config/aerc/accounts.conf index cac45c4..da1d582 100644 --- a/.config/aerc/accounts.conf +++ b/.config/aerc/accounts.conf @@ -1,3 +1,14 @@ +[duhayon] +source = imaps://ange@duhayon.com@ssl0.ovh.net +source-cred-cmd = pass show duhayoncom/ange@duhayon.com | head -n1 +outgoing = smtps://ange@duhayon.com@ssl0.ovh.net +outgoing-cred-cmd = pass show duhayoncom/ange@duhayon.com | head -n1 +default = INBOX +from = "Ange DUHAYON" +cache-headers = true +copy-to = INBOX.INBOX.Sent +signature-file = ~/.config/aerc/signature.txt + [yw5n] source = imaps://ange@yw5n.com@ssl0.ovh.net source-cred-cmd = pass show yw5ncom/ange@yw5n.com | head -n1 @@ -10,14 +21,3 @@ copy-to = Sent signature-file = ~/.config/aerc/signature.txt pgp-auto-sign = true pgp-opportunistic-encrypt = true - -[duhayon] -source = imaps://ange@duhayon.com@ssl0.ovh.net -source-cred-cmd = pass show duhayoncom/ange@duhayon.com | head -n1 -outgoing = smtps://ange@duhayon.com@ssl0.ovh.net -outgoing-cred-cmd = pass show duhayoncom/ange@duhayon.com | head -n1 -default = INBOX -from = "Ange DUHAYON" -cache-headers = true -copy-to = INBOX.INBOX.Sent -signature-file = ~/.config/aerc/signature.txt diff --git a/.config/bash/11-docker.bash b/.config/bash/11-docker.bash index d713029..4481c2e 100644 --- a/.config/bash/11-docker.bash +++ b/.config/bash/11-docker.bash @@ -65,7 +65,8 @@ alias dc='docker-compose' \ dcup='docker-compose up' \ dcupb='docker-compose up --build' \ dcupd='docker-compose up -d' \ - dcupdb='docker-compose up -d --build' + dcupdb='docker-compose up -d --build' \ + dcw='docker-compose watch' function dkb() { local name="${1:-${PWD##*/}}"; shift diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 06b4723..567eb08 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -6,16 +6,12 @@ vim.opt.tabstop = 4 vim.opt.cino = "(s" vim.g.python_indent = { open_paren = "shiftwidth()" } vim.opt.list = true -vim.opt.listchars = { - tab = "> ", - trail = "-", - nbsp = "+", -} +vim.opt.listchars = { tab = "> ", trail = "-", nbsp = "+" } vim.opt.number = true vim.opt.relativenumber = true vim.opt.laststatus = 3 vim.opt.guicursor = "" -vim.opt.mousemodel = extend +vim.opt.mousemodel = "extend" vim.opt.path = vim.o.path .. ",**" vim.opt.suffixes = vim.o.suffixes .. ",.pyc,.hi" vim.opt.foldmethod = "indent" @@ -41,3 +37,5 @@ vim.api.nvim_create_autocmd({ "BufWinEnter" }, { callback = function() vim.opt_local.listchars = vim.o.listchars .. ",leadmultispace:│" .. string.rep(" ", vim.o.shiftwidth - 1) end }) + +vim.keymap.set("x", " ", "'<,'>!tr -s ' ' | column -t -s '|' -o '|'") diff --git a/.config/nvim/pack/plugins/opt/telescope b/.config/nvim/pack/plugins/opt/telescope index eae0d8f..df534c3 160000 --- a/.config/nvim/pack/plugins/opt/telescope +++ b/.config/nvim/pack/plugins/opt/telescope @@ -1 +1 @@ -Subproject commit eae0d8fbde590b0eaa2f9481948cd6fd7dd21656 +Subproject commit df534c3042572fb958586facd02841e10186707c diff --git a/.config/nvim/pack/plugins/opt/treesitter b/.config/nvim/pack/plugins/opt/treesitter index d1e1f17..bab7b0f 160000 --- a/.config/nvim/pack/plugins/opt/treesitter +++ b/.config/nvim/pack/plugins/opt/treesitter @@ -1 +1 @@ -Subproject commit d1e1f17cea23f14cbe230635b9bb654a835f02d7 +Subproject commit bab7b0f20bd3e805b77231a77f516c7d69382693 diff --git a/.local/bin/arch b/.local/bin/arch deleted file mode 100755 index a19d92c..0000000 --- a/.local/bin/arch +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -e - -podman run --rm -it -v "$PWD:/mnt/" -w /mnt/ docker.io/archlinux/archlinux:base diff --git a/.local/bin/ddev b/.local/bin/ddev new file mode 100755 index 0000000..c94cd96 --- /dev/null +++ b/.local/bin/ddev @@ -0,0 +1,16 @@ +#!/bin/bash -e + +declare -A aliases +aliases=( + [arch]=archlinux/archlinux:base + [debian]=debian:12-slim +) + +if [ -z "$1" ]; then + exit 1 +fi + +img="${aliases[$1]:-$1:latest}" + +set -x +podman run --rm -it -v "$PWD:/mnt/" -w /mnt/ "docker.io/$img" diff --git a/.local/bin/debian b/.local/bin/debian deleted file mode 100755 index 3a25af4..0000000 --- a/.local/bin/debian +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -e - -podman run --rm -it -v "$PWD:/mnt/" -w /mnt/ docker.io/debian:12-slim diff --git a/.local/bin/fedora b/.local/bin/fedora deleted file mode 100755 index 0b06b8a..0000000 --- a/.local/bin/fedora +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -e - -podman run --rm -it -v "$PWD:/mnt/" -w /mnt/ docker.io/fedora:40 diff --git a/.local/bin/ffreduce b/.local/bin/ffreduce index e8e645c..34af8b4 100755 --- a/.local/bin/ffreduce +++ b/.local/bin/ffreduce @@ -2,7 +2,7 @@ in="$1"; shift out="$1"; shift -smalside="${1:-480}"; shift || true +smallside="${1:-720}"; shift || true if ! [ -r "$in" ]; then echo "error: can't read '$in'" >&2 @@ -15,5 +15,5 @@ if [ -z "$out" ]; then fi set -x -#ffmpeg -i "$in" -r 24 -vcodec libx265 -vf "scale=-2:$smalside,setpts=0.5*PTS" "$@" "$out" -ffmpeg -i "$in" -r 24 -vcodec libx265 -vf "scale=-2:$smalside" "$@" "$out" +#ffmpeg -i "$in" -r 24 -vcodec libx265 -vf "scale=-2:$smallside,setpts=0.5*PTS" "$@" "$out" +ffmpeg -i "$in" -r 24 -vcodec libx265 -vf "scale=-2:$smallside" "$@" "$out" diff --git a/.local/bin/passinfo b/.local/bin/passinfo deleted file mode 100755 index 603fc5b..0000000 --- a/.local/bin/passinfo +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -e - -pass show "$(cat /tmp/passselect)" | less diff --git a/.local/bin/passopen b/.local/bin/passopen deleted file mode 100755 index e59101e..0000000 --- a/.local/bin/passopen +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -e - -xdg-open \ - "$(pass show "$(cat /tmp/passselect)" | sed -n '/^URL:/{s/URL:\s*//p;q}')" diff --git a/.local/bin/passotp b/.local/bin/passotp deleted file mode 100755 index c4181b0..0000000 --- a/.local/bin/passotp +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -e - -xdotool type --clearmodifiers --delay 0 "$(pass otp "$(cat /tmp/passselect)")" diff --git a/.local/bin/passpass b/.local/bin/passpass deleted file mode 100755 index f8151ab..0000000 --- a/.local/bin/passpass +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -e - -xdotool type --clearmodifiers --delay 0 \ - "$(pass show "$(cat /tmp/passselect)" | head -n1 -)" diff --git a/.local/bin/passselect b/.local/bin/passselect deleted file mode 100755 index 0efdeb5..0000000 --- a/.local/bin/passselect +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -e - -shopt -s nullglob globstar - -prefix="${PASSWORD_STORE_DIR-"$HOME"/.password-store}" -password_files=("$prefix"/**/*.gpg) -password_files=("${password_files[@]#"$prefix"/}") -password_files=("${password_files[@]%.gpg}") - -password_file="$(printf '%s\n' "${password_files[@]}" | dmenu "$@")" - -[ -n "$password_file" ] || exit - -echo "$password_file" > /tmp/passselect diff --git a/.local/bin/passuser b/.local/bin/passuser deleted file mode 100755 index 4cfc53e..0000000 --- a/.local/bin/passuser +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -e - -xdotool type --clearmodifiers --delay 0 \ - "$(pass show "$(cat /tmp/passselect)" | sed -n '/^Username:/{s/Username:\s*//p;q}')" diff --git a/.local/bin/sbar b/.local/bin/sbar index 0f43b18..719c410 100755 --- a/.local/bin/sbar +++ b/.local/bin/sbar @@ -108,8 +108,8 @@ echo "$$" > "$HOME/.cache/pidofbar" sec=0 while true; do - [ "$((sec % 300))" = 10 ] && update_crypto - [ "$((sec % 10))" = 0 ] && { + [ "$((sec % 300))" -eq 5 ] && update_crypto + [ "$((sec % 5))" -eq 0 ] && { update_cpu update_memory update_sink_vol @@ -119,7 +119,7 @@ while true; do update_time display } - ((sec += 10)) - awk "@load \"time\"; BEGIN {d=10; s=$(date '+%S.%N'); sleep(d - s % d)}" & + ((sec += 5)) + awk "@load \"time\"; BEGIN {d=5; s=$(date '+%S.%N'); sleep(d - s % d)}" & wait done diff --git a/.local/share/bash-completion/completions/ddev b/.local/share/bash-completion/completions/ddev new file mode 100644 index 0000000..20ab2db --- /dev/null +++ b/.local/share/bash-completion/completions/ddev @@ -0,0 +1,14 @@ +function _ddev() { + # limited to 100 images + for i in {1..5}; do + URL="https://hub.docker.com/v2/repositories/library/?page=$i&page_size=100" + mapfile -t res < <(compgen -W \ + "$(curl -sfL "$URL" | jq -r '.results[].name')" \ + -- "${COMP_WORDS[1]}") + if [ -z "${res[0]}" ]; then + break + fi + COMPREPLY+=("${res[@]}") + done +} +complete -F _ddev ddev diff --git a/.var/app/org.mozilla.firefox/.mozilla/firefox/ange/chrome/userChrome.css b/.var/app/org.mozilla.firefox/.mozilla/firefox/ange/chrome/userChrome.css index 1370693..2d16d22 100644 --- a/.var/app/org.mozilla.firefox/.mozilla/firefox/ange/chrome/userChrome.css +++ b/.var/app/org.mozilla.firefox/.mozilla/firefox/ange/chrome/userChrome.css @@ -3,6 +3,10 @@ padding: 0px !important; } -.tabbrowser-tab .tab-close-button { +.tab-close-button { visibility: collapse !important; } + +#alltabs-button { + display: none !important; +} diff --git a/.var/app/org.mozilla.firefox/.mozilla/firefox/ange/user.js b/.var/app/org.mozilla.firefox/.mozilla/firefox/ange/user.js index d287637..9f13a3d 100644 --- a/.var/app/org.mozilla.firefox/.mozilla/firefox/ange/user.js +++ b/.var/app/org.mozilla.firefox/.mozilla/firefox/ange/user.js @@ -9,7 +9,6 @@ user_pref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcu user_pref("browser.newtabpage.enabled", false); user_pref("browser.preferences.moreFromMozilla", false); user_pref("browser.privatebrowsing.vpnpromourl", ""); -user_pref("browser.tabs.tabmanager.enabled", false); user_pref("browser.topsites.contile.cachedTiles", ""); user_pref("browser.urlbar.update2.engineAliasRefresh", true); user_pref("datareporting.healthreport.uploadEnabled", false); @@ -34,25 +33,15 @@ user_pref("toolkit.telemetry.pioneer-new-studies-available", false); // user preferences user_pref("browser.startup.homepage", "chrome://browser/content/blanktab.html"); user_pref("browser.startup.page", 3); +user_pref("browser.tabs.hoverPreview.showThumbnails", false); user_pref("browser.tabs.inTitlebar", 0); user_pref("browser.toolbars.bookmarks.visibility", "newtab"); //user_pref("browser.translations.enable", false); -user_pref("browser.uiCustomization.state", "{\"placements\":{\"widget-overflow-fixed-list\":[],\"unified-extensions-area\":[],\"nav-bar\":[\"back-button\",\"forward-button\",\"stop-reload-button\",\"urlbar-container\",\"downloads-button\",\"fxa-toolbar-menu-button\",\"unified-extensions-button\",\"ublock0_raymondhill_net-browser-action\"],\"toolbar-menubar\":[\"menubar-items\"],\"TabsToolbar\":[\"tabbrowser-tabs\",\"alltabs-button\"],\"PersonalToolbar\":[\"personal-bookmarks\"]},\"currentVersion\":20,\"newElementCount\":3}"); +user_pref("browser.uiCustomization.state", "{\"placements\":{\"nav-bar\":[\"back-button\",\"forward-button\",\"stop-reload-button\",\"urlbar-container\",\"downloads-button\"],\"toolbar-menubar\":[\"menubar-items\"],\"TabsToolbar\":[\"tabbrowser-tabs\"],\"PersonalToolbar\":[\"personal-bookmarks\"]},\"currentVersion\":20}"); user_pref("browser.zoom.siteSpecific", false); user_pref("media.autoplay.blocking_policy", 2); user_pref("media.autoplay.default", 1); - -user_pref("privacy.clearOnShutdown.cache", false); -user_pref("privacy.clearOnShutdown.cookies", true); -user_pref("privacy.clearOnShutdown.downloads", false); -user_pref("privacy.clearOnShutdown.formdata", true); -user_pref("privacy.clearOnShutdown.history", false); -user_pref("privacy.clearOnShutdown.offlineApps", true); -user_pref("privacy.clearOnShutdown.openWindows", false); -user_pref("privacy.clearOnShutdown.sessions", true); -user_pref("privacy.clearOnShutdown.siteSettings", false); - -//user_pref("privacy.clearOnShutdown_v2.cache", false); -//user_pref("privacy.clearOnShutdown_v2.cookiesAndStorage", false); -//user_pref("privacy.clearOnShutdown_v2.historyFormDataAndDownloads", false); -//user_pref("privacy.clearOnShutdown_v2.siteSettings", false); +user_pref("privacy.clearOnShutdown_v2.cache", false); +user_pref("privacy.clearOnShutdown_v2.cookiesAndStorage", true); +user_pref("privacy.clearOnShutdown_v2.historyFormDataAndDownloads", false); +user_pref("privacy.clearOnShutdown_v2.siteSettings", true);