Merge branch 'master' of gitee.com:klesh/dotfiles

This commit is contained in:
Klesh Wong 2021-05-13 11:04:16 +08:00
commit e35708f54b
15 changed files with 197 additions and 27 deletions

6
bin/dbe Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
export XMODIFIERS="@im=ibus"
dbeaver

40
bin/download-yt-audio.sh Executable file
View File

@ -0,0 +1,40 @@
#!/bin/sh
if [ -z "$*" ] ;then
echo "Usage: $0 <video-url>"
exit 1
fi
if ! command -v yt-dlp 1>/dev/null 2>&1 ;then
sudo pip install yt-dlp
fi
#
# TheFrenchGhosty's Ultimate YouTube-DL Scripts Collection: The ultimate collection of scripts for YouTube-DL
# https://github.com/TheFrenchGhosty/TheFrenchGhostys-Ultimate-YouTube-DL-Scripts-Collection
# https://github.com/TheFrenchGhosty
#
#
#--output "%(title)s - %(uploader)s - %(upload_date)s/%(title)s - %(uploader)s - %(upload_date)s [%(id)s].%(ext)s" \
yt-dlp \
--format "(bestaudio[acodec^=opus]/bestaudio)/best" \
--verbose \
--force-ipv4 \
--sleep-interval 5 \
--max-sleep-interval 30 \
--ignore-errors \
--no-continue \
--no-overwrites \
--download-archive archive.log \
--add-metadata \
--write-description \
--write-info-json \
--write-annotations \
--write-thumbnail \
--embed-thumbnail \
--extract-audio \
--match-filter "!is_live & !live" \
--output "%(uploader)s - %(title)s.%(ext)s" \
--merge-output-format "mkv" \
"$@" 2>/tmp/download-yt-audio-error.log

View File

@ -1,11 +1,11 @@
#!/bin/sh
if [ -z '$@' ] ;then
echo "Usage: $0 <playlist-url>"
if [ -z "$*" ] ;then
echo "Usage: $0 <video-url>"
exit 1
fi
if ! command -v youtube-dlc 2>&1 1>/dev/null ;then
if ! command -v yt-dlp 1>/dev/null 2>&1 ;then
sudo pip install yt-dlp
fi
@ -18,7 +18,7 @@ fi
#--date="30 days ago" +%Y%m%d)" \
#--batch-file "Source - Playlists.txt" 2>&1 | tee output.log
youtube-dlc \
yt-dlp \
--format "(bestvideo[vcodec^=av01][height>=4320][fps>30]/bestvideo[vcodec^=vp9.2][height>=4320][fps>30]/bestvideo[vcodec^=vp9][height>=4320][fps>30]/bestvideo[vcodec^=avc1][height>=4320][fps>30]/bestvideo[height>=4320][fps>30]/bestvideo[vcodec^=av01][height>=4320]/bestvideo[vcodec^=vp9.2][height>=4320]/bestvideo[vcodec^=vp9][height>=4320]/bestvideo[vcodec^=avc1][height>=4320]/bestvideo[height>=4320]/bestvideo[vcodec^=av01][height>=2880][fps>30]/bestvideo[vcodec^=vp9.2][height>=2880][fps>30]/bestvideo[vcodec^=vp9][height>=2880][fps>30]/bestvideo[vcodec^=avc1][height>=2880][fps>30]/bestvideo[height>=2880][fps>30]/bestvideo[vcodec^=av01][height>=2880]/bestvideo[vcodec^=vp9.2][height>=2880]/bestvideo[vcodec^=vp9][height>=2880]/bestvideo[vcodec^=avc1][height>=2880]/bestvideo[height>=2880]/bestvideo[vcodec^=av01][height>=2160][fps>30]/bestvideo[vcodec^=vp9.2][height>=2160][fps>30]/bestvideo[vcodec^=vp9][height>=2160][fps>30]/bestvideo[vcodec^=avc1][height>=2160][fps>30]/bestvideo[height>=2160][fps>30]/bestvideo[vcodec^=av01][height>=2160]/bestvideo[vcodec^=vp9.2][height>=2160]/bestvideo[vcodec^=vp9][height>=2160]/bestvideo[vcodec^=avc1][height>=2160]/bestvideo[height>=2160]/bestvideo[vcodec^=av01][height>=1440][fps>30]/bestvideo[vcodec^=vp9.2][height>=1440][fps>30]/bestvideo[vcodec^=vp9][height>=1440][fps>30]/bestvideo[vcodec^=avc1][height>=1440][fps>30]/bestvideo[height>=1440][fps>30]/bestvideo[vcodec^=av01][height>=1440]/bestvideo[vcodec^=vp9.2][height>=1440]/bestvideo[vcodec^=vp9][height>=1440]/bestvideo[vcodec^=avc1][height>=1440]/bestvideo[height>=1440]/bestvideo[vcodec^=av01][height>=1080][fps>30]/bestvideo[vcodec^=vp9.2][height>=1080][fps>30]/bestvideo[vcodec^=vp9][height>=1080][fps>30]/bestvideo[vcodec^=avc1][height>=1080][fps>30]/bestvideo[height>=1080][fps>30]/bestvideo[vcodec^=av01][height>=1080]/bestvideo[vcodec^=vp9.2][height>=1080]/bestvideo[vcodec^=vp9][height>=1080]/bestvideo[vcodec^=avc1][height>=1080]/bestvideo[height>=1080]/bestvideo[vcodec^=av01][height>=720][fps>30]/bestvideo[vcodec^=vp9.2][height>=720][fps>30]/bestvideo[vcodec^=vp9][height>=720][fps>30]/bestvideo[vcodec^=avc1][height>=720][fps>30]/bestvideo[height>=720][fps>30]/bestvideo[vcodec^=av01][height>=720]/bestvideo[vcodec^=vp9.2][height>=720]/bestvideo[vcodec^=vp9][height>=720]/bestvideo[vcodec^=avc1][height>=720]/bestvideo[height>=720]/bestvideo[vcodec^=av01][height>=480][fps>30]/bestvideo[vcodec^=vp9.2][height>=480][fps>30]/bestvideo[vcodec^=vp9][height>=480][fps>30]/bestvideo[vcodec^=avc1][height>=480][fps>30]/bestvideo[height>=480][fps>30]/bestvideo[vcodec^=av01][height>=480]/bestvideo[vcodec^=vp9.2][height>=480]/bestvideo[vcodec^=vp9][height>=480]/bestvideo[vcodec^=avc1][height>=480]/bestvideo[height>=480]/bestvideo[vcodec^=av01][height>=360][fps>30]/bestvideo[vcodec^=vp9.2][height>=360][fps>30]/bestvideo[vcodec^=vp9][height>=360][fps>30]/bestvideo[vcodec^=avc1][height>=360][fps>30]/bestvideo[height>=360][fps>30]/bestvideo[vcodec^=av01][height>=360]/bestvideo[vcodec^=vp9.2][height>=360]/bestvideo[vcodec^=vp9][height>=360]/bestvideo[vcodec^=avc1][height>=360]/bestvideo[height>=360]/bestvideo[vcodec^=avc1][height>=240][fps>30]/bestvideo[vcodec^=av01][height>=240][fps>30]/bestvideo[vcodec^=vp9.2][height>=240][fps>30]/bestvideo[vcodec^=vp9][height>=240][fps>30]/bestvideo[height>=240][fps>30]/bestvideo[vcodec^=avc1][height>=240]/bestvideo[vcodec^=av01][height>=240]/bestvideo[vcodec^=vp9.2][height>=240]/bestvideo[vcodec^=vp9][height>=240]/bestvideo[height>=240]/bestvideo[vcodec^=avc1][height>=144][fps>30]/bestvideo[vcodec^=av01][height>=144][fps>30]/bestvideo[vcodec^=vp9.2][height>=144][fps>30]/bestvideo[vcodec^=vp9][height>=144][fps>30]/bestvideo[height>=144][fps>30]/bestvideo[vcodec^=avc1][height>=144]/bestvideo[vcodec^=av01][height>=144]/bestvideo[vcodec^=vp9.2][height>=144]/bestvideo[vcodec^=vp9][height>=144]/bestvideo[height>=144]/bestvideo)+(bestaudio[acodec^=opus]/bestaudio)/best" \
--verbose \
--force-ipv4 \

43
bin/download-yt-video.sh Executable file
View File

@ -0,0 +1,43 @@
#!/bin/sh
if [ -z "$*" ] ;then
echo "Usage: $0 <video-url>"
exit 1
fi
if ! command -v yt-dlp 1>/dev/null 2>&1 ;then
sudo pip install yt-dlp
fi
#
# TheFrenchGhosty's Ultimate YouTube-DL Scripts Collection: The ultimate collection of scripts for YouTube-DL
# https://github.com/TheFrenchGhosty/TheFrenchGhostys-Ultimate-YouTube-DL-Scripts-Collection
# https://github.com/TheFrenchGhosty
#
#
#--datebefore "$(date \
#--date="30 days ago" +%Y%m%d)" \
#--batch-file "Source - Unique.txt" 2>&1 | tee output.log
#--no-continue \
#--no-overwrites \
yt-dlp \
--format "(bestvideo[vcodec^=av01][height>=4320][fps>30]/bestvideo[vcodec^=vp9.2][height>=4320][fps>30]/bestvideo[vcodec^=vp9][height>=4320][fps>30]/bestvideo[vcodec^=avc1][height>=4320][fps>30]/bestvideo[height>=4320][fps>30]/bestvideo[vcodec^=av01][height>=4320]/bestvideo[vcodec^=vp9.2][height>=4320]/bestvideo[vcodec^=vp9][height>=4320]/bestvideo[vcodec^=avc1][height>=4320]/bestvideo[height>=4320]/bestvideo[vcodec^=av01][height>=2880][fps>30]/bestvideo[vcodec^=vp9.2][height>=2880][fps>30]/bestvideo[vcodec^=vp9][height>=2880][fps>30]/bestvideo[vcodec^=avc1][height>=2880][fps>30]/bestvideo[height>=2880][fps>30]/bestvideo[vcodec^=av01][height>=2880]/bestvideo[vcodec^=vp9.2][height>=2880]/bestvideo[vcodec^=vp9][height>=2880]/bestvideo[vcodec^=avc1][height>=2880]/bestvideo[height>=2880]/bestvideo[vcodec^=av01][height>=2160][fps>30]/bestvideo[vcodec^=vp9.2][height>=2160][fps>30]/bestvideo[vcodec^=vp9][height>=2160][fps>30]/bestvideo[vcodec^=avc1][height>=2160][fps>30]/bestvideo[height>=2160][fps>30]/bestvideo[vcodec^=av01][height>=2160]/bestvideo[vcodec^=vp9.2][height>=2160]/bestvideo[vcodec^=vp9][height>=2160]/bestvideo[vcodec^=avc1][height>=2160]/bestvideo[height>=2160]/bestvideo[vcodec^=av01][height>=1440][fps>30]/bestvideo[vcodec^=vp9.2][height>=1440][fps>30]/bestvideo[vcodec^=vp9][height>=1440][fps>30]/bestvideo[vcodec^=avc1][height>=1440][fps>30]/bestvideo[height>=1440][fps>30]/bestvideo[vcodec^=av01][height>=1440]/bestvideo[vcodec^=vp9.2][height>=1440]/bestvideo[vcodec^=vp9][height>=1440]/bestvideo[vcodec^=avc1][height>=1440]/bestvideo[height>=1440]/bestvideo[vcodec^=av01][height>=1080][fps>30]/bestvideo[vcodec^=vp9.2][height>=1080][fps>30]/bestvideo[vcodec^=vp9][height>=1080][fps>30]/bestvideo[vcodec^=avc1][height>=1080][fps>30]/bestvideo[height>=1080][fps>30]/bestvideo[vcodec^=av01][height>=1080]/bestvideo[vcodec^=vp9.2][height>=1080]/bestvideo[vcodec^=vp9][height>=1080]/bestvideo[vcodec^=avc1][height>=1080]/bestvideo[height>=1080]/bestvideo[vcodec^=av01][height>=720][fps>30]/bestvideo[vcodec^=vp9.2][height>=720][fps>30]/bestvideo[vcodec^=vp9][height>=720][fps>30]/bestvideo[vcodec^=avc1][height>=720][fps>30]/bestvideo[height>=720][fps>30]/bestvideo[vcodec^=av01][height>=720]/bestvideo[vcodec^=vp9.2][height>=720]/bestvideo[vcodec^=vp9][height>=720]/bestvideo[vcodec^=avc1][height>=720]/bestvideo[height>=720]/bestvideo[vcodec^=av01][height>=480][fps>30]/bestvideo[vcodec^=vp9.2][height>=480][fps>30]/bestvideo[vcodec^=vp9][height>=480][fps>30]/bestvideo[vcodec^=avc1][height>=480][fps>30]/bestvideo[height>=480][fps>30]/bestvideo[vcodec^=av01][height>=480]/bestvideo[vcodec^=vp9.2][height>=480]/bestvideo[vcodec^=vp9][height>=480]/bestvideo[vcodec^=avc1][height>=480]/bestvideo[height>=480]/bestvideo[vcodec^=av01][height>=360][fps>30]/bestvideo[vcodec^=vp9.2][height>=360][fps>30]/bestvideo[vcodec^=vp9][height>=360][fps>30]/bestvideo[vcodec^=avc1][height>=360][fps>30]/bestvideo[height>=360][fps>30]/bestvideo[vcodec^=av01][height>=360]/bestvideo[vcodec^=vp9.2][height>=360]/bestvideo[vcodec^=vp9][height>=360]/bestvideo[vcodec^=avc1][height>=360]/bestvideo[height>=360]/bestvideo[vcodec^=avc1][height>=240][fps>30]/bestvideo[vcodec^=av01][height>=240][fps>30]/bestvideo[vcodec^=vp9.2][height>=240][fps>30]/bestvideo[vcodec^=vp9][height>=240][fps>30]/bestvideo[height>=240][fps>30]/bestvideo[vcodec^=avc1][height>=240]/bestvideo[vcodec^=av01][height>=240]/bestvideo[vcodec^=vp9.2][height>=240]/bestvideo[vcodec^=vp9][height>=240]/bestvideo[height>=240]/bestvideo[vcodec^=avc1][height>=144][fps>30]/bestvideo[vcodec^=av01][height>=144][fps>30]/bestvideo[vcodec^=vp9.2][height>=144][fps>30]/bestvideo[vcodec^=vp9][height>=144][fps>30]/bestvideo[height>=144][fps>30]/bestvideo[vcodec^=avc1][height>=144]/bestvideo[vcodec^=av01][height>=144]/bestvideo[vcodec^=vp9.2][height>=144]/bestvideo[vcodec^=vp9][height>=144]/bestvideo[height>=144]/bestvideo)+(bestaudio[acodec^=opus]/bestaudio)/best" \
--verbose \
--force-ipv4 \
--sleep-interval 5 \
--max-sleep-interval 30 \
--ignore-errors \
--download-archive archive.log \
--add-metadata \
--write-description \
--write-info-json \
--write-annotations \
--write-thumbnail \
--embed-thumbnail \
--all-subs \
--embed-subs \
--match-filter "!is_live & !live" \
--output "%(title)s - %(uploader)s - %(upload_date)s/%(title)s - %(uploader)s - %(upload_date)s [%(id)s].%(ext)s" \
--merge-output-format "mkv" \
"$@" 2>/tmp/download-yt-playlist-error.log

5
bin/idea Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
wmname LG3D
/home/klesh/Programs/idea-IC-203.7717.32/bin/idea.sh

3
bin/jd-gui Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
_JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel" java -jar ~/Programs/bin/jd-gui-1.6.6.jar

View File

@ -59,7 +59,7 @@ if status is-interactive
~/.profile.fish
# === auto cd into last activated directory
test -z "$TMUX" && cd $last_pwd
test "$PWD" = "$HOME" && cd $last_pwd
if test -n "$TMUX"
function ssh

View File

@ -9,7 +9,7 @@ function fish_right_prompt
test -z $CMD_DURATION -o \( $CMD_DURATION -lt 3000 \) && return
test -z $WINDOWID && return
set active_window (xdotool getactivewindow 2>/dev/null)
test $active_window -eq $WINDOWID && return
test "$active_window" -eq "$WINDOWID" && return
set message (history --max=1) [$duration]
notify-send (test "$s" -ne 0 && echo '--icon=dialog-warning') $message
end

View File

@ -1,5 +1,10 @@
set icons
set drawbox
cmd mkdir %mkdir "$@"
cmd fp %powershell -NoProfile -Command Set-Clipboard $env:f
cmd fn %powershell -NoProfile -Command Set-Clipboard (Split-Path -Leaf ($env:f -replace '"',''))
map <f-2> rename

View File

@ -9,6 +9,8 @@ set -g pane-base-index 1
set-option -g mouse on
#set-option -g mouse-select-pane on
set-option -g display-time 4000
set-option -g set-titles on
set-option -g set-titles-string "#S / #W"
############################

View File

@ -23,6 +23,7 @@ set laststatus=2
set fillchars=vert:\ ,fold:-
set clipboard=unnamedplus " system clipboard as default register. for vim to work need installing gvim package
set mouse=a
set spell
filetype plugin indent on
syntax on
au! BufWritePost $MYVIMRC source %
@ -83,6 +84,7 @@ au ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red
au Syntax * match ExtraWhitespace /\s\+$/
nnoremap <leader>es :%s/\s\+$//g<CR>
" location jumping
nnoremap <leader>n :cnext<CR>
nnoremap <leader>p :cprev<CR>
@ -313,3 +315,8 @@ autocmd BufEnter,BufRead *.mom :set ft=mom
" for yaml need cursorcolumn
autocmd FileType yaml :set cursorcolumn
" spell highlight
highlight clear SpellBad
highlight SpellBad cterm=underline
highlight SpellBad gui=undercurl

45
devel/hadoop.md Normal file
View File

@ -0,0 +1,45 @@
# Windows
1. Download / install and setup JDK
1. extract as d:\programs\java\jdk-xxx
2. set env var JAVA_HOME=d:\programs\java\jdk-xxx
3. add PATH `%JAVA_HOME\bin%`
2. Download hadoop from https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
1. extract as d:\programs\java\hadoop-3.2.1
2. set env var HADOOP_HOME=d:\programs\java\hadoop-3.2.1
3. add PATH `%HADOOP_HOME%\bin` and `%HADOOP_HOME%\sbin`
4. run `hadoop version` see if it's working, if `Could not find or load main class` ocurred because your account name contains space, edit `%HADOOP_HOME%\etc\hadoop\hadoop-env.cmd` file, find line `set HADOOP_IDENT_STRING=%USERNAME%` and change `%USERNAME%` to a fixed string without space
3. Creating hdfs
1. download windows native files from https://github.com/cdarlint/winutils/tree/master/hadoop-3.2.1/bin extract to `%HADOOP_HOME\BIN`
2. create folders:
```ps
mkdir $env:HADOOP_HOME\data\datanode,$env:HADOOP_HOME\data\namenode
```
3. follow guide: https://cwiki.apache.org/confluence/display/HADOOP2/Hadoop2OnWindows
4. set up hdfs dirs:
```xml
<property>
<name>dfs.name.dir</name>
<value>/var/local/hadoop/hdfs/name</value>
<description>Determines where on the local filesystem the DFS name node
should store the name table. If this is a comma-delimited list
of directories then the name table is replicated in all of the
directories, for redundancy. </description>
<final>true</final>
</property>
<property>
<name>dfs.data.dir</name>
<value>/var/local/hadoop/hdfs/data</value>
<description>Determines where on the local filesystem an DFS data node
should store its blocks. If this is a comma-delimited
list of directories, then data will be stored in all named
directories, typically on different devices.
Directories that do not exist are ignored.
</description>
<final>true</final>
</property>
```
5. fix setPosixPermissions error: https://kontext.tech/column/hadoop/379/fix-for-hadoop-321-namenode-format-issue-on-windows-10

View File

@ -583,44 +583,48 @@ def_key "N"
previous_found_item
# not used but bound
def_key "space"
select_item
def_key "J"
move_sort_order_down
select_item
move_selected_items_down
def_key "K"
move_sort_order_up
select_item
move_selected_items_up
def_key "h"
jump_to_parent_directory
jump_to_parent_directory
def_key "l"
enter_directory
enter_directory
def_key "l"
run_action
run_action
def_key "l"
play_item
play_item
def_key "m"
show_media_library
show_media_library
def_key "m"
toggle_media_library_columns_mode
toggle_media_library_columns_mode
def_key "t"
show_tag_editor
show_tag_editor
def_key "v"
show_visualizer
show_visualizer
def_key "G"
move_end
move_end
def_key "g"
move_home
move_home
#jump_to_position_in_song
def_key "U"
update_database
update_database
def_key "s"
reset_search_engine
reset_search_engine
def_key "s"
show_search_engine
show_search_engine
def_key "f"
show_browser
show_browser
def_key "f"
change_browse_mode
change_browse_mode
def_key "x"
delete_playlist_items
delete_playlist_items
def_key "X"
delete_browser_items
delete_browser_items
def_key "P"
show_playlist
show_playlist

View File

@ -35,7 +35,7 @@
"cursorShape": "filledBox",
// install the non-window-compatible version
"fontFace": "agave Nerd Font r",
"fontSize": 14
"fontSize": 12
},
"list": [
{

View File

@ -113,3 +113,13 @@ function pass-edit {
Remove-Item $tmpfile.FullName -Force
}
}
function f {
[Cmdletbinding()]
$tmpfile = New-TemporaryFile
lf -last-dir-path $tmpfile
$lastdir = Get-Content $tmpfile
Remove-Item $tmpfile
cd $lastdir
}