Update dotfiles

This commit is contained in:
Observer of Time 2023-11-15 19:27:45 +02:00
parent 9bdaa1d58e
commit 80da87ad9e
Signed by: chronobserver
GPG Key ID: 8A2DEA1DBAEBCA9E
20 changed files with 136 additions and 122 deletions

View File

@ -57,6 +57,7 @@ export R_HISTFILE="$XDG_STATE_HOME/R/history"
export PERL5LIB="$XDG_DATA_HOME/perl/lib/perl5" export PERL5LIB="$XDG_DATA_HOME/perl/lib/perl5"
export PERL_CPANM_OPT="-l $XDG_DATA_HOME/perl" export PERL_CPANM_OPT="-l $XDG_DATA_HOME/perl"
export PERL_CPANM_HOME="$XDG_DATA_HOME/perl/cpanm" export PERL_CPANM_HOME="$XDG_DATA_HOME/perl/cpanm"
export PERL_LOCAL_LIB_ROOT="$HOME/.local/share/perl"
# }}} # }}}
# Set the paths used by rust {{{ # Set the paths used by rust {{{

@ -1 +1 @@
Subproject commit e5da73fea8e9e7e82d3520834893cf30698b3bf4 Subproject commit 2b36ebbabc4a8d1e4f5bd14485fda21c3c1edeab

View File

@ -110,19 +110,19 @@
</prefer> </prefer>
</alias> </alias>
<!-- Replacements --> <!-- Replacements -->
<alias binding="same"> <alias binding="strong">
<family>Twemoji</family> <family>Twemoji</family>
<default> <default>
<family>Noto Color Emoji</family> <family>Noto Color Emoji</family>
</default> </default>
</alias> </alias>
<alias binding="same"> <alias binding="strong">
<family>Twitter Color Emoji</family> <family>Twitter Color Emoji</family>
<default> <default>
<family>Noto Color Emoji</family> <family>Noto Color Emoji</family>
</default> </default>
</alias> </alias>
<alias binding="same"> <alias binding="strong">
<family>Apple Color Emoji</family> <family>Apple Color Emoji</family>
<default> <default>
<family>Noto Color Emoji</family> <family>Noto Color Emoji</family>
@ -183,9 +183,9 @@
</accept> </accept>
</alias> </alias>
<alias binding="weak"> <alias binding="weak">
<family>Comic Sans</family> <family>Comic Sans MS</family>
<accept> <accept>
<family>Z003</family> <family>Comic Neue</family>
</accept> </accept>
</alias> </alias>
<alias binding="weak"> <alias binding="weak">

View File

@ -149,14 +149,15 @@
pager = less -R pager = less -R
[alias] [alias]
list = shortlog -ns
last = log -1 HEAD last = log -1 HEAD
hist = log --date=short --graph --pretty=log hist = log --date=short --graph --pretty=log
ls = log --date=short --graph --pretty=color --decorate
rev = log --decorate --reverse --no-merges --stat @{1}.. rev = log --decorate --reverse --no-merges --stat @{1}..
amend = commit --amend -uno -a amend = commit --amend -uno -a
wdiff = diff --word-diff wdiff = diff --word-diff
conflicts = diff --name-only --diff-filter=U conflicts = diff --name-only --diff-filter=U
root = rev-parse --show-toplevel root = rev-parse --show-toplevel
head = rev-parse HEAD
shallow = clone --single-branch --depth=1 shallow = clone --single-branch --depth=1
compare = !git log $1...$2 --format=%m\\ %h\\ %s --left-right compare = !git log $1...$2 --format=%m\\ %h\\ %s --left-right
repush = !git commit --amend -a --no-edit && git push --force-with-lease repush = !git commit --amend -a --no-edit && git push --force-with-lease
@ -179,6 +180,10 @@
insteadOf = http://git.disroot.org/ insteadOf = http://git.disroot.org/
insteadOf = @disroot: insteadOf = @disroot:
[url "git@gitlab.archlinux.org:"]
insteadOf = http://gitlab.archlinux.org/
insteadOf = @arch:
[url "aur@aur.archlinux.org:"] [url "aur@aur.archlinux.org:"]
insteadOf = http://aur.archlinux.org/ insteadOf = http://aur.archlinux.org/
insteadOf = @aur: insteadOf = @aur:

View File

@ -2,7 +2,7 @@
f cycle fullscreen f cycle fullscreen
d cycle deinterlace d cycle deinterlace
u cycle video-unscaled U cycle video-unscaled
v cycle sub-visibility v cycle sub-visibility
x cycle sub x cycle sub
X cycle sub down X cycle sub down
@ -22,7 +22,8 @@ MBTN_LEFT_DBL cycle fullscreen
l cycle-values loop-file "inf" "no" l cycle-values loop-file "inf" "no"
L cycle-values loop-playlist "inf" "no" L cycle-values loop-playlist "inf" "no"
V cycle-values video-aspect-override "16:9" "4:3" "-1" V cycle-values video-aspect-override "16:9" "4:3" "-1"
H cycle-values hwdec "no" "auto-copy" H cycle-values hwdec "no" "vaapi"
u cycle-values sub-ass-override "yes" "force" "no" "strip"
# }}} # }}}

View File

@ -87,6 +87,12 @@ hwdec=vaapi
# Specify the video output backend to be used. # Specify the video output backend to be used.
vo=gpu vo=gpu
# Control the accepted graphics API.
# gpu-api=vulkan
#
# Select the GPU context.
# gpu-context=x11vk
# }}} # }}}
# Window {{{ # Window {{{
@ -109,8 +115,20 @@ sub-auto=fuzzy
# Specify extra directories to search for subtitles. # Specify extra directories to search for subtitles.
sub-file-paths=Subs sub-file-paths=Subs
# Specify the position of subtitles on the screen. # Specify the default subtitle font.
sub-pos=99 sub-font="FiraGO Medium"
# }}}
# Profiles {{{
# Restore values when changing profiles.
profile-restore=copy-equal
[anime]
profile-cond="filename:match('%[ASW]') ~= nil"
sub-ass-override=force
sub-font-size=46
# }}} # }}}

View File

@ -13,8 +13,7 @@ get_de_wm() {
get_terminal() { get_terminal() {
((term_run != 1)) && get_term ((term_run != 1)) && get_term
((term_font_run != 1)) && get_term_font terminal="$($term --version)"
terminal="${term^} ($term_font)"
} }
print_info() { print_info() {
@ -28,6 +27,7 @@ print_info() {
info "Theme" theme info "Theme" theme
info "Icons" icons info "Icons" icons
info "Terminal" terminal info "Terminal" terminal
info "Font" term_font
info "CPU" cpu info "CPU" cpu
info "GPU" gpu info "GPU" gpu
info "Memory" memory info "Memory" memory
@ -122,7 +122,7 @@ gtk3=on
# Website to ping for the public IP # Website to ping for the public IP
# Values: 'url' # Values: 'url'
public_ip_host='https://v4.ident.me' public_ip_host='https://am.i.mullvad.net/ip'
# Public IP timeout. # Public IP timeout.
# Values; 'int' # Values; 'int'
@ -164,4 +164,4 @@ memory_display=off
battery_display=bar battery_display=bar
disk_display=off disk_display=off
# vim:ft=sh: # vim:ft=bash:

@ -1 +1 @@
Subproject commit 46de54cecae3b131117c9f0d88dce80ae6728450 Subproject commit 7aa06d8155f29d446a91d8707a24ecfcf97a4aa6

View File

@ -13,19 +13,16 @@ let &linebreak = v:true
let &packpath = '' let &packpath = ''
let s:packer = stdpath('data').'/site/pack/packer/' let s:packer = $XDG_DATA_HOME..'/nvim/site/pack/packer/'
let &runtimepath = let &runtimepath =
\ '/usr/share/nvimpager/runtime,'. \ '/usr/share/nvimpager/runtime,'.
\ '/usr/share/nvim/runtime,'. \ '/usr/share/nvim/runtime,'.
\ '/usr/share/vim/vimfiles,'. \ '/usr/share/vim/vimfiles,'.
\ s:packer.'start/nvim-treesitter,'.
\ s:packer.'opt/gruvbox.nvim' \ s:packer.'opt/gruvbox.nvim'
" \ s:packer.'start/nvim-treesitter'
lua <<EOF " lua dofile(vim.env.XDG_CONFIG_HOME..'/nvim/lua/config/treesitter.lua')
local config = vim.fn.stdpath('config')
dofile(config..'/lua/config/treesitter.lua')
EOF
if $TERM !=# 'linux' if $TERM !=# 'linux'
let &termguicolors = v:true let &termguicolors = v:true
@ -38,15 +35,12 @@ endif
vnoremap <C-c> "+y vnoremap <C-c> "+y
vnoremap <C-Insert> "+y vnoremap <C-Insert> "+y
hi String cterm=NONE gui=NONE hi String cterm=NONE gui=NONE
hi Special cterm=NONE gui=NONE hi Special cterm=NONE gui=NONE
hi Comment cterm=italic gui=italic hi Comment cterm=italic gui=italic
hi Visual ctermbg=237 guibg=#3A3A3A hi Visual ctermbg=237 guibg=#3A3A3A
hi MatchParen ctermbg=236 guibg=#303030 hi MatchParen ctermbg=236 guibg=#303030
hi Todo ctermfg=179 guifg=#D7AF5F hi Todo ctermfg=179 guifg=#D7AF5F
hi diffRemoved ctermfg=9 guifg=#FF0000
hi! link Operator GruvboxGreen hi diffAdded ctermfg=40 guifg=#00D700
hi diffChanged ctermfg=172 guifg=#D78700
hi NvimPagerFG_red_BG_ ctermfg=9 guifg=#FF0000
hi NvimPagerFG_green_BG_ ctermfg=40 guifg=#00D700
hi NvimPagerFG_yellow_BG_ ctermfg=172 guifg=#D78700

View File

@ -19,15 +19,13 @@ local = true
[install] [install]
# Compile Python source files to bytecode. # Compile Python source files to bytecode.
compile = true compile = true
# Include pre-release and development versions.
pre = false
# Specify type of progress to be displayed. # Specify type of progress to be displayed.
progress-bar = on progress-bar = on
# Use PEP 517 for building source distributions.
use-pep517 = on
[wheel] [wheel]
# Include pre-release and development versions.
pre = true
# Specify type of progress to be displayed. # Specify type of progress to be displayed.
progress-bar = on progress-bar = on
# vim:ft=dosini: # vim:ft=confini:

View File

@ -10,4 +10,4 @@ useDetailed=true
[Translations] [Translations]
LANGUAGE=en_GB LANGUAGE=en_GB
# vim:ft=cfg: # vim:ft=confini:

View File

@ -1,4 +1,4 @@
config, c = config, c config, c = config, c # pyright: ignore
# Background color for webpages if unset. # Background color for webpages if unset.
c.colors.webpage.bg = '' c.colors.webpage.bg = ''
@ -32,13 +32,13 @@ c.content.headers.accept_language = 'en-GB,en,el;q=0.9'
c.content.headers.user_agent = ' '.join(( c.content.headers.user_agent = ' '.join((
'Mozilla/5.0', 'Mozilla/5.0',
'(X11; Linux x86_64)', '(X11; Linux x86_64)',
'QtWebEngine/5.15.10', 'QtWebEngine/5.15.14',
'Chromium/87.0.4280.144', 'Chromium/87.0.4280.144',
'qutebrowser/2.5.2' 'qutebrowser/3.0.0'
)) ))
# Allow JavaScript to read from or write to the clipboard. # Allow JavaScript to read from or write to the clipboard.
c.content.javascript.can_access_clipboard = True c.content.javascript.clipboard = 'access-paste'
# Allow pdf.js to view PDF files in the browser. # Allow pdf.js to view PDF files in the browser.
c.content.pdfjs = True c.content.pdfjs = True
@ -82,23 +82,34 @@ c.url.auto_search = 'never'
# Page to open if :open -t/-b/-w is used without URL. {{{1 # Page to open if :open -t/-b/-w is used without URL. {{{1
c.url.default_page = """https://search.disroot.org/?preferences= c.url.default_page = """https://search.disroot.org/?preferences=
eJx1VU3P2zYM_jXzxUixroedfBg2DCtQ4C2adFeDlmibjSS6opy83q8fFX_EedNe eJx1V02P4zYM_TXNxdgA2z0UPeTSAu1xC3TvAi0xNseS6NVHHM-vLxXbsTyZHsYY
Elgm-XyQoiPK6JLUHOqA1zpBU_0NTrCwTHVEYXfBWImhQz8279K1cBC6ETqsMBy- kRJFPoqPjIaEHQfCeOnQYwB7suC7DB1e0H_5-4-TZQ22LE6QE2t2o8WEl58T-HQi
HgvHBlx-KCwJNA5tPbixoyDVv-QPjs5Y95zOOMkvv_35MmDIVRWydhTOG24T-SoY JxvVGPg-X36EjCeHqWdz-ef7vz9OEa4YEYLuL19PqUeHlxYxBeZ0ChizTVGxVx4n
M36O-xhaCpSwFhPZuTXzD2NQpP7r5aMWuUYNKMgrl3qI_DpVpzhiAWNiw35wmLAq laC9_AU24skwKVGyvWG4MMjyzKE7RSr3qphm8aU4ctLoEwYFljrv5P_1PJgbeI1G
BFoUhGj66tci9eixYjEQCwyPZI_o2lphOXpIxCGzOEUwZyX19csnxfOsTujpP6fT rTcv0p8Zw6zIq0RJDCxC8lfylMSqDmzt5gBFaK0YQN-RF1x-76BTKrImsI1DQ_DL
5-OKr8_HW_ksxEDCjuNUCzo06e4IBsVAqVhFAEUcxsaRmXFq1UgYTC7VRsRSuE1X r3_CODSOQuCg1JUsxodMXGzk28TEASuFOEI3bCgqtaL8kCbSSj0gLLta8EaDG5Vy
iFhajTQp16sp6dsLQ9JoNgSu9GgJ9LABwX2JMAHU9YUscpYwBhkcSK8lslH5qGPu OZIuEkpt1gMm2ZVkrbX-km5K3cgglyM8ohecIlZmJJYYA17FZU0oUIhsxrG-Wedg
HJZ6PJUwDEqgJXd7Y6lr0v1xsM1D6Y46lQOiIR0GjJD7EtFa0hNtYs7RdolEbPd5 CT9Iguyda5lBfBeAn94Y0zUGH5AR-0MoGHgioxRLloOsJxrIQIKDOYmk_HXcLL5W
gh5CIlOK6dlBfKa7cVsNspBUV3owZ8_bj0Kmrm9_GdWYQ7rsZK-s7jw7xHMij7KY Ple6CaEY2W0tqDoY5YB8y22O32gsidh3JUnVfAjp67264GoCFwe3jFwt6SHUGwJi
SWFvk6dMXI0vwYBFn4vfkRdftuiFyfy8OwfTCY_PgTNlvhDuo9-_7oTb0ep87_gK E_maJgjYGAqoJYfzCvw1kB8I6mx11MkzgZgOMLLBFkO3HuuYO_F9tDCXZxH3-2uN
oh1Qh28Tqe8S80LfjDEqu2mf4unVOB7tPeX7VY0v54l5mhzUK0d2X6CFmAGWVvbQ 4xsVNJ5Z7UY2pka-hzZA-ax2-8fpdUHOtDsO5KGy9Eax5105SNAQKzcsieEwNyWC
RMg_C2SecrpgSbLPWTWvkG3Ua01gdtoSnydOLD2fIewiZ7QfSd48aiN4cNREXEhM SJ8o-Npo9p0UZJ0uy21MeA5xdQHe7RxIx91joQHQI_h1g6O7tpzNvsHPAPt15R3H
0DOXmeHG009e72acyhQhiNM7aH9EcJ1qz990FPYRs0sPNR03kvBdXKelvzVyebjz JClIkuEtzUUYcOTKrREkgI7iVhBjbs8Gb-vqQUmN0ImcKF8RRRwJFiaoYFkEJVlN
XGu-UbjRXwZnVfwmbM0W_C-Af3DCQIilpDiaNEaUN8PYPfVyXnGGLZb5ZyGqa8Zn -TyTDA5K4JsgohODpJuoe7YQ6oqKScp3LORXpT_xMHNiwXwooW9ep4lSoaqPHJJ9
M-7J7z98-P11R3CXZ9ksadZ2pcXbAp4X1LOZc2-3Jbrut2XeH63U7oF2JxeRx9lZ lAcQ-wrZGSS3tcmZc8otVs4_JRuUE7WHunUQhLgkkkP5CYffhWDCUVoKtWUe4kfh
wn-6FlaD1tv8RnS3NOWp4MxuN4ENpWbUVZ4WhWvBLWDGu_Wp8Jh6ttXnl-OpWDY6 AcUi-Jk54cddkXPQL9LCSJTmFzHPH_AypNM7-2PZfvv2233HzmSDfn_BEd89uEO0
ZW0zSnH7fBwkTfrVc9xRNu9ysBDP_wMVWr6s""".replace('\n', '') _IY41BIPtwL2Lgi5nTt022sdEcMHTB8ZkSsGqcRpwrZShexaW--d-E4De3l3TZw9
-9lh5d_beB4nf2RCJ5RZ-yOldTvEPEq12O2Vfip-pcxaeXzyj5z0Oe0k9DR6Qn_s
bY_jlny-N8XTrZ7DnW71ay-6lXCrMMh3H9evfj6kBwcfkgXOCtY2Geq6KvF4I6k-
qbK6T7B0w9D0uV093RvHoR2l2bGXsKrMiJZyxVCyTgWZBSOZCqDdF_sF3Uq1u_GV
ul8CXeWHUFfZS7Cr_BNeIS-biHO9u5Jt3kts3e2QDT-6jWxBehVuvaKwKEg7K-04
okxc1WWbTmhU-iGsbX3Xj6ZUSbXuhd38xs8jBRkeW5grfs6tlNLhyDxSTc-1ywtf
vwC5iF8wkxAMpRcSlecuY9OxuQg564GFBa6Wp-1NxyG32ae8kXseMeT4xEkmTjLS
8mUMSlXHeRDyMakGyMr7KmhV7t3IIdc0QUPZAWWGeJIB26XJjH01ujhhECezRpMC
-GgF03qS4mA8DZUgpXCmimGkY62deB9dR5ulvuOl8MP9vK7OPcck7IkyX0vfWdrY
YYOEr3SPenjRSHRKkj_gHJ8c8j-XlIa2LF6sWKHCtPJ4LWdQy9g_BdG_qFdmFLj1
8mtlluHeyoD2yU57lSn_yq-hBSjUoWTylXtceRwnadcydlz-A1zR6ss=&q=%s
""".replace('\n', '')
# }}} # }}}
# Page(s) to open at the start. # Page(s) to open at the start.

View File

@ -15,7 +15,7 @@
"answeredit": "", "answeredit": "",
"answerupgrade": "", "answerupgrade": "",
"gitbin": "git", "gitbin": "git",
"gpgbin": "gpg2", "gpgbin": "gpg",
"gpgflags": "", "gpgflags": "",
"mflags": "", "mflags": "",
"sortby": "votes", "sortby": "votes",

View File

@ -23,7 +23,7 @@
--output "%(title)s.%(ext)s" --output "%(title)s.%(ext)s"
# Specify a custom user agent. # Specify a custom user agent.
--user-agent "Mozilla/5.0 (Linux x86_64) yt-dlp/2022.10.04" --user-agent "Mozilla/5.0 (Linux x86_64) yt-dlp/2023.07.06"
# SponsorBlock categories to create chapters for. # SponsorBlock categories to create chapters for.
--sponsorblock-mark "all" --sponsorblock-mark "all"

1
.gitattributes vendored
View File

@ -37,6 +37,7 @@
.local/arch/packages.aur.txt linguist-language=Text .local/arch/packages.aur.txt linguist-language=Text
.local/arch/packages.repo.txt linguist-language=Text .local/arch/packages.repo.txt linguist-language=Text
.config/bottom/bottom.toml linguist-language=TOML
.config/pypoetry/config.toml linguist-language=TOML .config/pypoetry/config.toml linguist-language=TOML
.config/nvimpager/init.vim linguist-language=Vim-script .config/nvimpager/init.vim linguist-language=Vim-script

View File

@ -1,18 +1,12 @@
cfr android-apktool-bin
discord-ptb
easyrpg-player easyrpg-player
fakepkg fakepkg
kora-icon-theme kora-icon-theme
lib32-gst-plugins-bad lib32-gst-plugins-bad
lib32-gst-plugins-ugly lib32-gst-plugins-ugly
mkv-extractor-qt
ntfsprogs-ntfs3
nvim-packer-git nvim-packer-git
nvimpager-git nvimpager-git
otf-alegreya otf-alegreya
otf-alegreya-sans otf-alegreya-sans
otf-fira-go
otf-firamath
otf-hasklig
pandoc-bin pandoc-bin
shellcheck-bin shellcheck-bin

View File

@ -15,9 +15,11 @@ breeze-icons
btop btop
cabextract cabextract
ccache ccache
cfr
clang clang
cmake cmake
desmume-git desmume
discord-ptb
dnscrypt-proxy dnscrypt-proxy
dolphin dolphin
dos2unix dos2unix
@ -97,11 +99,15 @@ node-gyp
nodejs nodejs
noto-fonts-cjk noto-fonts-cjk
noto-fonts-emoji noto-fonts-emoji
ntfsprogs-ntfs3
okteta okteta
okular okular
openjdk-doc openjdk-doc
otf-fantasque-sans-mono otf-fantasque-sans-mono
otf-fira-code otf-fira-code
otf-fira-sans
otf-firamath
otf-hasklig-nerd
p7zip p7zip
pacman-contrib pacman-contrib
parallel parallel
@ -135,7 +141,6 @@ qemu-ui-opengl
qemu-ui-spice-app qemu-ui-spice-app
qemu-ui-spice-core qemu-ui-spice-core
qemu-vhost-user-gpu qemu-vhost-user-gpu
qemu-virtiofsd
qt5-imageformats qt5-imageformats
qutebrowser qutebrowser
rclone rclone
@ -150,29 +155,31 @@ steam
syncplay syncplay
tea tea
terminus-font terminus-font
texlive-basic
texlive-binextra
texlive-bibtexextra texlive-bibtexextra
texlive-langgreek texlive-langgreek
texlive-latexextra texlive-latexextra
thunderbird thunderbird
tor-browser
trackma-git trackma-git
ttf-caladea ttf-caladea
ttf-carlito ttf-carlito
ttf-jetbrains-mono ttf-jetbrains-mono
ttf-lato ttf-lato
ttf-liberation ttf-liberation
ttf-nerd-fonts-symbols-1000-em ttf-nerd-fonts-symbols
ungoogled-chromium ungoogled-chromium
unzip unzip
vifm vifm
virt-manager virt-manager
virtiofsd
vulkan-headers-tkg-git vulkan-headers-tkg-git
vulkan-icd-loader-git vulkan-icd-loader-git
waifu2x-ncnn-vulkan-git waifu2x-ncnn-vulkan-git
webp-pixbuf-loader webp-pixbuf-loader
whois whois
wine-staging wine-staging
winetricks winetricks-git
words words
xclip xclip
xdg-desktop-portal-kde xdg-desktop-portal-kde
@ -186,4 +193,4 @@ yt-dlp
zathura zathura
zathura-pdf-mupdf zathura-pdf-mupdf
zip zip
zlib-ng zlib

View File

@ -3,9 +3,9 @@
__usage() { __usage() {
if (($1 < $2)); then if (($1 < $2)); then
printf 'Usage: %s %s\n' "${FUNCNAME[1]}" "$3" printf 'Usage: %s %s\n' "${FUNCNAME[1]}" "$3"
return 0 return 1
fi fi
return 1 return 0
} }
__isnumber() { __isnumber() {
@ -13,76 +13,60 @@ __isnumber() {
} }
count() { # Counts the number of characters in a string count() { # Counts the number of characters in a string
__usage $# 1 '<string>' && return 1 __usage $# 1 '<string>' || return 1
printf '%d\n' "${#1}" printf '%d\n' "${#1}"
} }
trim() { # Trims leading and trailing whitespace trim() { # Trims leading and trailing whitespace
__usage $# 1 '<string>' && return 1 __usage $# 1 '<string>' || return 1
: "${1#"${1%%[![:space:]]*}"}" : "${1#"${1%%[![:space:]]*}"}"
: "${_%"${_##*[![:space:]]}"}" : "${_%"${_##*[![:space:]]}"}"
printf '%s\n' "$_" printf '%s\n' "$_"
} }
dtl() { # Deletes the top lines of a file
__usage $# 2 '<file> <number>' && return 1
(($2 == 0)) && return
declare -a file
mapfile -O "$2" -tn 0 file < "$1"
printf '%s\n' "${file[@]}" > "$1"
}
dbl() { # Deletes the bottom lines of a file
__usage $# 2 '<file> <number>' && return 1
(($2 == 0)) && return
declare -a file
mapfile -tn 0 file < "$1"
printf '%s\n' "${file[@]:0:$((${#file[@]}-$2))}" > "$1"
}
rot13() { # Encodes/Decodes string in rot13 rot13() { # Encodes/Decodes string in rot13
__usage $# 1 '<string>' && return 1 __usage $# 1 '<string>' || return 1
tr 'A-Za-z' 'N-ZA-Mn-za-m' <<< "$1" tr 'A-Za-z' 'N-ZA-Mn-za-m' <<< "$1"
} }
tempconv() { # Converts Fahrenheit to Celsius and vice versa tempconv() { # Converts Fahrenheit to Celsius and vice versa
__usage $# 2 '<c | f> <degree>' && return 1 __usage $# 2 '<c | f> <degree>' || return 1
if ! __isnumber "$2"; then if ! __isnumber "$2"; then
printf 'The second argument must be a number.\n' >&2 printf 'The second argument must be a number.\n' >&2
return 1 return 1
fi fi
case "$1" in case "$1" in
[Ff]) printf '%d\u02DAC\n' "$((($2 - 32) * 5 / 9))"; return ;; [Ff]) printf '%d\u02DAC\n' "$((5 * ($2 - 32) / 9))"; return ;;
[Cc]) printf '%d\u02DAF\n' "$(($2 * 9 / 5 + 32))"; return ;; [Cc]) printf '%d\u02DAF\n' "$(($2 * 9 / 5 + 32))"; return ;;
*) __usage 0 1 '<c | f> <degree>' && return 1 *) __usage 0 1 '<c | f> <degree>' || return 1
esac esac
} }
rgb2hex() { # Converts rgb colour to hex rgb2hex() { # Converts rgb colour to hex
__usage $# 3 '<red> <green> <blue>' && return 1 __usage $# 3 '<red> <green> <blue>' || return 1
printf '#%02x%02x%02x\n' "$1" "$2" "$3" printf '#%02x%02x%02x\n' "$1" "$2" "$3"
} }
hex2rgb() { # Converts hex colour to rgb hex2rgb() { # Converts hex colour to rgb
__usage $# 1 '<hex>' && return 1 __usage $# 1 '<hex>' || return 1
declare r g b declare -i r g b
((r="16#${1:0:2}",g="16#${1:2:2}",b="16#${1:4:2}")) ((r=16#${1:0:2},g=16#${1:2:2},b=16#${1:4:2}))
printf '%s\n' "$r $g $b" printf '%s %s %s\n' $r $g $b
} }
shuffle() { # Shuffles letters in string shuffle() { # Shuffles letters in string
__usage $# 1 '<string>' && return 1 __usage $# 1 '<string>' || return 1
perl -MList::Util=shuffle -F'' \ perl -MList::Util=shuffle -F'' \
-lane 'print shuffle @F' <<< "$1" -lane 'print shuffle @F' <<< "$1"
} }
weather() { # Shows weather info from wttr.in weather() { # Shows weather info from wttr.in
__usage $# 1 '<place> [country]' && return 1 __usage $# 1 '<place> [country]' || return 1
curl -sS4 "wttr.in/${1}+${2:-Greece}" | head -n -2 curl -fsS4 "v2d.wttr.in/${1}+${2:-Greece}" | head -n -2
} }
sri() { # Prints the SRI hash of a resource sri() { # Prints the SRI hash of a resource
__usage $# 1 '<URL> [bits]' && return 1 __usage $# 1 '<URL> [bits]' || return 1
printf 'sha%d-%s\n' "${2:-384}" \ printf 'sha%d-%s\n' "${2:-384}" \
"$(curl -Ss "$1" | shasum -ba "${2:-384}" - | xxd -r -p | base64)" "$(curl -Ss "$1" | shasum -ba "${2:-384}" - | xxd -r -p | base64)"
} }
@ -92,7 +76,7 @@ myip() { # What's my ip
} }
urlencode() { # Encodes string for url urlencode() { # Encodes string for url
__usage $# 1 '<string>' && return 1 __usage $# 1 '<string>' || return 1
declare LANG=C len=${#1} char i declare LANG=C len=${#1} char i
for ((i = 0; i < len; ++i)); do for ((i = 0; i < len; ++i)); do
char="${1:i:1}" char="${1:i:1}"
@ -104,24 +88,19 @@ urlencode() { # Encodes string for url
} }
urldecode() { # Decodes urlencoded string urldecode() { # Decodes urlencoded string
__usage $# 1 '<string>' && return 1 __usage $# 1 '<string>' || return 1
printf '%b\n' "${*//%/\\x}" printf '%b\n' "${*//%/\\x}"
} }
utf8decode() { # Decodes =?UTF-8?B?...?= string utf8decode() { # Decodes =?UTF-8?B?...?= string
__usage $# 1 '<string>' && return 1 __usage $# 1 '<string>' || return 1
[[ $* =~ ^=\?[Uu][Tt][Ff]-8\?[Bb]\?([^?]+)\?=$ ]] [[ $* =~ ^=\?[Uu][Tt][Ff]-8\?[Bb]\?([^?]+)\?=$ ]]
printf '%s\n' "$(base64 -d <<< "${BASH_REMATCH[1]}")" printf '%s\n' "$(base64 -d <<< "${BASH_REMATCH[1]}")"
} }
iso2usb() { # Writes an iso to a usb device iso2usb() { # Writes an iso to a usb device
__usage $# 2 '<iso> <usb> [bs]' && return 1 __usage $# 2 '<iso> <usb> [bs]' || return 1
sudo dd if="$1" of="$2" status=progress bs="${3:-4M}" oflag=sync sudo dd if="$1" of="$2" status=progress bs="${3:-4M}" oflag=sync
} }
random() { # Prints a random number up to a limit
__usage $# 1 '<limit>' && return 1
printf '%s\n' "$((RANDOM % $1 + 1))"
}
# vim:fdm=syntax:fdl=0: # vim:fdm=syntax:fdl=0:

View File

@ -2,7 +2,7 @@
cert-digest-algo SHA256 cert-digest-algo SHA256
# The default key to sign with # The default key to sign with
default-key C3FC4EB6371B04CC6DDB9EA88A2DEA1DBAEBCA9E default-key 8A2DEA1DBAEBCA9E
# The default algorithms for new key generation # The default algorithms for new key generation
default-new-key-algo ed25519/cert,sign+cv25519/encr default-new-key-algo ed25519/cert,sign+cv25519/encr
@ -19,7 +19,7 @@ disable-cipher-algo IDEA
ignore-time-conflict ignore-time-conflict
# The server that gpg will communicate with # The server that gpg will communicate with
keyserver hkps://keys.opengpg.org keyserver hkps://keyserver.ubuntu.com
# Suppress the initial copyright message # Suppress the initial copyright message
no-greeting no-greeting

View File

@ -2,10 +2,12 @@
AntiAliasFonts=true AntiAliasFonts=true
BoldIntense=true BoldIntense=true
ColorScheme=Gruvbox8 ColorScheme=Gruvbox8
Font=Iosevka Custom,15,-1,5,50,0,0,0,0,0 Font=Iosevka Custom,14,-1,5,50,0,0,0,0,0
IgnoreWcWidth=false
LineSpacing=1 LineSpacing=1
UseFontLineChararacters=true UseFontLineChararacters=true
WordMode=true WordMode=true
WordModeAscii=true
WordModeAttr=false WordModeAttr=false
WordModeBrahmic=false WordModeBrahmic=false
@ -24,18 +26,20 @@ Parent=FALLBACK/
ShowTerminalSizeHint=true ShowTerminalSizeHint=true
TerminalCenter=true TerminalCenter=true
TerminalColumns=120 TerminalColumns=120
TerminalMargin=2 TerminalMargin=5
TerminalRows=32 TerminalRows=32
[Interaction Options] [Interaction Options]
AllowEscapedLinks=false AllowEscapedLinks=false
CopyTextAsHTML=false CopyTextAsHTML=false
EscapedLinksSchema=https://;file:// EscapedLinksSchema=https://;file://
OpenLinksByDirectClickEnabled=false
TextEditorCmd=6 TextEditorCmd=6
TextEditorCmdCustom= TextEditorCmdCustom=
UnderlineFilesEnabled=true UnderlineFilesEnabled=true
[Scrolling] [Scrolling]
HighlightScrolledLines=false
HistoryMode=1 HistoryMode=1
ScrollBarPosition=2 ScrollBarPosition=2
@ -43,3 +47,4 @@ ScrollBarPosition=2
BellMode=3 BellMode=3
BidiRenderingEnabled=false BidiRenderingEnabled=false
BlinkingCursorEnabled=true BlinkingCursorEnabled=true
UrlHintsModifiers=0