Compare commits

6 Commits

22 changed files with 189 additions and 60 deletions

View File

@@ -41,7 +41,7 @@ reload() {
}
update-shell() {
if [[ '${platform,,}' == *'ming'* ]]; then
if [[ ${platform,,} == *'ming'* ]]; then
pacman -Syu
printf "\n${BOLD}${YELLOW}Close this shell, open a new one, and then run 'pacman -Su'${NORMAL}\n"
fi
@@ -148,6 +148,30 @@ remove_extra_spaces() {
echo "$ret"
}
flash_taskbar() {
if [[ ${platform,,} == *'ming'* ]]; then
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "
\$h = (Get-Process mintty -EA SilentlyContinue | ? MainWindowHandle | select -First 1).MainWindowHandle
if (-not \$h) { exit }
Add-Type -TypeDefinition 'using System; using System.Runtime.InteropServices;
public static class F {
[StructLayout(LayoutKind.Sequential)] public struct I { public uint cb; public IntPtr h; public uint f; public uint c; public uint t; }
[DllImport(\"user32.dll\")] public static extern bool FlashWindowEx(ref I i);
}'
\$i = New-Object F+I
\$i.cb = [Runtime.InteropServices.Marshal]::SizeOf(\$i)
\$i.h = [IntPtr]\$h
\$i.f = 2 -bor 12
\$i.c = 0
\$i.t = 0
[F]::FlashWindowEx([ref]\$i) | Out-Null
"
else
echo "flash_taskbar not implemented for this platform"
fi
}
##################
# Building code
##################
@@ -198,7 +222,7 @@ if [[ $platform == 'Darwin' ]]; then
alias trash='rmtrash'
alias tt='rmtrash'
elif [[ "${platform,,}" == *'ming'* ]]; then # convert to lowercase then compare with wildcard
elif [[ ${platform,,} == *'ming'* ]]; then # convert to lowercase then compare with wildcard
#alias rm='echo "use trash command instead!"'
#alias rmr='echo "use trash command instead!"'
alias trash='remove_windows_file'
@@ -226,17 +250,19 @@ mkcd() {
alias aliases='vim ~/.aliases'
alias al='aliases'
if [[ "${platform,,}" == *'ming'* ]]; then
if [[ ${platform,,} == *'ming'* ]]; then
_checksum() {
local algo="$1"
local file="$2"
certutil -hashfile $file $algo
certutil -hashfile "$file" $algo
}
alias checksum='certutil -hashfile'
alias checksum-md5='_checksum MD5'
alias checksum-sha1='_checksum SHA1'
alias checksum-sha256='_checksum SHA256'
alias checksum-sha512='_checksum SHA512'
# I use delegating to certutil via _checksum() but these programs are faster.
alias checksum-md5='md5sum.exe'
alias checksum-sha1='sha1sum.exe'
alias checksum-sha256='sha256sum.exe'
alias checksum-sha512='sha512sum.exe'
fi
check_signature() {
@@ -410,6 +436,7 @@ function my_transcribe_video() {
else
transcribe-video "$file" "$output" $start_time $end_time tiny base
fi
flash_taskbar
}
function my_transcribe_video_all_models() {
@@ -431,6 +458,7 @@ function my_transcribe_video_all_models() {
if [[ $end_time == "" ]]; then end_time="0"; fi
transcribe-video "$file" "$output" $start_time $end_time tiny base small medium
flash_taskbar
}
@@ -507,6 +535,7 @@ download_youtube_vid() {
if [[ $make_folder == "1" ]]; then cd ..; fi
printf "${BOLD}Finished downloading ${YELLOW}$filename${NORMAL}\n"
flash_taskbar
}
@@ -553,6 +582,7 @@ download_youtube_playlist() {
cd ..
printf "${BOLD}Finished downloading the playlist\n${NORMAL}"
flash_taskbar
}
download_youtube_playlist_list() {
@@ -572,6 +602,7 @@ download_youtube_playlist_list() {
eval $cmd 1>"${output_name}.txt" # Need to eval in order to preserve the quotes wrapping the filename format string.
printf "${BOLD}Finished downloading the playlist video list\n${NORMAL}"
flash_taskbar
}
download_youtube_uploads_list() {
@@ -600,6 +631,7 @@ download_youtube_uploads_list() {
eval $cmd 1>"${output_name}.txt" # Need to eval in order to preserve the quotes wrapping the filename format string.
printf "${BOLD}Finished downloading the upload list\n${NORMAL}"
flash_taskbar
}
function download_youtube_audio() {
@@ -644,6 +676,7 @@ function download_youtube_audio() {
if [[ $make_folder == "1" ]]; then cd ..; fi
printf "${BOLD}Finished downloading ${YELLOW}$filename${NORMAL}\n"
flash_taskbar
}
# Download Twitch chat transcript
@@ -697,9 +730,13 @@ download_twitch_chat() {
# To extract a portion of a video, you have to first download the entire file and then use the
# `trim-video` or `compress-video' with a time range.
#
# To download a portion of a stream:
# To download a partial stream use one of these commands. We need to reencode to remove extra frames from the start/end with a negative timeline.
#
# yt-dlp -f "b" --external-downloader ffmpeg --external-downloader-args "ffmpeg_i:-ss 5:25:38.00 -to 5:56:50.00" URL
# This reencodes during the download, slightly faster than the next option:
# yt-dlp -f "b" --external-downloader ffmpeg --external-downloader-args "ffmpeg_i:-ss 0:7:10.00 -to 0:8:06.00" --external-downloader-args "ffmpeg_o:-c:v libx264 -c:a aac" URL
#
# Download then re-encode:
# yt-dlp -f "b" --external-downloader ffmpeg --external-downloader-args "ffmpeg_i:-ss 5:25:38.00 -to 5:56:50.00" URL -o temp.mp4 ; trim-video-cpu temp.mp4 "FINAL_NAME" 0
#
download_twitch_vid() {
local format="$1"
@@ -810,6 +847,7 @@ download_twitch_vid() {
if [[ $make_folder == "1" ]]; then cd ..; fi
printf "${BOLD}Finished downloading ${YELLOW}$filename${NORMAL}\n"
flash_taskbar
}
# Download Vimeo videos.
@@ -896,6 +934,7 @@ download_vimeo_vid() {
if [[ $make_folder == "1" ]]; then cd ..; fi
printf "${BOLD}Finished downloading ${YELLOW}$filename${NORMAL}\n"
flash_taskbar
}
# Download Twitter videos.
@@ -964,9 +1003,12 @@ download_twitter_vid() {
if [[ $make_folder == "1" ]]; then cd ..; fi
printf "${BOLD}Finished downloading ${YELLOW}$filename${NORMAL}\n"
flash_taskbar
}
# Download Instagram videos.
# If the download fails because you need to be authenticated then don't use the cookies arg because IG will flag your
# account as a bot and might ban you. Instead, use the instagram download code from private dotfiles.
download_instagram_vid() {
local transcribe="$1"
local make_folder="$2"
@@ -1035,6 +1077,7 @@ download_instagram_vid() {
if [[ $make_folder == "1" ]]; then cd ..; fi
printf "${BOLD}Finished downloading ${YELLOW}$filename${NORMAL}\n"
flash_taskbar
}
# Download MP4 video.
@@ -1058,6 +1101,7 @@ download_mp4() {
fi
mv $temp_name "$filename.mp4"
flash_taskbar
}
# Download a stream to mp4. Can be from an m3u8 file, an mpd, etc. Whatever the
@@ -1094,6 +1138,7 @@ download_mp4_from_stream() {
fi
printf "${BOLD}Finished downloading ${YELLOW}$filename${NORMAL}\n"
flash_taskbar
}
# Same notes from above regarding cookies/headers.
@@ -1115,6 +1160,7 @@ download_aac_from_stream() {
fi
printf "${BOLD}Finished downloading ${YELLOW}$filename${NORMAL}\n"
flash_taskbar
}
@@ -1138,8 +1184,8 @@ alias yt-1440-shortname='download_youtube_vid "620+234" $SHORTNAME_OFF $TRANSC
alias yt-1080p='download_youtube_vid "616+234" $SHORTNAME_OFF $TRANSCRIBE_OFF'
alias yt-1080p-shortname='download_youtube_vid "616+234" $SHORTNAME_ON $TRANSCRIBE_OFF'
# Normal
alias yt-1080='download_youtube_vid "270+234" $SHORTNAME_OFF $TRANSCRIBE_OFF'
alias yt-1080-shortname='download_youtube_vid "270+234" $SHORTNAME_ON $TRANSCRIBE_OFF'
alias yt-1080='download_youtube_vid "137+ba[ext=m4a]" $SHORTNAME_OFF $TRANSCRIBE_OFF'
alias yt-1080-shortname='download_youtube_vid "137+ba[ext=m4a]" $SHORTNAME_ON $TRANSCRIBE_OFF'
alias yt-720='download_youtube_vid "136+234" $SHORTNAME_OFF $TRANSCRIBE_OFF'
alias yt-720-shortname='download_youtube_vid "136+234" $SHORTNAME_ON $TRANSCRIBE_OFF'
@@ -1285,11 +1331,13 @@ alias tv='echo can just do a cv with a time range...' #trim-video-vbr'
function compress_and_normalize_volume() {
local final_name="$1"
shift 1
local opts="$@"
if [[ $final_name == "" ]]; then
error "Provide a final file name"
error "Provide a final file name and optional args for compress-video"
return
fi
compress-video f.mp4 ff ; normalize-volume ff.mp4 "$final_name"
compress-video f.mp4 ff $opts ; normalize-volume ff.mp4 "$final_name" ; flash_taskbar
}
alias cvn='compress_and_normalize_volume'
@@ -1298,7 +1346,7 @@ alias cvn='compress_and_normalize_volume'
# Git
####################################################################################################
if [[ '${platform,,}' == *'ming'* ]]; then
if [[ ${platform,,} == *'ming'* ]]; then
# Fix a weird mingw 'not a valid identifierline' error.
# Got the fix from https://github.com/Alexpux/MSYS2-packages/issues/735#issuecomment-328938800
alias git="PATH=/usr/bin git"

View File

@@ -1,12 +1,15 @@
[include]
path = ~/.gitconfig.private
# Shared config from private dotfiles
path = ~/.private-dotfiles.common/gitconfig
# Computer-specific config from private dotfiles (might not exist)
path = ~/.private-dotfiles/gitconfig
[init]
defaultBranch = master
[merge]
summary = true
tool = vimdiff
[core]
excludesfile = ~/.gitignore.global
excludesfile = ~/.private-dotfiles.common/gitignore
hookspath = ~/.git_hooks
preloadindex = true
fscache = true

6
.vimrc
View File

@@ -1555,11 +1555,9 @@ fu! Search(path, search_args, case_insensitive=0, token="")
" Some characters need to be escaped.
let l:escaped_term = substitute(l:term, '[#%]', '\\\\\\&', 'g')
let l:escaped_path = substitute(a:path, '[#%]', '\\\\\\&', 'g')
let l:format = 'Rg ' . l:rg_args . ' ' . a:path . ' -e %s'
let l:cmd = printf(l:format, shellescape(l:escaped_term))
exec l:cmd
exec printf("Rg " . l:rg_args . " %s -e %s", shellescape(l:escaped_path), shellescape(l:escaped_term))
call ConvertQuickfixPathsToUnixSlashes()
endfu

View File

@@ -10,6 +10,8 @@
#
# Inspired by https://superuser.com/a/323127 and https://superuser.com/a/1312885
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
@@ -50,3 +52,4 @@ eval $cmd
printf "\n${GREEN}${BOLD}Done analyzing audio in $filename\n${NORMAL}"
printf "\n${YELLOW}${BOLD}Look at the reported max_volume value. If != 0 then call the change-volume script, passing it the filename, an output name and the delta to bring the volume to 0.\ne.g. if the max_volume is -5 db, then you would pass 5.${NORMAL}\n\n"
flash_taskbar

View File

@@ -1,22 +1,32 @@
@setlocal enableextensions enabledelayedexpansion
@echo off
rem Make sure we're running as admin. Got this garbage from https://stackoverflow.com/a/40388766
if not "%1"=="am_admin" (
powershell -Command "Start-Process -Verb RunAs -FilePath '%0' -ArgumentList 'am_admin'"
exit /b
)
setlocal enableextensions enabledelayedexpansion
rem NOTE: Defender may see this file as malware, so you might need to exclude this before things can be disabled.
rem
rem Modified version of
rem https://raw.githubusercontent.com/mattreecebentley/win10_disable_defender/main/win10_enable_defender.bat
rem https://gist.github.com/xezrunner/a7a42dbc1096a40b0c78f09488fe5a2b
rem Modified version of:
rem https://github.com/ggannann/win10_disable_defender
rem https://gist.github.com/xezrunner/a7a42dbc1096a40b0c78f09488fe5a2b (as of Jan 2026 this seems to have been deleted or made private)
rem ============================
rem Self-elevate via UAC if needed
rem - Detect admin by checking membership in Administrators (SID S-1-5-32-544)
rem - Relaunch this script elevated using PowerShell Start-Process -Verb RunAs
rem ============================
rem Test for membership in Administrators group
whoami /groups | find "S-1-5-32-544" >nul
if errorlevel 1 (
echo Requesting administrative privileges...
rem Relaunch the same script elevated, preserving args and working directory
powershell -NoProfile -Command ^
"Start-Process -FilePath '%~f0' -ArgumentList '%*' -Verb RunAs -WorkingDirectory (Get-Location).Path"
exit /b
)
echo Running with administrative privileges.
echo.
reg query HKLM\SYSTEM\Setup /v DisabledDefenderServices | find "0x1"
if %errorlevel% == 0 goto already_patched
echo.
echo Please note that Defender can only be disabled in Win10 v2004 and upwards if Tamper Protection is disabled.
echo This setting can be found in Window settings (hint: search for 'tamper'). Please do this now and then,
pause
@@ -103,4 +113,5 @@ echo Defender has already been disabled by this script.
:eof
echo.
pause
pause

View File

@@ -1,17 +1,11 @@
@setlocal enableextensions enabledelayedexpansion
@echo off
setlocal enableextensions enabledelayedexpansion
rem Make sure we're running as admin. Got this garbage from https://stackoverflow.com/a/40388766
if not "%1"=="am_admin" (
powershell -Command "Start-Process -Verb RunAs -FilePath '%0' -ArgumentList 'am_admin'"
exit /b
)
rem NOTE: Defender may see this file as malware, so you might need to exclude this before things can be disabled.
rem USE AT OWN RISK AS IS WITHOUT WARRANTY OF ANY KIND !!!!!
rem
rem Modified version of
rem https://raw.githubusercontent.com/mattreecebentley/win10_disable_defender/main/win10_enable_defender.bat
rem https://gist.github.com/xezrunner/a7a42dbc1096a40b0c78f09488fe5a2b
rem Modified version of:
rem https://github.com/ggannann/win10_disable_defender
rem https://gist.github.com/xezrunner/a7a42dbc1096a40b0c78f09488fe5a2b (as of Jan 2026 this seems to have been deleted or made private)
rem
rem Resources:
rem https://docs.microsoft.com/en-us/powershell/module/defender/set-mppreference?view=win10-ps
@@ -19,7 +13,23 @@ rem https://docs.microsoft.com/en-us/windows/threat-protection/windows-defender-
rem https://github.com/AndyFul/ConfigureDefender
rem https://github.com/AndyFul/Hard_Configurator
rem ============================
rem Self-elevate via UAC if needed
rem - Detect admin by checking membership in Administrators (SID S-1-5-32-544)
rem - Relaunch this script elevated using PowerShell Start-Process -Verb RunAs
rem ============================
rem Test for membership in Administrators group
whoami /groups | find "S-1-5-32-544" >nul
if errorlevel 1 (
echo Requesting administrative privileges...
rem Relaunch the same script elevated, preserving args and working directory
powershell -NoProfile -Command ^
"Start-Process -FilePath '%~f0' -ArgumentList '%*' -Verb RunAs -WorkingDirectory (Get-Location).Path"
exit /b
)
echo Running with administrative privileges.
echo.
echo Enabling Windows Defender
reg query HKLM\SYSTEM\Setup /v DisabledDefenderServices | find "0x0"
if %errorlevel% == 0 goto already_patched
@@ -105,4 +115,5 @@ echo Defender has already been enabled by this script.
:eof
echo.
pause
pause

View File

@@ -2,7 +2,7 @@
# Shows you the status of an object restore job.
#
# e.g. aws-see-restore-status my-deep-glacier-bucket object/path.png
# e.g. aws-check-restore-status my-deep-glacier-bucket object/path.png
#
# You know it's ready when ongoing-request is false and there's a date. If that field is null then the file isn't being restored.
#
@@ -65,7 +65,7 @@ bucket="$1"
path="$2"
if [[ $bucket == "" || $path == "" ]]; then
error "Usage: aws-see-restore-status <bucket-name> <path-in-bucket>"
error "Usage: aws-check-restore-status <bucket-name> <path-in-bucket>"
exit 1
fi

View File

@@ -32,7 +32,7 @@
#
# (obviously change the bucket and path to suit your needs).
#
# Or use the aws-see-restore-status script.
# Or use the aws-check-restore-status script.
# You know it's ready when ongoing-request is false and there's a date. If that
# field is null then the file isn't being restored.
#
@@ -312,7 +312,7 @@ else
fi
printf "(Note: the time it takes to restore an object can be found in the AWS docs - just look for the $restore_tier restore tier, which is what you used.\\\nOnce restored, download the files from the S3 site or better yet use RCloneBrowser.\\\n"
printf "You can check the status of a file using the aws-see-restore-status script)\\\n"
printf "You can check the status of a file using the aws-check-restore-status script)\\\n"
exec 3>&-

View File

@@ -7,6 +7,8 @@
#
# Inspired by https://superuser.com/a/323127 and https://superuser.com/a/1312885
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
@@ -57,3 +59,4 @@ eval $cmd
printf "\n${GREEN}${BOLD}Done modifying volume in $filename.$extension | output: $output | delta: $delta_db${NORMAL}\n"
flash_taskbar

View File

@@ -1,5 +1,9 @@
#!/usr/bin/env bash
# Bigger crf values == bigger compression.
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
@@ -24,9 +28,12 @@ else
fi
use_gpu=1
# Found the following to work best with vids containing text (e.g. programming vids). These give similar bitrates.
cpu_crf=20
gpu_crf=33
if [[ $# < 2 || $# > 5 ]]; then
printf "${BOLD}${RED}Usage: compress-video <filename> <output name> <optional: use-gpu (1|0), defaults to $use_gpu> <optional: start time HH:MM:SS> <optional: end time HH:MM:SS> ${NORMAL}\n"
printf "${BOLD}${RED}Usage: compress-video <filename> <output name> <optional: use-gpu (1|0), defaults to $use_gpu> <optional: start time HH:MM:SS> <optional: end time HH:MM:SS> (NOTE: gpu crf is $gpu_crf and cpu crf is $cpu_crf - change it by calling compress-video-with-crf)${NORMAL}\n"
exit 1
fi
@@ -37,11 +44,12 @@ if [[ $# > 2 ]]; then
use_gpu=$3
fi
# Found the following to work best with vids containing text (e.g. programming vid): 21 for CPU encoding and 28 for GPU (similar bitrates).
use_crf=21
use_crf=$cpu_crf
if [[ $use_gpu -eq 1 ]]; then
use_crf=33
use_crf=$gpu_crf
fi
compress-video-with-crf $use_crf "$filename" "$output_name" $use_gpu $4 $5
flash_taskbar

View File

@@ -1,5 +1,9 @@
#!/usr/bin/env bash
# Bigger crf values == bigger compression.
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
@@ -93,3 +97,5 @@ else
encode $crf
done
fi
flash_taskbar

View File

@@ -3,6 +3,8 @@
# This is for reencoding a non-mp4 video to mp4 using an mpeg4 encoder.
# Can optionally compress the video.
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
@@ -94,3 +96,5 @@ else
fi
printf "${GREEN}${BOLD}Done encoding '$filename.$extension' to '$output'${NORMAL}\n\n"
flash_taskbar

View File

@@ -3,6 +3,8 @@
# Re-encodes the video to get a more accurate timeline. Same settings as trim-video-vbr.
# If you want fast video joining at the expense of accuracy then use join-video-fast.
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
@@ -31,17 +33,17 @@ output="$2"
target_crf="$3"
max_bitrate_mb="$4"
default_crf="20"
default_crf="33" # if you want to compress then use the same gpu compression level from compress-video (i.e. 33, but verify it's still set to this)
default_max_bitrate="6"
if [[ $filename == "" || $output == "" ]]; then
printf "${BOLD}${RED}Usage: create a text file that lists the input video paths on separate lines using the format: file '/path/to/video'. Then call:\n\njoin-video <list filename> <output name> <optional: crf (quality, w/ lower = more compression) - defaults to $default_crf, use 0 for no value> <optional: max bitrate in MB - defaults to ${default_max_bitrate}M><${NORMAL}\n"
printf "${BOLD}${RED}Usage: create a text file that lists the input video paths on separate lines using the format: file '/path/to/video'. Then call:\n\njoin-video <list filename> <output name> <optional: crf (quality, value = compression level) - defaults to $default_crf, use 0 for no value> <optional: max bitrate in MB - defaults to ${default_max_bitrate}M>${NORMAL}\n"
exit 1
fi
extension="${output##*.}"
if [[ $extension == $output ]]; then
printf "${BOLD}${RED}output arg should have an extension!\n\nUsage: join-video <list filename> <output name> <optional: crf (quality, w/ lower = more compression) - defaults to $default_crf, use 0 for no value> <optional: max bitrate in MB - defaults to ${default_max_bitrate}M><${NORMAL}\n"
printf "${BOLD}${RED}output arg should have an extension!\n\nUsage: join-video <list filename> <output name> <optional: crf (quality, value = compression level) - defaults to $default_crf, use 0 for no value> <optional: max bitrate in MB - defaults to ${default_max_bitrate}M>${NORMAL}\n"
exit 1
fi
@@ -64,3 +66,4 @@ time ffmpeg -y -stats -loglevel level+error -hwaccel cuda -hwaccel_output_format
printf "\n${GREEN}${BOLD}Finished joining${NORMAL}\n\n"
flash_taskbar

View File

@@ -5,6 +5,8 @@
# playback time might oscillate a bit. Use join-video for accurate joining at
# the cost of a much slower processing time.
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
@@ -44,3 +46,4 @@ ffmpeg -y -stats -loglevel level+error -f concat -safe 0 -i "$filename" -c copy
printf "\n${GREEN}${BOLD}Finished joining${NORMAL}\n\n"
flash_taskbar

View File

@@ -10,6 +10,8 @@
#
# Inspired by https://superuser.com/a/323127 and https://superuser.com/a/1312885
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
@@ -78,3 +80,4 @@ eval "$cmd"
printf "\n${GREEN}${BOLD}Done normalizing volume in $filename.$extension | output: $output${NORMAL}\n"
rm $temp_file
flash_taskbar

View File

@@ -2,6 +2,8 @@
# Re-encodes the audio to get a more accurate seek time.
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
@@ -58,3 +60,4 @@ ffmpeg -y -stats -loglevel level+error $timing_args -accurate_seek -i "$filename
printf "\n${GREEN}${BOLD}Finished trimming${NORMAL}\n\n"
flash_taskbar

View File

@@ -2,6 +2,8 @@
# Re-encodes the video to get a more accurate seek time. If you want fast trimming at the expense of accuracy then use trim-video-fast.
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
@@ -62,3 +64,4 @@ ffmpeg -y -stats -loglevel level+error $timing_args -accurate_seek -async 1 -i "
printf "\n${GREEN}${BOLD}Finished trimming${NORMAL}\n\n"
flash_taskbar

View File

@@ -5,6 +5,8 @@
# time might oscillate a bit. Use trim-video for accurate trimming at the cost
# of a much slower processing time.
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
@@ -64,3 +66,4 @@ ffmpeg -y -stats -loglevel level+error $timing_args -i "$filename.$extension" -c
printf "\n${GREEN}${BOLD}Finished trimming${NORMAL}\n\n"
flash_taskbar

View File

@@ -1,7 +1,9 @@
#!/usr/bin/env bash
# Re-encodes the video using a constrained bitrate/output size. If you want to
# To target the visual quality with a variable bitrate, use trim-video-vbr
# control the visual quality with a variable bitrate then use trim-video-vbr
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
@@ -90,3 +92,4 @@ ffmpeg -y -stats -loglevel level+error -hwaccel cuda -hwaccel_output_format cuda
printf "\n${GREEN}${BOLD}Finished trimming${NORMAL}\n\n"
flash_taskbar

View File

@@ -4,6 +4,10 @@
# To have a mostly fixed bitrate with no variable quality, use trim-video-target-rate
# Just note that it'll result in larger files for a similar max bitrate target and the
# quality won't really be noticeably better.
#
# The higher the CRF value, the higher the compression.
source "$HOME/dotfiles/script_helpers/windows.sh"
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
@@ -35,11 +39,11 @@ end_time="$4"
target_crf="$5"
max_bitrate_mb="$6"
default_crf="20"
default_crf="33" # if you want to compress then use the same gpu compression level from compress-video (i.e. 33, but verify it's still set to this)
default_max_bitrate="6"
if [[ $filename == "" || $output_name == "" || $start_time == "" ]]; then
printf "${BOLD}${RED}Usage: trim-video <filename> <output name> <start time HH:MM:SS> <optional: end time HH:MM:SS, use empty string or 0 for no value> <optional: crf (quality, w/ lower = more compression) - defaults to $default_crf, use 0 for no value> <optional: max bitrate in MB - defaults to ${default_max_bitrate}M>${NORMAL}\n"
printf "${BOLD}${RED}Usage: trim-video-vbr <filename> <output name> <start time HH:MM:SS> <optional: end time HH:MM:SS, use empty string or 0 for no value> <optional: crf (quality, value = compression level) - defaults to $default_crf, use 0 for no value> <optional: max bitrate in MB - defaults to ${default_max_bitrate}M>${NORMAL}\n"
exit 1
fi
@@ -122,3 +126,4 @@ time ffmpeg -y -stats -loglevel level+error -hwaccel cuda -hwaccel_output_format
printf "\n${GREEN}${BOLD}Finished trimming${NORMAL}\n\n"
flash_taskbar

View File

@@ -1,3 +1,5 @@
NOTE: Best option is to create/store private keys in Bitwarden.
# Creating an elliptic curve keypair (ed25519)
* Create: `ssh-keygen -a 100 -t ed25519 -f ~/.ssh/filename`

View File

@@ -60,6 +60,12 @@
* Desktop: turn off hibernation
* Open admin cmd prompt: `powercfg.exe /hibernate off`
* Enable long paths:
* winkey+r -> `gpedit.msc`.
* Computer Configuration > Administrative Templates > System > Filesystem
* Double-click the `Enable Win32 long paths` policy.
* Select Enabled.
* Disable power throttling:
* winkey+r -> `gpedit.msc`.
* Computer Configuration > Administrative Templates > System > Power Management > Power Throttling Settings