1
0
mirror of https://github.com/tiyn/dotfiles.git synced 2025-10-17 06:51:15 +02:00

Compare commits

..

138 Commits

Author SHA1 Message Date
tiyn
9734aa56ad nvim: improved rust compiler to use cargo 2025-10-11 03:14:08 +02:00
tiyn
4cc268f424 nvim: added rust support 2025-10-10 08:33:30 +02:00
tiyn
7a66057608 nvim: added rust to compiler 2025-10-10 07:13:29 +02:00
50b033c772 fixed merge conflict 2025-08-17 16:54:33 +02:00
d7a25d0ed2 updated various settings 2025-08-17 16:52:49 +02:00
tiyn
875803b1fb nvim: fixed breaking changes 2025-07-31 02:01:19 +02:00
tiyn
fd6934ecbc nvim: fixed breaking changes 2025-07-20 04:48:11 +02:00
tiyn
3aafdd54f7 swayidle: improved script - added screen dim and off 2025-07-11 02:58:43 +02:00
tiyn
2c6f888ed7 swayidle: improved script - added screen dim and off 2025-07-11 02:36:42 +02:00
tiyn
a005ba35db wayland: fixed swayidle settings 2025-07-06 06:47:45 +02:00
tiyn
cfe8c6d703 xdg: added gnome-keyring 2025-07-06 06:32:03 +02:00
tiyn
c889d019aa zsh: enable pyenv 2025-07-06 06:31:29 +02:00
tiyn
a92906b244 wayland: unclutter not needed due to patched dwl & changed some autostart programs 2025-07-06 06:30:51 +02:00
tiyn
466f023fca make wayland screenshare compatible 2025-05-14 04:19:50 +02:00
tiyn
632dccff14 Merge branch 'master' of ghthub:tiyn/dotfiles 2025-04-25 01:57:54 +02:00
tiyn
2cbd28a429 wayland: unclutter not needed due to patched dwl 2025-04-25 01:57:46 +02:00
31616d0604 screen capture: fixed missing audio 2025-04-24 01:50:09 +02:00
tiyn
2d0fb5ecf8 waybar: changed config 2025-04-13 19:16:43 +02:00
tiyn
170020a287 wayland: preliminary migration done 2025-04-09 02:31:49 +02:00
tiyn
45bfcbf68e wayland: starting to setup migration option 2025-04-03 03:44:52 +02:00
tiyn
e8901032db nvim: fixed and replaced deprecated parts 2025-03-29 06:31:16 +01:00
tiyn
b74a23af1d tools/wallpaper: added lightdm wallpaper 2025-03-28 03:58:13 +01:00
tiyn
d2bfc89ef2 xinitrc: linked xinitrc to xsession 2025-03-28 02:50:15 +01:00
tiyn
3cfd34313e nvim: changed bracket program 2025-03-24 04:34:23 +01:00
tiyn
001187545c nvim: updated all plugins 2025-03-18 05:24:19 +01:00
tiyn
0a21e161a4 qt: change default theme to adwaita 2025-03-18 05:00:50 +01:00
tiyn
8a71bd65af nvim: added dependency to goto-definitions plugin 2025-03-13 03:36:42 +01:00
tiyn
5eac363783 nvim: updated all plugins 2025-03-12 05:33:16 +01:00
tiyn
fad6eed865 make lightdm compatible 2025-03-11 04:10:53 +01:00
tiyn
dd24dbd0d7 statusbar: improved internet script 2025-03-03 05:00:10 +01:00
tiyn
3843dd8da7 Merge branch 'master' of github:tiyn/dotfiles 2025-03-03 04:32:42 +01:00
tiyn
aa9b0a14a9 sxhkd: added touchpad toggling and improved the script 2025-03-03 04:32:35 +01:00
tiyn
837307c21e statusbar: updated internet script 2025-03-03 02:38:39 +01:00
tiyn
ead803572f nvim: updated all plugins 2025-03-01 05:26:10 +01:00
tiyn
faa081d019 profile: set default bat theme 2025-03-01 05:17:07 +01:00
tiyn
9894e74d5f nvim: added plugin for easier csv editing 2025-03-01 05:16:31 +01:00
tiyn
3446c0fc74 nvim: cleaned up molten setup 2025-03-01 05:16:00 +01:00
tiyn
3ec55d1bfe alias: added some aliases for improved tools 2025-03-01 05:15:03 +01:00
tiyn
473423929c nvim: added way to use ipynb in terminal 2025-02-27 02:20:47 +01:00
tiyn
320d84e302 tools: added both option to wallpaper script 2025-02-24 23:42:16 +01:00
tiyn
dc5325c1d5 tools: made desktop wallpaper match with lock 2025-02-24 23:37:59 +01:00
tiyn
9c2d1ddbe6 browser: fixed faulty config 2025-02-24 15:48:35 +01:00
tiyn
fa224c4deb Merge branch 'master' of github:tiyn/dotfiles 2025-02-22 20:39:25 +01:00
tiyn
d05f39b991 statusbar: fixed problem in internet script 2025-02-22 20:39:05 +01:00
tiyn
bac7f7fa66 extended default program list 2025-02-22 07:07:42 +01:00
tiyn
243a7148a8 Merge branch 'master' of github:tiyn/dotfiles 2025-02-22 07:04:55 +01:00
tiyn
a153341f6b list default programs 2025-02-22 07:04:37 +01:00
tiyn
a6547fe26c default program: zen is now default browser 2025-02-22 07:01:12 +01:00
tiyn
35a698dd20 xorg: enable automatically locking on sleep 2025-02-22 06:44:46 +01:00
tiyn
73168a2db4 statusbar: improved battery script to notify with more information 2025-02-22 06:42:48 +01:00
tiyn
d447b87ac1 sxhkd: added hibernation hotkey 2025-02-22 06:40:03 +01:00
tiyn
5429c908c8 zathura: hide bottom bar 2025-02-22 06:29:58 +01:00
tiyn
fb1f2e6c3b sxhkd: changed light to brightnessctl 2025-02-20 04:08:48 +01:00
TiynGER
c9c719765f Merge branch 'master' of git+ssh://github/tiynger/.dotfiles 2025-02-20 01:44:04 +01:00
TiynGER
2581b3ad44 defaults: set zen to default browser 2025-02-20 01:43:12 +01:00
01558bad76 scripts: cleaned up texclear 2025-02-19 01:27:10 +01:00
d7716496e6 scripts: improved texclear by easier matching 2025-02-19 01:18:10 +01:00
e9f2d8fea7 scripts: updated screen recorder to use cpu by default 2025-02-18 01:16:37 +01:00
c7e33b6162 scripts: updated to cleaner logic for global variables 2025-02-17 04:19:49 +01:00
7322a068c2 bin: updated textemp script 2025-02-17 03:49:58 +01:00
TiynGER
ec50c1347b statusbar: fixed bug in memory script 2025-02-16 22:58:51 +01:00
e7db336362 mime: added vifm as default directory handler 2025-01-09 04:46:47 +01:00
7751bab6fe vifm: added cbz default program 2024-12-11 03:32:42 +01:00
423d1731b0 alias: updated youtube-dlp aliases 2024-12-11 03:32:23 +01:00
266b4a253a vifm: set zathura for cbr use in vifm 2024-11-28 06:15:01 +01:00
da9fdab952 xorg: user configs are now loaded automatically 2024-11-08 17:51:54 +01:00
198144476c xorg: made starting of desktop portal local 2024-11-08 05:24:56 +01:00
2fe2ae52b3 easyeffects: fix wrong input gain for eq 2024-11-06 04:11:35 +01:00
8a9f728f58 easyeffects: revert loudness addon due to lag 2024-11-05 23:11:33 +01:00
ce74787e96 xorg: automatically start desktop portal 2024-11-05 22:34:23 +01:00
921daaf1f4 easyeffects: added loudness effect to output 2024-11-05 22:33:55 +01:00
7a4fa27014 qt6ct: use adwaita-dark 2024-11-04 17:03:06 +01:00
764dc17b31 pipewire: remove dummy sinks from repository 2024-10-23 03:27:12 +02:00
46996ed60b pipewire: cleaned up dummy sink inputs 2024-10-22 00:23:07 +02:00
0c7d6bd176 qt: updated darkmode | discord: skip update check 2024-10-22 00:22:32 +02:00
895c286f16 pipewire: added 2 dummy sinks 2024-10-21 06:12:56 +02:00
f938294076 gtk2,3,4: created simple configs 2024-10-21 04:32:35 +02:00
4876fb0dac nvim: dont open preview on md files automatically 2024-10-21 02:56:08 +02:00
c728195147 nvim: updated luasnip to current branch 2024-10-13 07:40:02 +02:00
4b0d01690a nvim: updated keymaps 2024-10-13 07:33:33 +02:00
5fc8425b97 nvim: luasnip up to date 2024-10-13 07:28:12 +02:00
e2b6d06d97 wget: added sample config file 2024-10-13 07:17:04 +02:00
c7cce0c882 nvim: removed unneeded plugins 2024-10-12 19:57:52 +02:00
d4a1d0622c nvim: updated plugins, improved keymaps 2024-10-12 19:21:05 +02:00
TiynGER
5541ec87b9 nvim: tidy updated 2024-10-12 18:21:50 +02:00
a67a1f306d mime: updated 2024-10-12 18:06:52 +02:00
c7567311f3 lmc: updated 2024-10-12 18:06:14 +02:00
3870aa1afc nvim: update 2024-10-12 18:05:48 +02:00
708be20f37 qt5: improved geometry of window 2024-05-30 04:31:33 +02:00
83efe0aa39 mime: added libreoffice to mime 2024-05-30 04:30:56 +02:00
e9c7aae871 easyeffects: added more profiles 2024-05-30 04:30:37 +02:00
c7f1aaa72d lmc: changed loopback script to be more precise 2024-05-23 18:46:28 +02:00
e9a3c08d86 lmc: changed loopback script to be more precise 2024-05-23 18:46:03 +02:00
7c1874b96e scripts: bugfixed wallpaper script 2024-05-19 07:24:45 +02:00
a947ad21ff xorg: added easyeffects to autostart 2024-05-19 07:03:43 +02:00
0c81536011 local files: added dummy files 2024-05-19 06:57:06 +02:00
TiynGER
97e54e74c5 sxhkd: bugfixed monitor script 2024-05-19 06:53:21 +02:00
c6b9ffcc69 profile: added source for optional env variables 2024-05-19 06:35:47 +02:00
d0ef41d968 lmc: improved order of man page 2024-05-18 05:14:10 +02:00
0ef1b10781 scripts: unified and renamed wallpaper script(s) 2024-05-18 05:01:46 +02:00
f662768a04 scripts: renamed many scripts and added options; added loopback 2024-05-18 04:27:54 +02:00
b25a478cfa easyeffects: improved noise supression and gate 2024-05-17 04:31:17 +02:00
10d48f2a73 sxhkd: hide cursor when selecting area to screenshot 2024-05-17 02:50:39 +02:00
f757afb4df easyeffects: split input profiles to chat and voice 2024-05-17 02:45:16 +02:00
982d2266ce easyeffects: added more profiles 2024-05-16 03:24:14 +02:00
1c0902842a Merge branch 'master' of github:tiyn/dotfiles 2024-05-16 03:21:43 +02:00
716fcd2983 readme: added iem and headphone targets 2024-05-16 03:21:33 +02:00
747643ed88 easyeffects: renamed input profile 2024-05-15 23:27:51 +02:00
52b0422f36 Merge branch 'master' of github:tiyn/dotfiles 2024-05-15 07:21:48 +02:00
d3e8f76fa3 nvim: added config for css 2024-05-15 07:21:36 +02:00
2497e93c88 nvim: updated plugins 2024-05-15 07:21:11 +02:00
4d86b5c465 readme: fixed some links 2024-05-15 07:20:37 +02:00
0c03f9a1c2 readme: added additional information section 2024-05-15 07:18:43 +02:00
61ffcf7558 easyeffects: renamed profiles 2024-05-15 07:06:42 +02:00
26a7f8daff easyeffects: renamed profiles and removed unused ones 2024-05-15 07:00:03 +02:00
924acd6dae profile: added standard conda variables 2024-05-07 06:36:23 +02:00
db44c7c365 aliasrc: better compatibility with eza/exa 2024-05-03 16:05:21 +02:00
7e7f1713ae nvim: improved guidelines for filetypes 2024-04-18 01:24:55 +02:00
e63be081b6 nvim: changed keymaps to fit better with previous workflow 2024-04-09 04:16:48 +02:00
c908dfa478 mpv: added hoverable previews 2024-04-06 17:41:45 +02:00
0be7f199ae mpv: made left click to cycle pause 2024-04-06 05:32:25 +02:00
3835cc8ffc nvim: changed session restoring to be limited to projects, added renamer alias 2024-04-06 04:59:13 +02:00
7e576a888e updated readme setup 2024-04-06 00:53:19 +02:00
9822eba605 updated keymaps 2024-04-06 00:50:26 +02:00
53c8e1159f sxhkd/statusbar: added scripts for dunst dnd mode 2024-04-06 00:34:38 +02:00
0dbb415546 nvim: fixed some wilder and which-key functionalities 2024-04-03 03:43:12 +02:00
3b1eaeec65 nvim: updated yank color 2024-04-02 00:19:28 +02:00
2b842cee47 nvim: added ZQ back with safety confirmation 2024-04-01 03:41:09 +02:00
ef8e6556ab nvim: added ZQ back with safety confirmation 2024-04-01 03:40:29 +02:00
9f70da80e3 nvim: add shortcuts for quitting, remove the ones that can lead to data loss 2024-04-01 03:34:02 +02:00
ec55f21719 mpv: start in fullscreen by default 2024-04-01 03:24:58 +02:00
8568927662 vifm: use mpv as default music player 2024-04-01 03:23:18 +02:00
41e60ce12c nvim: added projection for session and project management 2024-04-01 03:22:07 +02:00
87b28a025c nvim: added leap for improved movement 2024-03-27 01:06:21 +01:00
9f984e8c47 nvim: added leap for improved movement 2024-03-27 00:58:54 +01:00
5232072ab0 nvim: added winshift 2024-03-27 00:24:15 +01:00
af9989106f Merge branch 'master' of github:tiyn/dotfiles 2024-03-17 22:52:49 +01:00
923fba39f4 local: changed and updated scripts 2024-03-17 22:52:40 +01:00
131 changed files with 11510 additions and 2191 deletions

View File

@@ -7,6 +7,9 @@ background() { for ((i=2;i<=$#;i++)); do; ${@[1]} ${@[$i]} &> /dev/null &| ; don
alias ":wq"="exit"
alias ":q"="exit"
# cat
alias cat="bat"
# cd
alias ".."="cd .."
alias "..."="cd ../.."
@@ -72,10 +75,10 @@ alias contacts="khard"
alias paint="kolourpaint"
# ls(d)
alias l="eza --group-directories-first"
alias la="eza -la --group-directories-first"
alias ll="eza -l --group-directories-first"
alias tree="eza --tree --group-directories-first"
alias l="exa --group-directories-first"
alias la="exa -la --group-directories-first"
alias ll="exa -l --group-directories-first"
alias tree="exa --tree --group-directories-first"
# mkdir
alias mkdir="mkdir -p"
@@ -127,18 +130,20 @@ alias svim="sudo nvim"
alias svi="sudo nvim"
command -v nvim >/dev/null && alias vim="nvim" vimdiff="nvim -d"
command -v nvim >/dev/null && alias vi="nvim" vidiff="nvim -d"
alias renamer="nvim +Renamer"
# weather
alias weather="curl wttr.in"
# wget
alias wget="wget --hsts-file=$XDG_CACHE_HOME/wget-hsts"
alias wget2c="aria2c"
# yay
alias yay="yay --sudoloop --noredownload --norebuild --combinedupgrade"
# youtube-dl
alias yta="yt-dlp -f 'bestaudio[ext=m4a]'"
alias ytv="yt-dlp -f 'bestvide[ext=mp4]+bestaudio[ext=m4a]'"
alias yta2c="yt-dlp --external-downloader aria2c --external-downloader-args '-j 16 -x 16 -s 16 -k 2M' -f 'bestaudio/best'"
alias ytv2c="yt-dlp --external-downloader aria2c --external-downloader-args '-j 16 -x 16 -s 16 -k 2M' -f 'bestvideo[height>=720]+bestaudio/best'"
alias ytv="yt-dlp -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]'"
alias yta2c="yt-dlp --external-downloader aria2c --external-downloader-args '-j 16 -x 16 -s 16 -k 2M' -f 'bestaudio[ext=m4a]/best'"
alias ytv2c="yt-dlp --external-downloader aria2c --external-downloader-args '-j 16 -x 16 -s 16 -k 2M' -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best'"

View File

@@ -0,0 +1,6 @@
{
"chromiumSwitches": {},
"IS_MAXIMIZED": false,
"IS_MINIMIZED": false,
"SKIP_HOST_UPDATE": true
}

View File

@@ -0,0 +1,294 @@
{
"input": {
"blocklist": [],
"compressor#0": {
"attack": 10.0,
"boost-amount": 6.0,
"boost-threshold": -72.0,
"bypass": false,
"dry": -100.0,
"hpf-frequency": 10.0,
"hpf-mode": "off",
"input-gain": 0.0,
"knee": -6.0,
"lpf-frequency": 20000.0,
"lpf-mode": "off",
"makeup": 0.0,
"mode": "Downward",
"output-gain": 0.0,
"ratio": 4.0,
"release": 100.0,
"release-threshold": -100.0,
"sidechain": {
"lookahead": 0.0,
"mode": "RMS",
"preamp": 0.0,
"reactivity": 10.0,
"source": "Middle",
"stereo-split-source": "Left/Right",
"type": "Feed-forward"
},
"stereo-split": false,
"threshold": -35.0,
"wet": 0.0
},
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -3.0,
"left": {
"band0": {
"frequency": 50.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.23,
"slope": "x1",
"solo": false,
"type": "Hi-pass",
"width": 12.0
},
"band1": {
"frequency": 120.0,
"gain": -2.0,
"mode": "RLC (BT)",
"mute": false,
"q": 6.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 189.58627573536728,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 0.49999999999999933,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 320.0,
"gain": -1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 3.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 2000.0,
"gain": 0.5,
"mode": "RLC (BT)",
"mute": false,
"q": 0.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 5000.0,
"gain": -3.5,
"mode": "RLC (BT)",
"mute": false,
"q": 1.2499999999999993,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 10000.0,
"gain": 1.5,
"mode": "RLC (BT)",
"mute": false,
"q": 2.0,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 7,
"output-gain": 3.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 50.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.23,
"slope": "x1",
"solo": false,
"type": "Hi-pass",
"width": 12.0
},
"band1": {
"frequency": 120.0,
"gain": -2.0,
"mode": "RLC (BT)",
"mute": false,
"q": 6.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 189.58627573536728,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 0.49999999999999933,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 320.0,
"gain": -1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 3.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 2000.0,
"gain": 0.5,
"mode": "RLC (BT)",
"mute": false,
"q": 0.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 5000.0,
"gain": -3.5,
"mode": "RLC (BT)",
"mute": false,
"q": 1.2499999999999993,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 10000.0,
"gain": 1.5,
"mode": "RLC (BT)",
"mute": false,
"q": 2.0,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
}
},
"split-channels": false
},
"gate#0": {
"attack": 1.0,
"bypass": false,
"curve-threshold": -60.0,
"curve-zone": -5.0,
"dry": -100.0,
"hpf-frequency": 10.0,
"hpf-mode": "off",
"hysteresis": false,
"hysteresis-threshold": -12.0,
"hysteresis-zone": -6.0,
"input-gain": 0.0,
"lpf-frequency": 20000.0,
"lpf-mode": "off",
"makeup": 0.0,
"output-gain": 0.0,
"reduction": -20.0,
"release": 280.0,
"sidechain": {
"input": "Internal",
"lookahead": 0.0,
"mode": "RMS",
"preamp": 0.0,
"reactivity": 10.0,
"source": "Middle",
"stereo-split-source": "Left/Right"
},
"stereo-split": false,
"wet": 0.0
},
"limiter#0": {
"alr": false,
"alr-attack": 5.0,
"alr-knee": 0.0,
"alr-release": 50.0,
"attack": 5.0,
"bypass": false,
"dithering": "None",
"external-sidechain": false,
"gain-boost": true,
"input-gain": 0.0,
"lookahead": 5.0,
"mode": "Herm Thin",
"output-gain": 0.0,
"oversampling": "None",
"release": 1.0,
"sidechain-preamp": 0.0,
"stereo-link": 100.0,
"threshold": -10.0
},
"plugins_order": [
"stereo_tools#0",
"rnnoise#0",
"gate#0",
"equalizer#0",
"compressor#0",
"limiter#0"
],
"rnnoise#0": {
"bypass": false,
"enable-vad": true,
"input-gain": 0.0,
"model-path": "",
"output-gain": 0.0,
"release": 5.0,
"vad-thres": 55.0,
"wet": 0.0
},
"stereo_tools#0": {
"balance-in": 0.22000000000000006,
"balance-out": 0.0,
"bypass": false,
"delay": 0.0,
"input-gain": -5.0,
"middle-level": 0.0,
"middle-panorama": 0.0,
"mode": "LR > MS (Stereo to Mid-Side)",
"mutel": false,
"muter": false,
"output-gain": 0.0,
"phasel": false,
"phaser": false,
"sc-level": 1.0,
"side-balance": 0.0,
"side-level": 0.0,
"softclip": false,
"stereo-base": 0.0,
"stereo-phase": 0.0
}
}
}

View File

@@ -0,0 +1,283 @@
{
"input": {
"blocklist": [],
"compressor#0": {
"attack": 10.0,
"boost-amount": 6.0,
"boost-threshold": -72.0,
"bypass": false,
"dry": -100.0,
"hpf-frequency": 10.0,
"hpf-mode": "off",
"input-gain": 0.0,
"knee": -6.0,
"lpf-frequency": 20000.0,
"lpf-mode": "off",
"makeup": 0.0,
"mode": "Downward",
"output-gain": 0.0,
"ratio": 4.0,
"release": 100.0,
"release-threshold": -100.0,
"sidechain": {
"lookahead": 0.0,
"mode": "RMS",
"preamp": 0.0,
"reactivity": 10.0,
"source": "Middle",
"stereo-split-source": "Left/Right",
"type": "Feed-forward"
},
"stereo-split": false,
"threshold": -35.0,
"wet": 0.0
},
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -3.0,
"left": {
"band0": {
"frequency": 50.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.23,
"slope": "x1",
"solo": false,
"type": "Hi-pass",
"width": 12.0
},
"band1": {
"frequency": 120.0,
"gain": -2.0,
"mode": "RLC (BT)",
"mute": false,
"q": 6.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 189.58627573536728,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 0.49999999999999933,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 320.0,
"gain": -1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 3.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 2000.0,
"gain": 0.5,
"mode": "RLC (BT)",
"mute": false,
"q": 0.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 5000.0,
"gain": -3.5,
"mode": "RLC (BT)",
"mute": false,
"q": 1.2499999999999993,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 10000.0,
"gain": 1.5,
"mode": "RLC (BT)",
"mute": false,
"q": 2.0,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 7,
"output-gain": 3.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 50.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.23,
"slope": "x1",
"solo": false,
"type": "Hi-pass",
"width": 12.0
},
"band1": {
"frequency": 120.0,
"gain": -2.0,
"mode": "RLC (BT)",
"mute": false,
"q": 6.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 189.58627573536728,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 0.49999999999999933,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 320.0,
"gain": -1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 3.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 2000.0,
"gain": 0.5,
"mode": "RLC (BT)",
"mute": false,
"q": 0.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 5000.0,
"gain": -3.5,
"mode": "RLC (BT)",
"mute": false,
"q": 1.2499999999999993,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 10000.0,
"gain": 1.5,
"mode": "RLC (BT)",
"mute": false,
"q": 2.0,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
}
},
"split-channels": false
},
"gate#0": {
"attack": 1.0,
"bypass": false,
"curve-threshold": -60.0,
"curve-zone": -5.0,
"dry": -100.0,
"hpf-frequency": 10.0,
"hpf-mode": "off",
"hysteresis": false,
"hysteresis-threshold": -12.0,
"hysteresis-zone": -6.0,
"input-gain": 0.0,
"lpf-frequency": 20000.0,
"lpf-mode": "off",
"makeup": 0.0,
"output-gain": 0.0,
"reduction": -20.0,
"release": 280.0,
"sidechain": {
"input": "Internal",
"lookahead": 0.0,
"mode": "RMS",
"preamp": 0.0,
"reactivity": 10.0,
"source": "Middle",
"stereo-split-source": "Left/Right"
},
"stereo-split": false,
"wet": 0.0
},
"limiter#0": {
"alr": false,
"alr-attack": 5.0,
"alr-knee": 0.0,
"alr-release": 50.0,
"attack": 5.0,
"bypass": false,
"dithering": "None",
"external-sidechain": false,
"gain-boost": true,
"input-gain": 0.0,
"lookahead": 5.0,
"mode": "Herm Thin",
"output-gain": 0.0,
"oversampling": "None",
"release": 1.0,
"sidechain-preamp": 0.0,
"stereo-link": 100.0,
"threshold": -10.0
},
"plugins_order": [
"stereo_tools#0",
"gate#0",
"equalizer#0",
"compressor#0",
"limiter#0"
],
"stereo_tools#0": {
"balance-in": 0.22000000000000006,
"balance-out": 0.0,
"bypass": false,
"delay": 0.0,
"input-gain": -5.0,
"middle-level": 0.0,
"middle-panorama": 0.0,
"mode": "LR > MS (Stereo to Mid-Side)",
"mutel": false,
"muter": false,
"output-gain": 0.0,
"phasel": false,
"phaser": false,
"sc-level": 1.0,
"side-balance": 0.0,
"side-level": 0.0,
"softclip": false,
"stereo-base": 0.0,
"stereo-phase": 0.0
}
}
}

View File

@@ -1,219 +0,0 @@
{
"input": {
"blocklist": [],
"compressor#0": {
"attack": 20.0,
"boost-amount": 6.0,
"boost-threshold": -72.0,
"bypass": false,
"dry": -100.0,
"hpf-frequency": 10.0,
"hpf-mode": "off",
"input-gain": 0.0,
"knee": -6.0,
"lpf-frequency": 20000.0,
"lpf-mode": "off",
"makeup": 0.0,
"mode": "Downward",
"output-gain": 0.0,
"ratio": 4.0,
"release": 100.0,
"release-threshold": -100.0,
"sidechain": {
"lookahead": 0.0,
"mode": "RMS",
"preamp": 0.0,
"reactivity": 10.0,
"source": "Middle",
"type": "Feed-forward"
},
"threshold": -12.0,
"wet": 0.0
},
"deesser#0": {
"bypass": false,
"detection": "RMS",
"f1-freq": 6000.0,
"f1-level": 0.0,
"f2-freq": 4500.0,
"f2-level": 12.0,
"f2-q": 1.0,
"input-gain": 0.0,
"laxity": 15,
"makeup": 0.0,
"mode": "Wide",
"output-gain": 0.0,
"ratio": 3.0,
"sc-listen": false,
"threshold": -18.0
},
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": 0.0,
"left": {
"band0": {
"frequency": 135.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.23,
"slope": "x1",
"solo": false,
"type": "Hi-pass"
},
"band1": {
"frequency": 17000.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.23,
"slope": "x1",
"solo": false,
"type": "Lo-pass"
}
},
"mode": "IIR",
"num-bands": 2,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 135.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.23,
"slope": "x1",
"solo": false,
"type": "Hi-pass"
},
"band1": {
"frequency": 17000.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.23,
"slope": "x1",
"solo": false,
"type": "Lo-pass"
}
},
"split-channels": false
},
"filter#0": {
"balance": 0.0,
"bypass": false,
"frequency": 80.0,
"gain": 0.0,
"input-gain": 0.0,
"mode": "RLC (BT)",
"output-gain": 0.0,
"quality": 0.0,
"slope": "x1",
"type": "Bell",
"width": 4.0
},
"gate#0": {
"attack": 5.0,
"bypass": false,
"curve-threshold": -24.0,
"curve-zone": -6.0,
"dry": -100.0,
"hpf-frequency": 10.0,
"hpf-mode": "off",
"hysteresis": false,
"hysteresis-threshold": -12.0,
"hysteresis-zone": -6.0,
"input-gain": 0.0,
"lpf-frequency": 20000.0,
"lpf-mode": "off",
"makeup": 0.0,
"output-gain": 0.0,
"reduction": -12.0,
"release": 100.0,
"sidechain": {
"input": "Internal",
"lookahead": 0.0,
"mode": "RMS",
"preamp": 0.0,
"reactivity": 10.0,
"source": "Middle"
},
"wet": 0.0
},
"limiter#0": {
"alr": false,
"alr-attack": 5.0,
"alr-knee": 0.0,
"alr-release": 50.0,
"attack": 5.0,
"bypass": false,
"dithering": "None",
"external-sidechain": false,
"gain-boost": true,
"input-gain": 0.0,
"lookahead": 5.0,
"mode": "Herm Thin",
"output-gain": 0.0,
"oversampling": "None",
"release": 5.0,
"sidechain-preamp": 0.0,
"stereo-link": 100.0,
"threshold": -1.0
},
"loudness#0": {
"bypass": false,
"clipping": false,
"clipping-range": 0.0,
"fft": "2048",
"input-gain": 0.0,
"output-gain": 17.0,
"std": "Flat",
"volume": -6.0
},
"plugins_order": [
"stereo_tools#0",
"equalizer#0",
"compressor#0",
"deesser#0",
"filter#0",
"gate#0",
"rnnoise#0",
"limiter#0",
"loudness#0"
],
"rnnoise#0": {
"bypass": false,
"enable-vad": true,
"input-gain": 0.0,
"model-path": "",
"output-gain": 0.0,
"release": 5.0,
"vad-thres": 5.0,
"wet": 0.0
},
"stereo_tools#0": {
"balance-in": 0.22000000000000006,
"balance-out": 0.0,
"bypass": false,
"delay": 0.0,
"input-gain": 0.0,
"middle-level": 0.0,
"middle-panorama": 0.0,
"mode": "LR > MS (Stereo to Mid-Side)",
"mutel": false,
"muter": false,
"output-gain": 0.0,
"phasel": false,
"phaser": false,
"sc-level": 1.0,
"side-balance": 0.0,
"side-level": 0.0,
"softclip": false,
"stereo-base": 0.0,
"stereo-phase": 0.0
}
}
}

View File

@@ -0,0 +1,479 @@
{
"output": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -6.2,
"left": {
"band0": {
"frequency": 105.0,
"gain": 2.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 54.0,
"gain": -6.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.78,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 143.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.79,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 199.0,
"gain": 5.8,
"mode": "APO (DR)",
"mute": false,
"q": 2.58,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 947.0,
"gain": -1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2361.0,
"gain": -1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.42,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3557.0,
"gain": 4.8,
"mode": "APO (DR)",
"mute": false,
"q": 3.88,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 5073.0,
"gain": -3.2,
"mode": "APO (DR)",
"mute": false,
"q": 4.57,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 6891.0,
"gain": -3.8,
"mode": "APO (DR)",
"mute": false,
"q": 3.19,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -4.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 2.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 54.0,
"gain": -6.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.78,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 143.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.79,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 199.0,
"gain": 5.8,
"mode": "APO (DR)",
"mute": false,
"q": 2.58,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 947.0,
"gain": -1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2361.0,
"gain": -1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.42,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3557.0,
"gain": 4.8,
"mode": "APO (DR)",
"mute": false,
"q": 3.88,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 5073.0,
"gain": -3.2,
"mode": "APO (DR)",
"mute": false,
"q": 4.57,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 6891.0,
"gain": -3.8,
"mode": "APO (DR)",
"mute": false,
"q": 3.19,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -4.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"equalizer#1": {
"balance": 0.0,
"bypass": false,
"input-gain": -4.6,
"left": {
"band0": {
"frequency": 31.0,
"gain": 4.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band1": {
"frequency": 64.0,
"gain": 2.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 125.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 250.0,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 500.0,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 1000.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 2000.0,
"gain": -2.2,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 4000.0,
"gain": -1.7,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 5000.0,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 16000.0,
"gain": 2.6,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 31.0,
"gain": 4.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band1": {
"frequency": 64.0,
"gain": 2.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 125.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 250.0,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 500.0,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 1000.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 2000.0,
"gain": -2.2,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 4000.0,
"gain": -1.7,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 5000.0,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 16000.0,
"gain": 2.6,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
}
},
"split-channels": false
},
"plugins_order": [
"equalizer#0",
"equalizer#1"
]
}
}

View File

@@ -0,0 +1,243 @@
{
"output": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -6.2,
"left": {
"band0": {
"frequency": 105.0,
"gain": 2.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 54.0,
"gain": -6.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.78,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 143.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.79,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 199.0,
"gain": 5.8,
"mode": "APO (DR)",
"mute": false,
"q": 2.58,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 947.0,
"gain": -1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2361.0,
"gain": -1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.42,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3557.0,
"gain": 4.8,
"mode": "APO (DR)",
"mute": false,
"q": 3.88,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 5073.0,
"gain": -3.2,
"mode": "APO (DR)",
"mute": false,
"q": 4.57,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 6891.0,
"gain": -3.8,
"mode": "APO (DR)",
"mute": false,
"q": 3.19,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -4.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 2.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 54.0,
"gain": -6.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.78,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 143.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.79,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 199.0,
"gain": 5.8,
"mode": "APO (DR)",
"mute": false,
"q": 2.58,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 947.0,
"gain": -1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2361.0,
"gain": -1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.42,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3557.0,
"gain": 4.8,
"mode": "APO (DR)",
"mute": false,
"q": 3.88,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 5073.0,
"gain": -3.2,
"mode": "APO (DR)",
"mute": false,
"q": 4.57,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 6891.0,
"gain": -3.8,
"mode": "APO (DR)",
"mute": false,
"q": 3.19,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -4.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"plugins_order": [
"equalizer#0"
]
}
}

View File

@@ -4,102 +4,113 @@
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"input-gain": -5.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -107,105 +118,116 @@
}
},
"mode": "IIR",
"num-bands": 9,
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",

View File

@@ -4,102 +4,113 @@
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"input-gain": -5.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -107,105 +118,116 @@
}
},
"mode": "IIR",
"num-bands": 9,
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",

View File

@@ -4,102 +4,113 @@
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"input-gain": -5.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -107,105 +118,116 @@
}
},
"mode": "IIR",
"num-bands": 9,
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",

View File

@@ -4,102 +4,113 @@
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"input-gain": -5.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -107,105 +118,116 @@
}
},
"mode": "IIR",
"num-bands": 9,
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",

View File

@@ -4,102 +4,113 @@
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"input-gain": -5.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -107,105 +118,116 @@
}
},
"mode": "IIR",
"num-bands": 9,
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",

View File

@@ -4,102 +4,113 @@
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"input-gain": -5.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -107,105 +118,116 @@
}
},
"mode": "IIR",
"num-bands": 9,
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",

View File

@@ -4,102 +4,113 @@
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"input-gain": -5.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -107,105 +118,116 @@
}
},
"mode": "IIR",
"num-bands": 9,
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",

View File

@@ -4,102 +4,113 @@
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"input-gain": -5.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -107,105 +118,116 @@
}
},
"mode": "IIR",
"num-bands": 9,
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -217,11 +239,11 @@
"equalizer#1": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.5,
"input-gain": -4.6,
"left": {
"band0": {
"frequency": 31.0,
"gain": 5.5,
"gain": 4.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -232,7 +254,7 @@
},
"band1": {
"frequency": 64.0,
"gain": 4.1,
"gain": 2.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -243,7 +265,7 @@
},
"band2": {
"frequency": 125.0,
"gain": 3.6,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.41,
@@ -254,7 +276,7 @@
},
"band3": {
"frequency": 250.0,
"gain": 2.2,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -265,7 +287,7 @@
},
"band4": {
"frequency": 500.0,
"gain": 1.2,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -287,7 +309,7 @@
},
"band6": {
"frequency": 2000.0,
"gain": 0.0,
"gain": -2.2,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -298,7 +320,7 @@
},
"band7": {
"frequency": 4000.0,
"gain": 0.0,
"gain": -1.7,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -309,7 +331,7 @@
},
"band8": {
"frequency": 5000.0,
"gain": 0.0,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -320,7 +342,7 @@
},
"band9": {
"frequency": 16000.0,
"gain": 0.0,
"gain": 2.6,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -338,7 +360,7 @@
"right": {
"band0": {
"frequency": 31.0,
"gain": 5.5,
"gain": 4.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -349,7 +371,7 @@
},
"band1": {
"frequency": 64.0,
"gain": 4.1,
"gain": 2.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -360,7 +382,7 @@
},
"band2": {
"frequency": 125.0,
"gain": 3.6,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.41,
@@ -371,7 +393,7 @@
},
"band3": {
"frequency": 250.0,
"gain": 2.2,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -382,7 +404,7 @@
},
"band4": {
"frequency": 500.0,
"gain": 1.2,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -404,7 +426,7 @@
},
"band6": {
"frequency": 2000.0,
"gain": 0.0,
"gain": -2.2,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -415,7 +437,7 @@
},
"band7": {
"frequency": 4000.0,
"gain": 0.0,
"gain": -1.7,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -426,7 +448,7 @@
},
"band8": {
"frequency": 5000.0,
"gain": 0.0,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -437,7 +459,7 @@
},
"band9": {
"frequency": 16000.0,
"gain": 0.0,
"gain": 2.6,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,

View File

@@ -4,102 +4,113 @@
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"input-gain": -5.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -107,105 +118,116 @@
}
},
"mode": "IIR",
"num-bands": 9,
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",

View File

@@ -0,0 +1,243 @@
{
"output": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 68.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 136.0,
"gain": -5.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.87,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 242.0,
"gain": 5.3,
"mode": "APO (DR)",
"mute": false,
"q": 2.04,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 677.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.32,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2039.0,
"gain": 3.1,
"mode": "APO (DR)",
"mute": false,
"q": 2.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3208.0,
"gain": 1.4,
"mode": "APO (DR)",
"mute": false,
"q": 3.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 4202.0,
"gain": 5.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 8596.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"plugins_order": [
"equalizer#0"
]
}
}

View File

@@ -4,102 +4,113 @@
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"input-gain": -6.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": 6.9,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 126.0,
"gain": 1.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.4,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 127.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 405.0,
"gain": 0.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.8,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 673.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 1914.0,
"gain": 5.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.2,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3374.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 1.62,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 5356.0,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 2.7,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 6996.0,
"gain": -1.9,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 5.96,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -1.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -107,105 +118,116 @@
}
},
"mode": "IIR",
"num-bands": 9,
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": 6.9,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 126.0,
"gain": 1.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 2.4,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 127.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"q": 0.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"frequency": 405.0,
"gain": 0.3,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"q": 2.8,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"frequency": 673.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"frequency": 1914.0,
"gain": 5.1,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"q": 2.2,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"frequency": 3374.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 1.62,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"frequency": 5356.0,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 2.7,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 6996.0,
"gain": -1.9,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 5.96,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -1.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -217,11 +239,11 @@
"equalizer#1": {
"balance": 0.0,
"bypass": false,
"input-gain": 0.0,
"input-gain": -4.6,
"left": {
"band0": {
"frequency": 31.0,
"gain": 0.0,
"gain": 4.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -232,7 +254,7 @@
},
"band1": {
"frequency": 64.0,
"gain": 0.0,
"gain": 2.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -254,7 +276,7 @@
},
"band3": {
"frequency": 250.0,
"gain": 0.0,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -265,7 +287,7 @@
},
"band4": {
"frequency": 500.0,
"gain": 0.0,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -287,7 +309,7 @@
},
"band6": {
"frequency": 2000.0,
"gain": -1.0,
"gain": -2.2,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -298,7 +320,7 @@
},
"band7": {
"frequency": 4000.0,
"gain": -2.2,
"gain": -1.7,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -309,7 +331,7 @@
},
"band8": {
"frequency": 5000.0,
"gain": 0.0,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -320,7 +342,7 @@
},
"band9": {
"frequency": 16000.0,
"gain": 0.0,
"gain": 2.6,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -338,7 +360,7 @@
"right": {
"band0": {
"frequency": 31.0,
"gain": 0.0,
"gain": 4.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -349,7 +371,7 @@
},
"band1": {
"frequency": 64.0,
"gain": 0.0,
"gain": 2.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -371,7 +393,7 @@
},
"band3": {
"frequency": 250.0,
"gain": 0.0,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -382,7 +404,7 @@
},
"band4": {
"frequency": 500.0,
"gain": 0.0,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
@@ -404,7 +426,7 @@
},
"band6": {
"frequency": 2000.0,
"gain": -1.0,
"gain": -2.2,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -415,7 +437,7 @@
},
"band7": {
"frequency": 4000.0,
"gain": -2.2,
"gain": -1.7,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -426,7 +448,7 @@
},
"band8": {
"frequency": 5000.0,
"gain": 0.0,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
@@ -437,7 +459,7 @@
},
"band9": {
"frequency": 16000.0,
"gain": 0.0,
"gain": 2.6,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,

View File

@@ -0,0 +1,243 @@
{
"output": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -6.2,
"left": {
"band0": {
"frequency": 105.0,
"gain": 6.9,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 126.0,
"gain": 1.7,
"mode": "APO (DR)",
"mute": false,
"q": 2.4,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 127.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 405.0,
"gain": 0.3,
"mode": "APO (DR)",
"mute": false,
"q": 2.8,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 673.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 1914.0,
"gain": 5.1,
"mode": "APO (DR)",
"mute": false,
"q": 2.2,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3374.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.62,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 5356.0,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.7,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 6996.0,
"gain": -1.9,
"mode": "APO (DR)",
"mute": false,
"q": 5.96,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -1.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 6.9,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 126.0,
"gain": 1.7,
"mode": "APO (DR)",
"mute": false,
"q": 2.4,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 127.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 405.0,
"gain": 0.3,
"mode": "APO (DR)",
"mute": false,
"q": 2.8,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 673.0,
"gain": -0.4,
"mode": "APO (DR)",
"mute": false,
"q": 2.74,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 1914.0,
"gain": 5.1,
"mode": "APO (DR)",
"mute": false,
"q": 2.2,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3374.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.62,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 5356.0,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.7,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 6996.0,
"gain": -1.9,
"mode": "APO (DR)",
"mute": false,
"q": 5.96,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -1.4,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"plugins_order": [
"equalizer#0"
]
}
}

View File

@@ -0,0 +1,479 @@
{
"output": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.6,
"left": {
"band0": {
"frequency": 105.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 153.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.43,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 784.0,
"gain": 1.8,
"mode": "APO (DR)",
"mute": false,
"q": 0.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1404.0,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.28,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 2121.0,
"gain": -2.8,
"mode": "APO (DR)",
"mute": false,
"q": 1.1,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 3370.0,
"gain": 0.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 4987.0,
"gain": -1.8,
"mode": "APO (DR)",
"mute": false,
"q": 3.43,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 6301.0,
"gain": 5.8,
"mode": "APO (DR)",
"mute": false,
"q": 1.21,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 9404.0,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.8,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 153.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.43,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 784.0,
"gain": 1.8,
"mode": "APO (DR)",
"mute": false,
"q": 0.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1404.0,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.28,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 2121.0,
"gain": -2.8,
"mode": "APO (DR)",
"mute": false,
"q": 1.1,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 3370.0,
"gain": 0.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 4987.0,
"gain": -1.8,
"mode": "APO (DR)",
"mute": false,
"q": 3.43,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 6301.0,
"gain": 5.8,
"mode": "APO (DR)",
"mute": false,
"q": 1.21,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 9404.0,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.8,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"equalizer#1": {
"balance": 0.0,
"bypass": false,
"input-gain": -4.6,
"left": {
"band0": {
"frequency": 31.0,
"gain": 4.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band1": {
"frequency": 64.0,
"gain": 2.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 125.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 250.0,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 500.0,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 1000.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 2000.0,
"gain": -2.2,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 4000.0,
"gain": -1.7,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 5000.0,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 16000.0,
"gain": 2.6,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 31.0,
"gain": 4.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band1": {
"frequency": 64.0,
"gain": 2.6,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 125.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 250.0,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 500.0,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 1000.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 2000.0,
"gain": -2.2,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 4000.0,
"gain": -1.7,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 5000.0,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 16000.0,
"gain": 2.6,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
}
},
"split-channels": false
},
"plugins_order": [
"equalizer#0",
"equalizer#1"
]
}
}

View File

@@ -0,0 +1,243 @@
{
"output": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.6,
"left": {
"band0": {
"frequency": 105.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 153.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.43,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 784.0,
"gain": 1.8,
"mode": "APO (DR)",
"mute": false,
"q": 0.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1404.0,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.28,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 2121.0,
"gain": -2.8,
"mode": "APO (DR)",
"mute": false,
"q": 1.1,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 3370.0,
"gain": 0.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 4987.0,
"gain": -1.8,
"mode": "APO (DR)",
"mute": false,
"q": 3.43,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 6301.0,
"gain": 5.8,
"mode": "APO (DR)",
"mute": false,
"q": 1.21,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 9404.0,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.8,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 2.2,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 153.0,
"gain": -2.6,
"mode": "APO (DR)",
"mute": false,
"q": 0.43,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 784.0,
"gain": 1.8,
"mode": "APO (DR)",
"mute": false,
"q": 0.72,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1404.0,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.28,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 2121.0,
"gain": -2.8,
"mode": "APO (DR)",
"mute": false,
"q": 1.1,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 3370.0,
"gain": 0.9,
"mode": "APO (DR)",
"mute": false,
"q": 3.24,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 4987.0,
"gain": -1.8,
"mode": "APO (DR)",
"mute": false,
"q": 3.43,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 6301.0,
"gain": 5.8,
"mode": "APO (DR)",
"mute": false,
"q": 1.21,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 9404.0,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.8,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"plugins_order": [
"equalizer#0"
]
}
}

View File

@@ -4,33 +4,77 @@
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"input-gain": -3.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 150.0,
"gain": -2.9,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 263.0,
"gain": -0.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.9,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 598.0,
"gain": 0.2,
"mode": "APO (DR)",
"mute": false,
"q": 2.2,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 622.0,
"gain": 0.6,
"mode": "APO (DR)",
"mute": false,
"q": 2.58,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 850.0,
"gain": 1.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.46,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 1470.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
@@ -39,67 +83,34 @@
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"band7": {
"frequency": 3122.0,
"gain": 4.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 1.61,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 6329.0,
"gain": 1.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 6.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -107,36 +118,80 @@
}
},
"mode": "IIR",
"num-bands": 9,
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 150.0,
"gain": -2.9,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"frequency": 263.0,
"gain": -0.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.9,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 598.0,
"gain": 0.2,
"mode": "APO (DR)",
"mute": false,
"q": 2.2,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 622.0,
"gain": 0.6,
"mode": "APO (DR)",
"mute": false,
"q": 2.58,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 850.0,
"gain": 1.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.46,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 1470.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
@@ -145,67 +200,34 @@
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"band7": {
"frequency": 3122.0,
"gain": 4.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 1.61,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 6329.0,
"gain": 1.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 6.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",

View File

@@ -4,33 +4,77 @@
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"input-gain": -3.9,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 150.0,
"gain": -2.9,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band2": {
"frequency": 263.0,
"gain": -0.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.9,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"band3": {
"frequency": 598.0,
"gain": 0.2,
"mode": "APO (DR)",
"mute": false,
"q": 2.2,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 622.0,
"gain": 0.6,
"mode": "APO (DR)",
"mute": false,
"q": 2.58,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 850.0,
"gain": 1.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.46,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 1470.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
@@ -39,67 +83,34 @@
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"band7": {
"frequency": 3122.0,
"gain": 4.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 1.61,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 6329.0,
"gain": 1.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 6.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
@@ -107,36 +118,80 @@
}
},
"mode": "IIR",
"num-bands": 9,
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"frequency": 150.0,
"gain": -2.9,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band2": {
"frequency": 263.0,
"gain": -0.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.9,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"band3": {
"frequency": 598.0,
"gain": 0.2,
"mode": "APO (DR)",
"mute": false,
"q": 2.2,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 622.0,
"gain": 0.6,
"mode": "APO (DR)",
"mute": false,
"q": 2.58,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 850.0,
"gain": 1.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.46,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 1470.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
@@ -145,67 +200,34 @@
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"band7": {
"frequency": 3122.0,
"gain": 4.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"q": 1.61,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"frequency": 6329.0,
"gain": 1.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"q": 6.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -0.7,
"mode": "APO (DR)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",

View File

@@ -1,523 +0,0 @@
{
"output": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -5.1,
"left": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 9,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 1.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 135.0,
"gain": -5.3,
"mode": "APO (DR)",
"mute": false,
"q": 0.9,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 240.0,
"gain": 5.1,
"mode": "APO (DR)",
"mute": false,
"q": 2.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 1100.0,
"gain": -1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.4,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1500.0,
"gain": 4.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
},
"band5": {
"frequency": 2700.0,
"gain": -1.2,
"mode": "APO (DR)",
"mute": false,
"q": 4.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 6000.0,
"gain": -2.3,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 8100.0,
"gain": -6.5,
"mode": "APO (DR)",
"mute": false,
"q": 3.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 10000.0,
"gain": -2.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.71,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"equalizer#1": {
"balance": 0.0,
"bypass": false,
"input-gain": -4.0,
"left": {
"band0": {
"frequency": 20.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band1": {
"frequency": 30.0,
"gain": 1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band10": {
"frequency": 5000.0,
"gain": 2.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band11": {
"frequency": 10000.0,
"gain": 3.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band12": {
"frequency": 20000.0,
"gain": 4.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 50.0,
"gain": 1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 100.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 200.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 300.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 500.0,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 1000.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 2000.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 3000.0,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 13,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 20.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band1": {
"frequency": 30.0,
"gain": 1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band10": {
"frequency": 5000.0,
"gain": 2.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band11": {
"frequency": 10000.0,
"gain": 3.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band12": {
"frequency": 20000.0,
"gain": 4.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 50.0,
"gain": 1.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 100.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 200.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 300.0,
"gain": 0.0,
"mode": "APO (DR)",
"mute": false,
"q": 1.409999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 500.0,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 1000.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 2000.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 3000.0,
"gain": 1.0,
"mode": "RLC (BT)",
"mute": false,
"q": 1.41,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
}
},
"split-channels": false
},
"plugins_order": [
"equalizer#0",
"equalizer#1"
]
}
}

View File

@@ -1,19 +1,2 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/tiynger/.gtkrc-2.0.mine"
gtk-theme-name="Arc-Gruvbox"
gtk-icon-theme-name="Adwaita"
gtk-font-name="IBM Plex Mono 12"
gtk-cursor-theme-name="Adwaita"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_TEXT
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=1
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="rgb"
gtk-theme-name="AdwaitaDark"
gtk-font-name="Sans 12"

View File

@@ -1,16 +1,4 @@
[Settings]
gtk-theme-name=Arc-Gruvbox
gtk-icon-theme-name=Adwaita
gtk-font-name=IBM Plex Mono 12
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_TEXT
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=1
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=rgb
gtk-cursor-theme-name=Adwaita
gtk-application-prefer-dark-theme = true
gtk-icon-theme-name = Adwaita
gtk-font-name = Sans 12

View File

@@ -0,0 +1,4 @@
[Settings]
gtk-application-prefer-dark-theme = true
gtk-icon-theme-name = Adwaita
gtk-font-name = Sans 12

View File

@@ -22,3 +22,11 @@ x-scheme-handler/mailto=mail.desktop
x-scheme-handler/mid=mail.desktop
message/rfc822=mail.desktop
x-scheme-handler/msteams=teams.desktop
x-scheme-handler/tonsite=org.telegram.desktop.desktop
inode/directory=file-browser.desktop
x-scheme-handler/betterdiscord=discord.desktop
[Added Associations]
application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop;
x-scheme-handler/tonsite=org.telegram.desktop.desktop;
text/calendar=org.mozilla.Thunderbird.desktop;

View File

@@ -197,3 +197,4 @@ h seek -5
j seek -60
k seek 60
S cycle sub
MBTN_LEFT no-osd cycle pause

4
.config/mpv/mpv.conf Normal file
View File

@@ -0,0 +1,4 @@
fs=yes
# for using thumbnail previews the following setting is needed
# reference: https://github.com/TheAMM/mpv_thumbnail_script
osc=no

View File

@@ -0,0 +1,3 @@
autogenerate=yes
autogenerate_max_duration=14400
mpv_no_sub=yes

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,736 @@
--[[
Copyright (C) 2017 AMM
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
]]--
--[[
mpv_thumbnail_script.lua 0.4.2 - commit 682becf (branch master)
https://github.com/TheAMM/mpv_thumbnail_script
Built on 2024-04-06 15:30:02
]]--
local assdraw = require 'mp.assdraw'
local msg = require 'mp.msg'
local opt = require 'mp.options'
local utils = require 'mp.utils'
-- Determine platform --
ON_WINDOWS = (package.config:sub(1,1) ~= '/')
-- Some helper functions needed to parse the options --
function isempty(v) return (v == false) or (v == nil) or (v == "") or (v == 0) or (type(v) == "table" and next(v) == nil) end
function divmod (a, b)
return math.floor(a / b), a % b
end
-- Better modulo
function bmod( i, N )
return (i % N + N) % N
end
function join_paths(...)
local sep = ON_WINDOWS and "\\" or "/"
local result = "";
for i, p in pairs({...}) do
if p ~= "" then
if is_absolute_path(p) then
result = p
else
result = (result ~= "") and (result:gsub("[\\"..sep.."]*$", "") .. sep .. p) or p
end
end
end
return result:gsub("[\\"..sep.."]*$", "")
end
-- /some/path/file.ext -> /some/path, file.ext
function split_path( path )
local sep = ON_WINDOWS and "\\" or "/"
local first_index, last_index = path:find('^.*' .. sep)
if last_index == nil then
return "", path
else
local dir = path:sub(0, last_index-1)
local file = path:sub(last_index+1, -1)
return dir, file
end
end
function is_absolute_path( path )
local tmp, is_win = path:gsub("^[A-Z]:\\", "")
local tmp, is_unix = path:gsub("^/", "")
return (is_win > 0) or (is_unix > 0)
end
function Set(source)
local set = {}
for _, l in ipairs(source) do set[l] = true end
return set
end
---------------------------
-- More helper functions --
---------------------------
-- Removes all keys from a table, without destroying the reference to it
function clear_table(target)
for key, value in pairs(target) do
target[key] = nil
end
end
function shallow_copy(target)
local copy = {}
for k, v in pairs(target) do
copy[k] = v
end
return copy
end
-- Rounds to given decimals. eg. round_dec(3.145, 0) => 3
function round_dec(num, idp)
local mult = 10^(idp or 0)
return math.floor(num * mult + 0.5) / mult
end
function file_exists(name)
local f = io.open(name, "rb")
if f ~= nil then
local ok, err, code = f:read(1)
io.close(f)
return code == nil
else
return false
end
end
function path_exists(name)
local f = io.open(name, "rb")
if f ~= nil then
io.close(f)
return true
else
return false
end
end
function create_directories(path)
local cmd
if ON_WINDOWS then
cmd = { args = {"cmd", "/c", "mkdir", path} }
else
cmd = { args = {"mkdir", "-p", path} }
end
utils.subprocess(cmd)
end
-- Find an executable in PATH or CWD with the given name
function find_executable(name)
local delim = ON_WINDOWS and ";" or ":"
local pwd = os.getenv("PWD") or utils.getcwd()
local path = os.getenv("PATH")
local env_path = pwd .. delim .. path -- Check CWD first
local result, filename
for path_dir in env_path:gmatch("[^"..delim.."]+") do
filename = join_paths(path_dir, name)
if file_exists(filename) then
result = filename
break
end
end
return result
end
local ExecutableFinder = { path_cache = {} }
-- Searches for an executable and caches the result if any
function ExecutableFinder:get_executable_path( name, raw_name )
name = ON_WINDOWS and not raw_name and (name .. ".exe") or name
if self.path_cache[name] == nil then
self.path_cache[name] = find_executable(name) or false
end
return self.path_cache[name]
end
-- Format seconds to HH.MM.SS.sss
function format_time(seconds, sep, decimals)
decimals = decimals == nil and 3 or decimals
sep = sep and sep or "."
local s = seconds
local h, s = divmod(s, 60*60)
local m, s = divmod(s, 60)
local second_format = string.format("%%0%d.%df", 2+(decimals > 0 and decimals+1 or 0), decimals)
return string.format("%02d"..sep.."%02d"..sep..second_format, h, m, s)
end
-- Format seconds to 1h 2m 3.4s
function format_time_hms(seconds, sep, decimals, force_full)
decimals = decimals == nil and 1 or decimals
sep = sep ~= nil and sep or " "
local s = seconds
local h, s = divmod(s, 60*60)
local m, s = divmod(s, 60)
if force_full or h > 0 then
return string.format("%dh"..sep.."%dm"..sep.."%." .. tostring(decimals) .. "fs", h, m, s)
elseif m > 0 then
return string.format("%dm"..sep.."%." .. tostring(decimals) .. "fs", m, s)
else
return string.format("%." .. tostring(decimals) .. "fs", s)
end
end
-- Writes text on OSD and console
function log_info(txt, timeout)
timeout = timeout or 1.5
msg.info(txt)
mp.osd_message(txt, timeout)
end
-- Join table items, ala ({"a", "b", "c"}, "=", "-", ", ") => "=a-, =b-, =c-"
function join_table(source, before, after, sep)
before = before or ""
after = after or ""
sep = sep or ", "
local result = ""
for i, v in pairs(source) do
if not isempty(v) then
local part = before .. v .. after
if i == 1 then
result = part
else
result = result .. sep .. part
end
end
end
return result
end
function wrap(s, char)
char = char or "'"
return char .. s .. char
end
-- Wraps given string into 'string' and escapes any 's in it
function escape_and_wrap(s, char, replacement)
char = char or "'"
replacement = replacement or "\\" .. char
return wrap(string.gsub(s, char, replacement), char)
end
-- Escapes single quotes in a string and wraps the input in single quotes
function escape_single_bash(s)
return escape_and_wrap(s, "'", "'\\''")
end
-- Returns (a .. b) if b is not empty or nil
function joined_or_nil(a, b)
return not isempty(b) and (a .. b) or nil
end
-- Put items from one table into another
function extend_table(target, source)
for i, v in pairs(source) do
table.insert(target, v)
end
end
-- Creates a handle and filename for a temporary random file (in current directory)
function create_temporary_file(base, mode, suffix)
local handle, filename
suffix = suffix or ""
while true do
filename = base .. tostring(math.random(1, 5000)) .. suffix
handle = io.open(filename, "r")
if not handle then
handle = io.open(filename, mode)
break
end
io.close(handle)
end
return handle, filename
end
function get_processor_count()
local proc_count
if ON_WINDOWS then
proc_count = tonumber(os.getenv("NUMBER_OF_PROCESSORS"))
else
local cpuinfo_handle = io.open("/proc/cpuinfo")
if cpuinfo_handle ~= nil then
local cpuinfo_contents = cpuinfo_handle:read("*a")
local _, replace_count = cpuinfo_contents:gsub('processor', '')
proc_count = replace_count
end
end
if proc_count and proc_count > 0 then
return proc_count
else
return nil
end
end
function substitute_values(string, values)
local substitutor = function(match)
if match == "%" then
return "%"
else
-- nil is discarded by gsub
return values[match]
end
end
local substituted = string:gsub('%%(.)', substitutor)
return substituted
end
-- ASS HELPERS --
function round_rect_top( ass, x0, y0, x1, y1, r )
local c = 0.551915024494 * r -- circle approximation
ass:move_to(x0 + r, y0)
ass:line_to(x1 - r, y0) -- top line
if r > 0 then
ass:bezier_curve(x1 - r + c, y0, x1, y0 + r - c, x1, y0 + r) -- top right corner
end
ass:line_to(x1, y1) -- right line
ass:line_to(x0, y1) -- bottom line
ass:line_to(x0, y0 + r) -- left line
if r > 0 then
ass:bezier_curve(x0, y0 + r - c, x0 + r - c, y0, x0 + r, y0) -- top left corner
end
end
function round_rect(ass, x0, y0, x1, y1, rtl, rtr, rbr, rbl)
local c = 0.551915024494
ass:move_to(x0 + rtl, y0)
ass:line_to(x1 - rtr, y0) -- top line
if rtr > 0 then
ass:bezier_curve(x1 - rtr + rtr*c, y0, x1, y0 + rtr - rtr*c, x1, y0 + rtr) -- top right corner
end
ass:line_to(x1, y1 - rbr) -- right line
if rbr > 0 then
ass:bezier_curve(x1, y1 - rbr + rbr*c, x1 - rbr + rbr*c, y1, x1 - rbr, y1) -- bottom right corner
end
ass:line_to(x0 + rbl, y1) -- bottom line
if rbl > 0 then
ass:bezier_curve(x0 + rbl - rbl*c, y1, x0, y1 - rbl + rbl*c, x0, y1 - rbl) -- bottom left corner
end
ass:line_to(x0, y0 + rtl) -- left line
if rtl > 0 then
ass:bezier_curve(x0, y0 + rtl - rtl*c, x0 + rtl - rtl*c, y0, x0 + rtl, y0) -- top left corner
end
end
local SCRIPT_NAME = "mpv_thumbnail_script"
local default_cache_base = ON_WINDOWS and os.getenv("TEMP") or "/tmp/"
local thumbnailer_options = {
-- The thumbnail directory
cache_directory = join_paths(default_cache_base, "mpv_thumbs_cache"),
------------------------
-- Generation options --
------------------------
-- Automatically generate the thumbnails on video load, without a keypress
autogenerate = true,
-- Only automatically thumbnail videos shorter than this (seconds)
autogenerate_max_duration = 3600, -- 1 hour
-- SHA1-sum filenames over this length
-- It's nice to know what files the thumbnails are (hence directory names)
-- but long URLs may approach filesystem limits.
hash_filename_length = 128,
-- Use mpv to generate thumbnail even if ffmpeg is found in PATH
-- ffmpeg does not handle ordered chapters (MKVs which rely on other MKVs)!
-- mpv is a bit slower, but has better support overall (eg. subtitles in the previews)
prefer_mpv = true,
-- Explicitly disable subtitles on the mpv sub-calls
mpv_no_sub = false,
-- Add a "--no-config" to the mpv sub-call arguments
mpv_no_config = false,
-- Add a "--profile=<mpv_profile>" to the mpv sub-call arguments
-- Use "" to disable
mpv_profile = "",
-- Output debug logs to <thumbnail_path>.log, ala <cache_directory>/<video_filename>/000000.bgra.log
-- The logs are removed after successful encodes, unless you set mpv_keep_logs below
mpv_logs = true,
-- Keep all mpv logs, even the succesfull ones
mpv_keep_logs = false,
-- Disable the built-in keybind ("T") to add your own
disable_keybinds = false,
---------------------
-- Display options --
---------------------
-- Move the thumbnail up or down
-- For example:
-- topbar/bottombar: 24
-- rest: 0
vertical_offset = 24,
-- Adjust background padding
-- Examples:
-- topbar: 0, 10, 10, 10
-- bottombar: 10, 0, 10, 10
-- slimbox/box: 10, 10, 10, 10
pad_top = 10,
pad_bot = 0,
pad_left = 10,
pad_right = 10,
-- If true, pad values are screen-pixels. If false, video-pixels.
pad_in_screenspace = true,
-- Calculate pad into the offset
offset_by_pad = true,
-- Background color in BBGGRR
background_color = "000000",
-- Alpha: 0 - fully opaque, 255 - transparent
background_alpha = 80,
-- Keep thumbnail on the screen near left or right side
constrain_to_screen = true,
-- Do not display the thumbnailing progress
hide_progress = false,
-----------------------
-- Thumbnail options --
-----------------------
-- The maximum dimensions of the thumbnails (pixels)
thumbnail_width = 200,
thumbnail_height = 200,
-- The thumbnail count target
-- (This will result in a thumbnail every ~10 seconds for a 25 minute video)
thumbnail_count = 150,
-- The above target count will be adjusted by the minimum and
-- maximum time difference between thumbnails.
-- The thumbnail_count will be used to calculate a target separation,
-- and min/max_delta will be used to constrict it.
-- In other words, thumbnails will be:
-- at least min_delta seconds apart (limiting the amount)
-- at most max_delta seconds apart (raising the amount if needed)
min_delta = 5,
-- 120 seconds aka 2 minutes will add more thumbnails when the video is over 5 hours!
max_delta = 90,
-- Overrides for remote urls (you generally want less thumbnails!)
-- Thumbnailing network paths will be done with mpv
-- Allow thumbnailing network paths (naive check for "://")
thumbnail_network = false,
-- Override thumbnail count, min/max delta
remote_thumbnail_count = 60,
remote_min_delta = 15,
remote_max_delta = 120,
-- Try to grab the raw stream and disable ytdl for the mpv subcalls
-- Much faster than passing the url to ytdl again, but may cause problems with some sites
remote_direct_stream = true,
}
read_options(thumbnailer_options, SCRIPT_NAME)
function skip_nil(tbl)
local n = {}
for k, v in pairs(tbl) do
table.insert(n, v)
end
return n
end
function create_thumbnail_mpv(file_path, timestamp, size, output_path, options)
options = options or {}
local ytdl_disabled = not options.enable_ytdl and (mp.get_property_native("ytdl") == false
or thumbnailer_options.remote_direct_stream)
local header_fields_arg = nil
local header_fields = mp.get_property_native("http-header-fields")
if #header_fields > 0 then
-- We can't escape the headers, mpv won't parse "--http-header-fields='Name: value'" properly
header_fields_arg = "--http-header-fields=" .. table.concat(header_fields, ",")
end
local profile_arg = nil
if thumbnailer_options.mpv_profile ~= "" then
profile_arg = "--profile=" .. thumbnailer_options.mpv_profile
end
local log_arg = "--log-file=" .. output_path .. ".log"
local mpv_command = skip_nil({
"mpv",
-- Hide console output
"--msg-level=all=no",
-- Disable ytdl
(ytdl_disabled and "--no-ytdl" or nil),
-- Pass HTTP headers from current instance
header_fields_arg,
-- Pass User-Agent and Referer - should do no harm even with ytdl active
"--user-agent=" .. mp.get_property_native("user-agent"),
"--referrer=" .. mp.get_property_native("referrer"),
-- Disable hardware decoding
"--hwdec=no",
-- Insert --no-config, --profile=... and --log-file if enabled
(thumbnailer_options.mpv_no_config and "--no-config" or nil),
profile_arg,
(thumbnailer_options.mpv_logs and log_arg or nil),
file_path,
"--start=" .. tostring(timestamp),
"--frames=1",
"--hr-seek=yes",
"--no-audio",
-- Optionally disable subtitles
(thumbnailer_options.mpv_no_sub and "--no-sub" or nil),
("--vf=scale=%d:%d"):format(size.w, size.h),
"--vf-add=format=bgra",
"--of=rawvideo",
"--ovc=rawvideo",
"--o=" .. output_path
})
return utils.subprocess({args=mpv_command})
end
function create_thumbnail_ffmpeg(file_path, timestamp, size, output_path)
local ffmpeg_command = {
"ffmpeg",
"-loglevel", "quiet",
"-noaccurate_seek",
"-ss", format_time(timestamp, ":"),
"-i", file_path,
"-frames:v", "1",
"-an",
"-vf", ("scale=%d:%d"):format(size.w, size.h),
"-c:v", "rawvideo",
"-pix_fmt", "bgra",
"-f", "rawvideo",
"-y", output_path
}
return utils.subprocess({args=ffmpeg_command})
end
function check_output(ret, output_path, is_mpv)
local log_path = output_path .. ".log"
local success = true
if ret.killed_by_us then
return nil
else
if ret.error or ret.status ~= 0 then
msg.error("Thumbnailing command failed!")
msg.error("mpv process error:", ret.error)
msg.error("Process stdout:", ret.stdout)
if is_mpv then
msg.error("Debug log:", log_path)
end
success = false
end
if not file_exists(output_path) then
msg.error("Output file missing!", output_path)
success = false
end
end
if is_mpv and not thumbnailer_options.mpv_keep_logs then
-- Remove successful debug logs
if success and file_exists(log_path) then
os.remove(log_path)
end
end
return success
end
function do_worker_job(state_json_string, frames_json_string)
msg.debug("Handling given job")
local thumb_state, err = utils.parse_json(state_json_string)
if err then
msg.error("Failed to parse state JSON")
return
end
local thumbnail_indexes, err = utils.parse_json(frames_json_string)
if err then
msg.error("Failed to parse thumbnail frame indexes")
return
end
local thumbnail_func = create_thumbnail_mpv
if not thumbnailer_options.prefer_mpv then
if ExecutableFinder:get_executable_path("ffmpeg") then
thumbnail_func = create_thumbnail_ffmpeg
else
msg.warn("Could not find ffmpeg in PATH! Falling back on mpv.")
end
end
local file_duration = mp.get_property_native("duration")
local file_path = thumb_state.worker_input_path
if thumb_state.is_remote then
if (thumbnail_func == create_thumbnail_ffmpeg) then
msg.warn("Thumbnailing remote path, falling back on mpv.")
end
thumbnail_func = create_thumbnail_mpv
end
local generate_thumbnail_for_index = function(thumbnail_index)
-- Given a 1-based thumbnail index, generate a thumbnail for it based on the thumbnailer state
local thumb_idx = thumbnail_index - 1
msg.debug("Starting work on thumbnail", thumb_idx)
local thumbnail_path = thumb_state.thumbnail_template:format(thumb_idx)
-- Grab the "middle" of the thumbnail duration instead of the very start, and leave some margin in the end
local timestamp = math.min(file_duration - 0.25, (thumb_idx + 0.5) * thumb_state.thumbnail_delta)
mp.commandv("script-message", "mpv_thumbnail_script-progress", tostring(thumbnail_index))
-- The expected size (raw BGRA image)
local thumbnail_raw_size = (thumb_state.thumbnail_size.w * thumb_state.thumbnail_size.h * 4)
local need_thumbnail_generation = false
-- Check if the thumbnail already exists and is the correct size
local thumbnail_file = io.open(thumbnail_path, "rb")
if thumbnail_file == nil then
need_thumbnail_generation = true
else
local existing_thumbnail_filesize = thumbnail_file:seek("end")
if existing_thumbnail_filesize ~= thumbnail_raw_size then
-- Size doesn't match, so (re)generate
msg.warn("Thumbnail", thumb_idx, "did not match expected size, regenerating")
need_thumbnail_generation = true
end
thumbnail_file:close()
end
if need_thumbnail_generation then
local ret = thumbnail_func(file_path, timestamp, thumb_state.thumbnail_size, thumbnail_path, thumb_state.worker_extra)
local success = check_output(ret, thumbnail_path, thumbnail_func == create_thumbnail_mpv)
if success == nil then
-- Killed by us, changing files, ignore
msg.debug("Changing files, subprocess killed")
return true
elseif not success then
-- Real failure
mp.osd_message("Thumbnailing failed, check console for details", 3.5)
return true
end
else
msg.debug("Thumbnail", thumb_idx, "already done!")
end
-- Verify thumbnail size
-- Sometimes ffmpeg will output an empty file when seeking to a "bad" section (usually the end)
thumbnail_file = io.open(thumbnail_path, "rb")
-- Bail if we can't read the file (it should really exist by now, we checked this in check_output!)
if thumbnail_file == nil then
msg.error("Thumbnail suddenly disappeared!")
return true
end
-- Check the size of the generated file
local thumbnail_file_size = thumbnail_file:seek("end")
thumbnail_file:close()
-- Check if the file is big enough
local missing_bytes = math.max(0, thumbnail_raw_size - thumbnail_file_size)
if missing_bytes > 0 then
msg.warn(("Thumbnail missing %d bytes (expected %d, had %d), padding %s"):format(
missing_bytes, thumbnail_raw_size, thumbnail_file_size, thumbnail_path
))
-- Pad the file if it's missing content (eg. ffmpeg seek to file end)
thumbnail_file = io.open(thumbnail_path, "ab")
thumbnail_file:write(string.rep(string.char(0), missing_bytes))
thumbnail_file:close()
end
msg.debug("Finished work on thumbnail", thumb_idx)
mp.commandv("script-message", "mpv_thumbnail_script-ready", tostring(thumbnail_index), thumbnail_path)
end
msg.debug(("Generating %d thumbnails @ %dx%d for %q"):format(
#thumbnail_indexes,
thumb_state.thumbnail_size.w,
thumb_state.thumbnail_size.h,
file_path))
for i, thumbnail_index in ipairs(thumbnail_indexes) do
local bail = generate_thumbnail_for_index(thumbnail_index)
if bail then return end
end
end
-- Set up listeners and keybinds
-- Job listener
mp.register_script_message("mpv_thumbnail_script-job", do_worker_job)
-- Register this worker with the master script
local register_timer = nil
local register_timeout = mp.get_time() + 1.5
local register_function = function()
if mp.get_time() > register_timeout and register_timer then
msg.error("Thumbnail worker registering timed out")
register_timer:stop()
else
msg.debug("Announcing self to master...")
mp.commandv("script-message", "mpv_thumbnail_script-worker", mp.get_script_name())
end
end
register_timer = mp.add_periodic_timer(0.1, register_function)
mp.register_script_message("mpv_thumbnail_script-slaved", function()
msg.debug("Successfully registered with master")
register_timer:stop()
end)

View File

@@ -0,0 +1,736 @@
--[[
Copyright (C) 2017 AMM
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
]]--
--[[
mpv_thumbnail_script.lua 0.4.2 - commit 682becf (branch master)
https://github.com/TheAMM/mpv_thumbnail_script
Built on 2024-04-06 15:30:02
]]--
local assdraw = require 'mp.assdraw'
local msg = require 'mp.msg'
local opt = require 'mp.options'
local utils = require 'mp.utils'
-- Determine platform --
ON_WINDOWS = (package.config:sub(1,1) ~= '/')
-- Some helper functions needed to parse the options --
function isempty(v) return (v == false) or (v == nil) or (v == "") or (v == 0) or (type(v) == "table" and next(v) == nil) end
function divmod (a, b)
return math.floor(a / b), a % b
end
-- Better modulo
function bmod( i, N )
return (i % N + N) % N
end
function join_paths(...)
local sep = ON_WINDOWS and "\\" or "/"
local result = "";
for i, p in pairs({...}) do
if p ~= "" then
if is_absolute_path(p) then
result = p
else
result = (result ~= "") and (result:gsub("[\\"..sep.."]*$", "") .. sep .. p) or p
end
end
end
return result:gsub("[\\"..sep.."]*$", "")
end
-- /some/path/file.ext -> /some/path, file.ext
function split_path( path )
local sep = ON_WINDOWS and "\\" or "/"
local first_index, last_index = path:find('^.*' .. sep)
if last_index == nil then
return "", path
else
local dir = path:sub(0, last_index-1)
local file = path:sub(last_index+1, -1)
return dir, file
end
end
function is_absolute_path( path )
local tmp, is_win = path:gsub("^[A-Z]:\\", "")
local tmp, is_unix = path:gsub("^/", "")
return (is_win > 0) or (is_unix > 0)
end
function Set(source)
local set = {}
for _, l in ipairs(source) do set[l] = true end
return set
end
---------------------------
-- More helper functions --
---------------------------
-- Removes all keys from a table, without destroying the reference to it
function clear_table(target)
for key, value in pairs(target) do
target[key] = nil
end
end
function shallow_copy(target)
local copy = {}
for k, v in pairs(target) do
copy[k] = v
end
return copy
end
-- Rounds to given decimals. eg. round_dec(3.145, 0) => 3
function round_dec(num, idp)
local mult = 10^(idp or 0)
return math.floor(num * mult + 0.5) / mult
end
function file_exists(name)
local f = io.open(name, "rb")
if f ~= nil then
local ok, err, code = f:read(1)
io.close(f)
return code == nil
else
return false
end
end
function path_exists(name)
local f = io.open(name, "rb")
if f ~= nil then
io.close(f)
return true
else
return false
end
end
function create_directories(path)
local cmd
if ON_WINDOWS then
cmd = { args = {"cmd", "/c", "mkdir", path} }
else
cmd = { args = {"mkdir", "-p", path} }
end
utils.subprocess(cmd)
end
-- Find an executable in PATH or CWD with the given name
function find_executable(name)
local delim = ON_WINDOWS and ";" or ":"
local pwd = os.getenv("PWD") or utils.getcwd()
local path = os.getenv("PATH")
local env_path = pwd .. delim .. path -- Check CWD first
local result, filename
for path_dir in env_path:gmatch("[^"..delim.."]+") do
filename = join_paths(path_dir, name)
if file_exists(filename) then
result = filename
break
end
end
return result
end
local ExecutableFinder = { path_cache = {} }
-- Searches for an executable and caches the result if any
function ExecutableFinder:get_executable_path( name, raw_name )
name = ON_WINDOWS and not raw_name and (name .. ".exe") or name
if self.path_cache[name] == nil then
self.path_cache[name] = find_executable(name) or false
end
return self.path_cache[name]
end
-- Format seconds to HH.MM.SS.sss
function format_time(seconds, sep, decimals)
decimals = decimals == nil and 3 or decimals
sep = sep and sep or "."
local s = seconds
local h, s = divmod(s, 60*60)
local m, s = divmod(s, 60)
local second_format = string.format("%%0%d.%df", 2+(decimals > 0 and decimals+1 or 0), decimals)
return string.format("%02d"..sep.."%02d"..sep..second_format, h, m, s)
end
-- Format seconds to 1h 2m 3.4s
function format_time_hms(seconds, sep, decimals, force_full)
decimals = decimals == nil and 1 or decimals
sep = sep ~= nil and sep or " "
local s = seconds
local h, s = divmod(s, 60*60)
local m, s = divmod(s, 60)
if force_full or h > 0 then
return string.format("%dh"..sep.."%dm"..sep.."%." .. tostring(decimals) .. "fs", h, m, s)
elseif m > 0 then
return string.format("%dm"..sep.."%." .. tostring(decimals) .. "fs", m, s)
else
return string.format("%." .. tostring(decimals) .. "fs", s)
end
end
-- Writes text on OSD and console
function log_info(txt, timeout)
timeout = timeout or 1.5
msg.info(txt)
mp.osd_message(txt, timeout)
end
-- Join table items, ala ({"a", "b", "c"}, "=", "-", ", ") => "=a-, =b-, =c-"
function join_table(source, before, after, sep)
before = before or ""
after = after or ""
sep = sep or ", "
local result = ""
for i, v in pairs(source) do
if not isempty(v) then
local part = before .. v .. after
if i == 1 then
result = part
else
result = result .. sep .. part
end
end
end
return result
end
function wrap(s, char)
char = char or "'"
return char .. s .. char
end
-- Wraps given string into 'string' and escapes any 's in it
function escape_and_wrap(s, char, replacement)
char = char or "'"
replacement = replacement or "\\" .. char
return wrap(string.gsub(s, char, replacement), char)
end
-- Escapes single quotes in a string and wraps the input in single quotes
function escape_single_bash(s)
return escape_and_wrap(s, "'", "'\\''")
end
-- Returns (a .. b) if b is not empty or nil
function joined_or_nil(a, b)
return not isempty(b) and (a .. b) or nil
end
-- Put items from one table into another
function extend_table(target, source)
for i, v in pairs(source) do
table.insert(target, v)
end
end
-- Creates a handle and filename for a temporary random file (in current directory)
function create_temporary_file(base, mode, suffix)
local handle, filename
suffix = suffix or ""
while true do
filename = base .. tostring(math.random(1, 5000)) .. suffix
handle = io.open(filename, "r")
if not handle then
handle = io.open(filename, mode)
break
end
io.close(handle)
end
return handle, filename
end
function get_processor_count()
local proc_count
if ON_WINDOWS then
proc_count = tonumber(os.getenv("NUMBER_OF_PROCESSORS"))
else
local cpuinfo_handle = io.open("/proc/cpuinfo")
if cpuinfo_handle ~= nil then
local cpuinfo_contents = cpuinfo_handle:read("*a")
local _, replace_count = cpuinfo_contents:gsub('processor', '')
proc_count = replace_count
end
end
if proc_count and proc_count > 0 then
return proc_count
else
return nil
end
end
function substitute_values(string, values)
local substitutor = function(match)
if match == "%" then
return "%"
else
-- nil is discarded by gsub
return values[match]
end
end
local substituted = string:gsub('%%(.)', substitutor)
return substituted
end
-- ASS HELPERS --
function round_rect_top( ass, x0, y0, x1, y1, r )
local c = 0.551915024494 * r -- circle approximation
ass:move_to(x0 + r, y0)
ass:line_to(x1 - r, y0) -- top line
if r > 0 then
ass:bezier_curve(x1 - r + c, y0, x1, y0 + r - c, x1, y0 + r) -- top right corner
end
ass:line_to(x1, y1) -- right line
ass:line_to(x0, y1) -- bottom line
ass:line_to(x0, y0 + r) -- left line
if r > 0 then
ass:bezier_curve(x0, y0 + r - c, x0 + r - c, y0, x0 + r, y0) -- top left corner
end
end
function round_rect(ass, x0, y0, x1, y1, rtl, rtr, rbr, rbl)
local c = 0.551915024494
ass:move_to(x0 + rtl, y0)
ass:line_to(x1 - rtr, y0) -- top line
if rtr > 0 then
ass:bezier_curve(x1 - rtr + rtr*c, y0, x1, y0 + rtr - rtr*c, x1, y0 + rtr) -- top right corner
end
ass:line_to(x1, y1 - rbr) -- right line
if rbr > 0 then
ass:bezier_curve(x1, y1 - rbr + rbr*c, x1 - rbr + rbr*c, y1, x1 - rbr, y1) -- bottom right corner
end
ass:line_to(x0 + rbl, y1) -- bottom line
if rbl > 0 then
ass:bezier_curve(x0 + rbl - rbl*c, y1, x0, y1 - rbl + rbl*c, x0, y1 - rbl) -- bottom left corner
end
ass:line_to(x0, y0 + rtl) -- left line
if rtl > 0 then
ass:bezier_curve(x0, y0 + rtl - rtl*c, x0 + rtl - rtl*c, y0, x0 + rtl, y0) -- top left corner
end
end
local SCRIPT_NAME = "mpv_thumbnail_script"
local default_cache_base = ON_WINDOWS and os.getenv("TEMP") or "/tmp/"
local thumbnailer_options = {
-- The thumbnail directory
cache_directory = join_paths(default_cache_base, "mpv_thumbs_cache"),
------------------------
-- Generation options --
------------------------
-- Automatically generate the thumbnails on video load, without a keypress
autogenerate = true,
-- Only automatically thumbnail videos shorter than this (seconds)
autogenerate_max_duration = 3600, -- 1 hour
-- SHA1-sum filenames over this length
-- It's nice to know what files the thumbnails are (hence directory names)
-- but long URLs may approach filesystem limits.
hash_filename_length = 128,
-- Use mpv to generate thumbnail even if ffmpeg is found in PATH
-- ffmpeg does not handle ordered chapters (MKVs which rely on other MKVs)!
-- mpv is a bit slower, but has better support overall (eg. subtitles in the previews)
prefer_mpv = true,
-- Explicitly disable subtitles on the mpv sub-calls
mpv_no_sub = false,
-- Add a "--no-config" to the mpv sub-call arguments
mpv_no_config = false,
-- Add a "--profile=<mpv_profile>" to the mpv sub-call arguments
-- Use "" to disable
mpv_profile = "",
-- Output debug logs to <thumbnail_path>.log, ala <cache_directory>/<video_filename>/000000.bgra.log
-- The logs are removed after successful encodes, unless you set mpv_keep_logs below
mpv_logs = true,
-- Keep all mpv logs, even the succesfull ones
mpv_keep_logs = false,
-- Disable the built-in keybind ("T") to add your own
disable_keybinds = false,
---------------------
-- Display options --
---------------------
-- Move the thumbnail up or down
-- For example:
-- topbar/bottombar: 24
-- rest: 0
vertical_offset = 24,
-- Adjust background padding
-- Examples:
-- topbar: 0, 10, 10, 10
-- bottombar: 10, 0, 10, 10
-- slimbox/box: 10, 10, 10, 10
pad_top = 10,
pad_bot = 0,
pad_left = 10,
pad_right = 10,
-- If true, pad values are screen-pixels. If false, video-pixels.
pad_in_screenspace = true,
-- Calculate pad into the offset
offset_by_pad = true,
-- Background color in BBGGRR
background_color = "000000",
-- Alpha: 0 - fully opaque, 255 - transparent
background_alpha = 80,
-- Keep thumbnail on the screen near left or right side
constrain_to_screen = true,
-- Do not display the thumbnailing progress
hide_progress = false,
-----------------------
-- Thumbnail options --
-----------------------
-- The maximum dimensions of the thumbnails (pixels)
thumbnail_width = 200,
thumbnail_height = 200,
-- The thumbnail count target
-- (This will result in a thumbnail every ~10 seconds for a 25 minute video)
thumbnail_count = 150,
-- The above target count will be adjusted by the minimum and
-- maximum time difference between thumbnails.
-- The thumbnail_count will be used to calculate a target separation,
-- and min/max_delta will be used to constrict it.
-- In other words, thumbnails will be:
-- at least min_delta seconds apart (limiting the amount)
-- at most max_delta seconds apart (raising the amount if needed)
min_delta = 5,
-- 120 seconds aka 2 minutes will add more thumbnails when the video is over 5 hours!
max_delta = 90,
-- Overrides for remote urls (you generally want less thumbnails!)
-- Thumbnailing network paths will be done with mpv
-- Allow thumbnailing network paths (naive check for "://")
thumbnail_network = false,
-- Override thumbnail count, min/max delta
remote_thumbnail_count = 60,
remote_min_delta = 15,
remote_max_delta = 120,
-- Try to grab the raw stream and disable ytdl for the mpv subcalls
-- Much faster than passing the url to ytdl again, but may cause problems with some sites
remote_direct_stream = true,
}
read_options(thumbnailer_options, SCRIPT_NAME)
function skip_nil(tbl)
local n = {}
for k, v in pairs(tbl) do
table.insert(n, v)
end
return n
end
function create_thumbnail_mpv(file_path, timestamp, size, output_path, options)
options = options or {}
local ytdl_disabled = not options.enable_ytdl and (mp.get_property_native("ytdl") == false
or thumbnailer_options.remote_direct_stream)
local header_fields_arg = nil
local header_fields = mp.get_property_native("http-header-fields")
if #header_fields > 0 then
-- We can't escape the headers, mpv won't parse "--http-header-fields='Name: value'" properly
header_fields_arg = "--http-header-fields=" .. table.concat(header_fields, ",")
end
local profile_arg = nil
if thumbnailer_options.mpv_profile ~= "" then
profile_arg = "--profile=" .. thumbnailer_options.mpv_profile
end
local log_arg = "--log-file=" .. output_path .. ".log"
local mpv_command = skip_nil({
"mpv",
-- Hide console output
"--msg-level=all=no",
-- Disable ytdl
(ytdl_disabled and "--no-ytdl" or nil),
-- Pass HTTP headers from current instance
header_fields_arg,
-- Pass User-Agent and Referer - should do no harm even with ytdl active
"--user-agent=" .. mp.get_property_native("user-agent"),
"--referrer=" .. mp.get_property_native("referrer"),
-- Disable hardware decoding
"--hwdec=no",
-- Insert --no-config, --profile=... and --log-file if enabled
(thumbnailer_options.mpv_no_config and "--no-config" or nil),
profile_arg,
(thumbnailer_options.mpv_logs and log_arg or nil),
file_path,
"--start=" .. tostring(timestamp),
"--frames=1",
"--hr-seek=yes",
"--no-audio",
-- Optionally disable subtitles
(thumbnailer_options.mpv_no_sub and "--no-sub" or nil),
("--vf=scale=%d:%d"):format(size.w, size.h),
"--vf-add=format=bgra",
"--of=rawvideo",
"--ovc=rawvideo",
"--o=" .. output_path
})
return utils.subprocess({args=mpv_command})
end
function create_thumbnail_ffmpeg(file_path, timestamp, size, output_path)
local ffmpeg_command = {
"ffmpeg",
"-loglevel", "quiet",
"-noaccurate_seek",
"-ss", format_time(timestamp, ":"),
"-i", file_path,
"-frames:v", "1",
"-an",
"-vf", ("scale=%d:%d"):format(size.w, size.h),
"-c:v", "rawvideo",
"-pix_fmt", "bgra",
"-f", "rawvideo",
"-y", output_path
}
return utils.subprocess({args=ffmpeg_command})
end
function check_output(ret, output_path, is_mpv)
local log_path = output_path .. ".log"
local success = true
if ret.killed_by_us then
return nil
else
if ret.error or ret.status ~= 0 then
msg.error("Thumbnailing command failed!")
msg.error("mpv process error:", ret.error)
msg.error("Process stdout:", ret.stdout)
if is_mpv then
msg.error("Debug log:", log_path)
end
success = false
end
if not file_exists(output_path) then
msg.error("Output file missing!", output_path)
success = false
end
end
if is_mpv and not thumbnailer_options.mpv_keep_logs then
-- Remove successful debug logs
if success and file_exists(log_path) then
os.remove(log_path)
end
end
return success
end
function do_worker_job(state_json_string, frames_json_string)
msg.debug("Handling given job")
local thumb_state, err = utils.parse_json(state_json_string)
if err then
msg.error("Failed to parse state JSON")
return
end
local thumbnail_indexes, err = utils.parse_json(frames_json_string)
if err then
msg.error("Failed to parse thumbnail frame indexes")
return
end
local thumbnail_func = create_thumbnail_mpv
if not thumbnailer_options.prefer_mpv then
if ExecutableFinder:get_executable_path("ffmpeg") then
thumbnail_func = create_thumbnail_ffmpeg
else
msg.warn("Could not find ffmpeg in PATH! Falling back on mpv.")
end
end
local file_duration = mp.get_property_native("duration")
local file_path = thumb_state.worker_input_path
if thumb_state.is_remote then
if (thumbnail_func == create_thumbnail_ffmpeg) then
msg.warn("Thumbnailing remote path, falling back on mpv.")
end
thumbnail_func = create_thumbnail_mpv
end
local generate_thumbnail_for_index = function(thumbnail_index)
-- Given a 1-based thumbnail index, generate a thumbnail for it based on the thumbnailer state
local thumb_idx = thumbnail_index - 1
msg.debug("Starting work on thumbnail", thumb_idx)
local thumbnail_path = thumb_state.thumbnail_template:format(thumb_idx)
-- Grab the "middle" of the thumbnail duration instead of the very start, and leave some margin in the end
local timestamp = math.min(file_duration - 0.25, (thumb_idx + 0.5) * thumb_state.thumbnail_delta)
mp.commandv("script-message", "mpv_thumbnail_script-progress", tostring(thumbnail_index))
-- The expected size (raw BGRA image)
local thumbnail_raw_size = (thumb_state.thumbnail_size.w * thumb_state.thumbnail_size.h * 4)
local need_thumbnail_generation = false
-- Check if the thumbnail already exists and is the correct size
local thumbnail_file = io.open(thumbnail_path, "rb")
if thumbnail_file == nil then
need_thumbnail_generation = true
else
local existing_thumbnail_filesize = thumbnail_file:seek("end")
if existing_thumbnail_filesize ~= thumbnail_raw_size then
-- Size doesn't match, so (re)generate
msg.warn("Thumbnail", thumb_idx, "did not match expected size, regenerating")
need_thumbnail_generation = true
end
thumbnail_file:close()
end
if need_thumbnail_generation then
local ret = thumbnail_func(file_path, timestamp, thumb_state.thumbnail_size, thumbnail_path, thumb_state.worker_extra)
local success = check_output(ret, thumbnail_path, thumbnail_func == create_thumbnail_mpv)
if success == nil then
-- Killed by us, changing files, ignore
msg.debug("Changing files, subprocess killed")
return true
elseif not success then
-- Real failure
mp.osd_message("Thumbnailing failed, check console for details", 3.5)
return true
end
else
msg.debug("Thumbnail", thumb_idx, "already done!")
end
-- Verify thumbnail size
-- Sometimes ffmpeg will output an empty file when seeking to a "bad" section (usually the end)
thumbnail_file = io.open(thumbnail_path, "rb")
-- Bail if we can't read the file (it should really exist by now, we checked this in check_output!)
if thumbnail_file == nil then
msg.error("Thumbnail suddenly disappeared!")
return true
end
-- Check the size of the generated file
local thumbnail_file_size = thumbnail_file:seek("end")
thumbnail_file:close()
-- Check if the file is big enough
local missing_bytes = math.max(0, thumbnail_raw_size - thumbnail_file_size)
if missing_bytes > 0 then
msg.warn(("Thumbnail missing %d bytes (expected %d, had %d), padding %s"):format(
missing_bytes, thumbnail_raw_size, thumbnail_file_size, thumbnail_path
))
-- Pad the file if it's missing content (eg. ffmpeg seek to file end)
thumbnail_file = io.open(thumbnail_path, "ab")
thumbnail_file:write(string.rep(string.char(0), missing_bytes))
thumbnail_file:close()
end
msg.debug("Finished work on thumbnail", thumb_idx)
mp.commandv("script-message", "mpv_thumbnail_script-ready", tostring(thumbnail_index), thumbnail_path)
end
msg.debug(("Generating %d thumbnails @ %dx%d for %q"):format(
#thumbnail_indexes,
thumb_state.thumbnail_size.w,
thumb_state.thumbnail_size.h,
file_path))
for i, thumbnail_index in ipairs(thumbnail_indexes) do
local bail = generate_thumbnail_for_index(thumbnail_index)
if bail then return end
end
end
-- Set up listeners and keybinds
-- Job listener
mp.register_script_message("mpv_thumbnail_script-job", do_worker_job)
-- Register this worker with the master script
local register_timer = nil
local register_timeout = mp.get_time() + 1.5
local register_function = function()
if mp.get_time() > register_timeout and register_timer then
msg.error("Thumbnail worker registering timed out")
register_timer:stop()
else
msg.debug("Announcing self to master...")
mp.commandv("script-message", "mpv_thumbnail_script-worker", mp.get_script_name())
end
end
register_timer = mp.add_periodic_timer(0.1, register_function)
mp.register_script_message("mpv_thumbnail_script-slaved", function()
msg.debug("Successfully registered with master")
register_timer:stop()
end)

View File

@@ -0,0 +1,736 @@
--[[
Copyright (C) 2017 AMM
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
]]--
--[[
mpv_thumbnail_script.lua 0.4.2 - commit 682becf (branch master)
https://github.com/TheAMM/mpv_thumbnail_script
Built on 2024-04-06 15:30:02
]]--
local assdraw = require 'mp.assdraw'
local msg = require 'mp.msg'
local opt = require 'mp.options'
local utils = require 'mp.utils'
-- Determine platform --
ON_WINDOWS = (package.config:sub(1,1) ~= '/')
-- Some helper functions needed to parse the options --
function isempty(v) return (v == false) or (v == nil) or (v == "") or (v == 0) or (type(v) == "table" and next(v) == nil) end
function divmod (a, b)
return math.floor(a / b), a % b
end
-- Better modulo
function bmod( i, N )
return (i % N + N) % N
end
function join_paths(...)
local sep = ON_WINDOWS and "\\" or "/"
local result = "";
for i, p in pairs({...}) do
if p ~= "" then
if is_absolute_path(p) then
result = p
else
result = (result ~= "") and (result:gsub("[\\"..sep.."]*$", "") .. sep .. p) or p
end
end
end
return result:gsub("[\\"..sep.."]*$", "")
end
-- /some/path/file.ext -> /some/path, file.ext
function split_path( path )
local sep = ON_WINDOWS and "\\" or "/"
local first_index, last_index = path:find('^.*' .. sep)
if last_index == nil then
return "", path
else
local dir = path:sub(0, last_index-1)
local file = path:sub(last_index+1, -1)
return dir, file
end
end
function is_absolute_path( path )
local tmp, is_win = path:gsub("^[A-Z]:\\", "")
local tmp, is_unix = path:gsub("^/", "")
return (is_win > 0) or (is_unix > 0)
end
function Set(source)
local set = {}
for _, l in ipairs(source) do set[l] = true end
return set
end
---------------------------
-- More helper functions --
---------------------------
-- Removes all keys from a table, without destroying the reference to it
function clear_table(target)
for key, value in pairs(target) do
target[key] = nil
end
end
function shallow_copy(target)
local copy = {}
for k, v in pairs(target) do
copy[k] = v
end
return copy
end
-- Rounds to given decimals. eg. round_dec(3.145, 0) => 3
function round_dec(num, idp)
local mult = 10^(idp or 0)
return math.floor(num * mult + 0.5) / mult
end
function file_exists(name)
local f = io.open(name, "rb")
if f ~= nil then
local ok, err, code = f:read(1)
io.close(f)
return code == nil
else
return false
end
end
function path_exists(name)
local f = io.open(name, "rb")
if f ~= nil then
io.close(f)
return true
else
return false
end
end
function create_directories(path)
local cmd
if ON_WINDOWS then
cmd = { args = {"cmd", "/c", "mkdir", path} }
else
cmd = { args = {"mkdir", "-p", path} }
end
utils.subprocess(cmd)
end
-- Find an executable in PATH or CWD with the given name
function find_executable(name)
local delim = ON_WINDOWS and ";" or ":"
local pwd = os.getenv("PWD") or utils.getcwd()
local path = os.getenv("PATH")
local env_path = pwd .. delim .. path -- Check CWD first
local result, filename
for path_dir in env_path:gmatch("[^"..delim.."]+") do
filename = join_paths(path_dir, name)
if file_exists(filename) then
result = filename
break
end
end
return result
end
local ExecutableFinder = { path_cache = {} }
-- Searches for an executable and caches the result if any
function ExecutableFinder:get_executable_path( name, raw_name )
name = ON_WINDOWS and not raw_name and (name .. ".exe") or name
if self.path_cache[name] == nil then
self.path_cache[name] = find_executable(name) or false
end
return self.path_cache[name]
end
-- Format seconds to HH.MM.SS.sss
function format_time(seconds, sep, decimals)
decimals = decimals == nil and 3 or decimals
sep = sep and sep or "."
local s = seconds
local h, s = divmod(s, 60*60)
local m, s = divmod(s, 60)
local second_format = string.format("%%0%d.%df", 2+(decimals > 0 and decimals+1 or 0), decimals)
return string.format("%02d"..sep.."%02d"..sep..second_format, h, m, s)
end
-- Format seconds to 1h 2m 3.4s
function format_time_hms(seconds, sep, decimals, force_full)
decimals = decimals == nil and 1 or decimals
sep = sep ~= nil and sep or " "
local s = seconds
local h, s = divmod(s, 60*60)
local m, s = divmod(s, 60)
if force_full or h > 0 then
return string.format("%dh"..sep.."%dm"..sep.."%." .. tostring(decimals) .. "fs", h, m, s)
elseif m > 0 then
return string.format("%dm"..sep.."%." .. tostring(decimals) .. "fs", m, s)
else
return string.format("%." .. tostring(decimals) .. "fs", s)
end
end
-- Writes text on OSD and console
function log_info(txt, timeout)
timeout = timeout or 1.5
msg.info(txt)
mp.osd_message(txt, timeout)
end
-- Join table items, ala ({"a", "b", "c"}, "=", "-", ", ") => "=a-, =b-, =c-"
function join_table(source, before, after, sep)
before = before or ""
after = after or ""
sep = sep or ", "
local result = ""
for i, v in pairs(source) do
if not isempty(v) then
local part = before .. v .. after
if i == 1 then
result = part
else
result = result .. sep .. part
end
end
end
return result
end
function wrap(s, char)
char = char or "'"
return char .. s .. char
end
-- Wraps given string into 'string' and escapes any 's in it
function escape_and_wrap(s, char, replacement)
char = char or "'"
replacement = replacement or "\\" .. char
return wrap(string.gsub(s, char, replacement), char)
end
-- Escapes single quotes in a string and wraps the input in single quotes
function escape_single_bash(s)
return escape_and_wrap(s, "'", "'\\''")
end
-- Returns (a .. b) if b is not empty or nil
function joined_or_nil(a, b)
return not isempty(b) and (a .. b) or nil
end
-- Put items from one table into another
function extend_table(target, source)
for i, v in pairs(source) do
table.insert(target, v)
end
end
-- Creates a handle and filename for a temporary random file (in current directory)
function create_temporary_file(base, mode, suffix)
local handle, filename
suffix = suffix or ""
while true do
filename = base .. tostring(math.random(1, 5000)) .. suffix
handle = io.open(filename, "r")
if not handle then
handle = io.open(filename, mode)
break
end
io.close(handle)
end
return handle, filename
end
function get_processor_count()
local proc_count
if ON_WINDOWS then
proc_count = tonumber(os.getenv("NUMBER_OF_PROCESSORS"))
else
local cpuinfo_handle = io.open("/proc/cpuinfo")
if cpuinfo_handle ~= nil then
local cpuinfo_contents = cpuinfo_handle:read("*a")
local _, replace_count = cpuinfo_contents:gsub('processor', '')
proc_count = replace_count
end
end
if proc_count and proc_count > 0 then
return proc_count
else
return nil
end
end
function substitute_values(string, values)
local substitutor = function(match)
if match == "%" then
return "%"
else
-- nil is discarded by gsub
return values[match]
end
end
local substituted = string:gsub('%%(.)', substitutor)
return substituted
end
-- ASS HELPERS --
function round_rect_top( ass, x0, y0, x1, y1, r )
local c = 0.551915024494 * r -- circle approximation
ass:move_to(x0 + r, y0)
ass:line_to(x1 - r, y0) -- top line
if r > 0 then
ass:bezier_curve(x1 - r + c, y0, x1, y0 + r - c, x1, y0 + r) -- top right corner
end
ass:line_to(x1, y1) -- right line
ass:line_to(x0, y1) -- bottom line
ass:line_to(x0, y0 + r) -- left line
if r > 0 then
ass:bezier_curve(x0, y0 + r - c, x0 + r - c, y0, x0 + r, y0) -- top left corner
end
end
function round_rect(ass, x0, y0, x1, y1, rtl, rtr, rbr, rbl)
local c = 0.551915024494
ass:move_to(x0 + rtl, y0)
ass:line_to(x1 - rtr, y0) -- top line
if rtr > 0 then
ass:bezier_curve(x1 - rtr + rtr*c, y0, x1, y0 + rtr - rtr*c, x1, y0 + rtr) -- top right corner
end
ass:line_to(x1, y1 - rbr) -- right line
if rbr > 0 then
ass:bezier_curve(x1, y1 - rbr + rbr*c, x1 - rbr + rbr*c, y1, x1 - rbr, y1) -- bottom right corner
end
ass:line_to(x0 + rbl, y1) -- bottom line
if rbl > 0 then
ass:bezier_curve(x0 + rbl - rbl*c, y1, x0, y1 - rbl + rbl*c, x0, y1 - rbl) -- bottom left corner
end
ass:line_to(x0, y0 + rtl) -- left line
if rtl > 0 then
ass:bezier_curve(x0, y0 + rtl - rtl*c, x0 + rtl - rtl*c, y0, x0 + rtl, y0) -- top left corner
end
end
local SCRIPT_NAME = "mpv_thumbnail_script"
local default_cache_base = ON_WINDOWS and os.getenv("TEMP") or "/tmp/"
local thumbnailer_options = {
-- The thumbnail directory
cache_directory = join_paths(default_cache_base, "mpv_thumbs_cache"),
------------------------
-- Generation options --
------------------------
-- Automatically generate the thumbnails on video load, without a keypress
autogenerate = true,
-- Only automatically thumbnail videos shorter than this (seconds)
autogenerate_max_duration = 3600, -- 1 hour
-- SHA1-sum filenames over this length
-- It's nice to know what files the thumbnails are (hence directory names)
-- but long URLs may approach filesystem limits.
hash_filename_length = 128,
-- Use mpv to generate thumbnail even if ffmpeg is found in PATH
-- ffmpeg does not handle ordered chapters (MKVs which rely on other MKVs)!
-- mpv is a bit slower, but has better support overall (eg. subtitles in the previews)
prefer_mpv = true,
-- Explicitly disable subtitles on the mpv sub-calls
mpv_no_sub = false,
-- Add a "--no-config" to the mpv sub-call arguments
mpv_no_config = false,
-- Add a "--profile=<mpv_profile>" to the mpv sub-call arguments
-- Use "" to disable
mpv_profile = "",
-- Output debug logs to <thumbnail_path>.log, ala <cache_directory>/<video_filename>/000000.bgra.log
-- The logs are removed after successful encodes, unless you set mpv_keep_logs below
mpv_logs = true,
-- Keep all mpv logs, even the succesfull ones
mpv_keep_logs = false,
-- Disable the built-in keybind ("T") to add your own
disable_keybinds = false,
---------------------
-- Display options --
---------------------
-- Move the thumbnail up or down
-- For example:
-- topbar/bottombar: 24
-- rest: 0
vertical_offset = 24,
-- Adjust background padding
-- Examples:
-- topbar: 0, 10, 10, 10
-- bottombar: 10, 0, 10, 10
-- slimbox/box: 10, 10, 10, 10
pad_top = 10,
pad_bot = 0,
pad_left = 10,
pad_right = 10,
-- If true, pad values are screen-pixels. If false, video-pixels.
pad_in_screenspace = true,
-- Calculate pad into the offset
offset_by_pad = true,
-- Background color in BBGGRR
background_color = "000000",
-- Alpha: 0 - fully opaque, 255 - transparent
background_alpha = 80,
-- Keep thumbnail on the screen near left or right side
constrain_to_screen = true,
-- Do not display the thumbnailing progress
hide_progress = false,
-----------------------
-- Thumbnail options --
-----------------------
-- The maximum dimensions of the thumbnails (pixels)
thumbnail_width = 200,
thumbnail_height = 200,
-- The thumbnail count target
-- (This will result in a thumbnail every ~10 seconds for a 25 minute video)
thumbnail_count = 150,
-- The above target count will be adjusted by the minimum and
-- maximum time difference between thumbnails.
-- The thumbnail_count will be used to calculate a target separation,
-- and min/max_delta will be used to constrict it.
-- In other words, thumbnails will be:
-- at least min_delta seconds apart (limiting the amount)
-- at most max_delta seconds apart (raising the amount if needed)
min_delta = 5,
-- 120 seconds aka 2 minutes will add more thumbnails when the video is over 5 hours!
max_delta = 90,
-- Overrides for remote urls (you generally want less thumbnails!)
-- Thumbnailing network paths will be done with mpv
-- Allow thumbnailing network paths (naive check for "://")
thumbnail_network = false,
-- Override thumbnail count, min/max delta
remote_thumbnail_count = 60,
remote_min_delta = 15,
remote_max_delta = 120,
-- Try to grab the raw stream and disable ytdl for the mpv subcalls
-- Much faster than passing the url to ytdl again, but may cause problems with some sites
remote_direct_stream = true,
}
read_options(thumbnailer_options, SCRIPT_NAME)
function skip_nil(tbl)
local n = {}
for k, v in pairs(tbl) do
table.insert(n, v)
end
return n
end
function create_thumbnail_mpv(file_path, timestamp, size, output_path, options)
options = options or {}
local ytdl_disabled = not options.enable_ytdl and (mp.get_property_native("ytdl") == false
or thumbnailer_options.remote_direct_stream)
local header_fields_arg = nil
local header_fields = mp.get_property_native("http-header-fields")
if #header_fields > 0 then
-- We can't escape the headers, mpv won't parse "--http-header-fields='Name: value'" properly
header_fields_arg = "--http-header-fields=" .. table.concat(header_fields, ",")
end
local profile_arg = nil
if thumbnailer_options.mpv_profile ~= "" then
profile_arg = "--profile=" .. thumbnailer_options.mpv_profile
end
local log_arg = "--log-file=" .. output_path .. ".log"
local mpv_command = skip_nil({
"mpv",
-- Hide console output
"--msg-level=all=no",
-- Disable ytdl
(ytdl_disabled and "--no-ytdl" or nil),
-- Pass HTTP headers from current instance
header_fields_arg,
-- Pass User-Agent and Referer - should do no harm even with ytdl active
"--user-agent=" .. mp.get_property_native("user-agent"),
"--referrer=" .. mp.get_property_native("referrer"),
-- Disable hardware decoding
"--hwdec=no",
-- Insert --no-config, --profile=... and --log-file if enabled
(thumbnailer_options.mpv_no_config and "--no-config" or nil),
profile_arg,
(thumbnailer_options.mpv_logs and log_arg or nil),
file_path,
"--start=" .. tostring(timestamp),
"--frames=1",
"--hr-seek=yes",
"--no-audio",
-- Optionally disable subtitles
(thumbnailer_options.mpv_no_sub and "--no-sub" or nil),
("--vf=scale=%d:%d"):format(size.w, size.h),
"--vf-add=format=bgra",
"--of=rawvideo",
"--ovc=rawvideo",
"--o=" .. output_path
})
return utils.subprocess({args=mpv_command})
end
function create_thumbnail_ffmpeg(file_path, timestamp, size, output_path)
local ffmpeg_command = {
"ffmpeg",
"-loglevel", "quiet",
"-noaccurate_seek",
"-ss", format_time(timestamp, ":"),
"-i", file_path,
"-frames:v", "1",
"-an",
"-vf", ("scale=%d:%d"):format(size.w, size.h),
"-c:v", "rawvideo",
"-pix_fmt", "bgra",
"-f", "rawvideo",
"-y", output_path
}
return utils.subprocess({args=ffmpeg_command})
end
function check_output(ret, output_path, is_mpv)
local log_path = output_path .. ".log"
local success = true
if ret.killed_by_us then
return nil
else
if ret.error or ret.status ~= 0 then
msg.error("Thumbnailing command failed!")
msg.error("mpv process error:", ret.error)
msg.error("Process stdout:", ret.stdout)
if is_mpv then
msg.error("Debug log:", log_path)
end
success = false
end
if not file_exists(output_path) then
msg.error("Output file missing!", output_path)
success = false
end
end
if is_mpv and not thumbnailer_options.mpv_keep_logs then
-- Remove successful debug logs
if success and file_exists(log_path) then
os.remove(log_path)
end
end
return success
end
function do_worker_job(state_json_string, frames_json_string)
msg.debug("Handling given job")
local thumb_state, err = utils.parse_json(state_json_string)
if err then
msg.error("Failed to parse state JSON")
return
end
local thumbnail_indexes, err = utils.parse_json(frames_json_string)
if err then
msg.error("Failed to parse thumbnail frame indexes")
return
end
local thumbnail_func = create_thumbnail_mpv
if not thumbnailer_options.prefer_mpv then
if ExecutableFinder:get_executable_path("ffmpeg") then
thumbnail_func = create_thumbnail_ffmpeg
else
msg.warn("Could not find ffmpeg in PATH! Falling back on mpv.")
end
end
local file_duration = mp.get_property_native("duration")
local file_path = thumb_state.worker_input_path
if thumb_state.is_remote then
if (thumbnail_func == create_thumbnail_ffmpeg) then
msg.warn("Thumbnailing remote path, falling back on mpv.")
end
thumbnail_func = create_thumbnail_mpv
end
local generate_thumbnail_for_index = function(thumbnail_index)
-- Given a 1-based thumbnail index, generate a thumbnail for it based on the thumbnailer state
local thumb_idx = thumbnail_index - 1
msg.debug("Starting work on thumbnail", thumb_idx)
local thumbnail_path = thumb_state.thumbnail_template:format(thumb_idx)
-- Grab the "middle" of the thumbnail duration instead of the very start, and leave some margin in the end
local timestamp = math.min(file_duration - 0.25, (thumb_idx + 0.5) * thumb_state.thumbnail_delta)
mp.commandv("script-message", "mpv_thumbnail_script-progress", tostring(thumbnail_index))
-- The expected size (raw BGRA image)
local thumbnail_raw_size = (thumb_state.thumbnail_size.w * thumb_state.thumbnail_size.h * 4)
local need_thumbnail_generation = false
-- Check if the thumbnail already exists and is the correct size
local thumbnail_file = io.open(thumbnail_path, "rb")
if thumbnail_file == nil then
need_thumbnail_generation = true
else
local existing_thumbnail_filesize = thumbnail_file:seek("end")
if existing_thumbnail_filesize ~= thumbnail_raw_size then
-- Size doesn't match, so (re)generate
msg.warn("Thumbnail", thumb_idx, "did not match expected size, regenerating")
need_thumbnail_generation = true
end
thumbnail_file:close()
end
if need_thumbnail_generation then
local ret = thumbnail_func(file_path, timestamp, thumb_state.thumbnail_size, thumbnail_path, thumb_state.worker_extra)
local success = check_output(ret, thumbnail_path, thumbnail_func == create_thumbnail_mpv)
if success == nil then
-- Killed by us, changing files, ignore
msg.debug("Changing files, subprocess killed")
return true
elseif not success then
-- Real failure
mp.osd_message("Thumbnailing failed, check console for details", 3.5)
return true
end
else
msg.debug("Thumbnail", thumb_idx, "already done!")
end
-- Verify thumbnail size
-- Sometimes ffmpeg will output an empty file when seeking to a "bad" section (usually the end)
thumbnail_file = io.open(thumbnail_path, "rb")
-- Bail if we can't read the file (it should really exist by now, we checked this in check_output!)
if thumbnail_file == nil then
msg.error("Thumbnail suddenly disappeared!")
return true
end
-- Check the size of the generated file
local thumbnail_file_size = thumbnail_file:seek("end")
thumbnail_file:close()
-- Check if the file is big enough
local missing_bytes = math.max(0, thumbnail_raw_size - thumbnail_file_size)
if missing_bytes > 0 then
msg.warn(("Thumbnail missing %d bytes (expected %d, had %d), padding %s"):format(
missing_bytes, thumbnail_raw_size, thumbnail_file_size, thumbnail_path
))
-- Pad the file if it's missing content (eg. ffmpeg seek to file end)
thumbnail_file = io.open(thumbnail_path, "ab")
thumbnail_file:write(string.rep(string.char(0), missing_bytes))
thumbnail_file:close()
end
msg.debug("Finished work on thumbnail", thumb_idx)
mp.commandv("script-message", "mpv_thumbnail_script-ready", tostring(thumbnail_index), thumbnail_path)
end
msg.debug(("Generating %d thumbnails @ %dx%d for %q"):format(
#thumbnail_indexes,
thumb_state.thumbnail_size.w,
thumb_state.thumbnail_size.h,
file_path))
for i, thumbnail_index in ipairs(thumbnail_indexes) do
local bail = generate_thumbnail_for_index(thumbnail_index)
if bail then return end
end
end
-- Set up listeners and keybinds
-- Job listener
mp.register_script_message("mpv_thumbnail_script-job", do_worker_job)
-- Register this worker with the master script
local register_timer = nil
local register_timeout = mp.get_time() + 1.5
local register_function = function()
if mp.get_time() > register_timeout and register_timer then
msg.error("Thumbnail worker registering timed out")
register_timer:stop()
else
msg.debug("Announcing self to master...")
mp.commandv("script-message", "mpv_thumbnail_script-worker", mp.get_script_name())
end
end
register_timer = mp.add_periodic_timer(0.1, register_function)
mp.register_script_message("mpv_thumbnail_script-slaved", function()
msg.debug("Successfully registered with master")
register_timer:stop()
end)

View File

@@ -0,0 +1,3 @@
vim.o.shiftwidth = 2
vim.o.softtabstop = 2
vim.o.textwidth = 100

View File

@@ -0,0 +1,8 @@
vim.api.nvim_create_autocmd({ 'VimEnter' },
{
callback = function()
require("csvview").enable()
end
})
vim.o.textwidth = 0

View File

@@ -0,0 +1,3 @@
vim.o.shiftwidth = 2
vim.o.softtabstop = 2
vim.o.textwidth = 100

View File

@@ -2,7 +2,6 @@ vim.api.nvim_create_autocmd({ 'VimEnter' },
{
callback = function()
require("tidy").opts.enabled_on_save = false
require("knap").toggle_autopreviewing()
end
})
@@ -37,3 +36,6 @@ vim.o.textwidth = 100
-- frabjous/knap
vim.keymap.set('n', '<leader>p', require("knap").toggle_autopreviewing, { noremap = true })
-- benlubas/molten-nvim
require("quarto").activate()

View File

@@ -25,6 +25,7 @@ vim.api.nvim_create_autocmd({ 'VimLeave' },
vim.o.shiftwidth = 2
vim.o.softtabstop = 2
vim.o.textwidth = 80
-- frabjous/knap
vim.keymap.set('n', '<leader>p', require("knap").toggle_autopreviewing, { noremap = true })

View File

@@ -1,4 +1,4 @@
vim.o.go = "a"
-- vim.o.go = "a"
vim.o.showmode = false
-- disable netrw
@@ -26,10 +26,10 @@ vim.o.ignorecase = true
vim.o.smartcase = true
-- enable nocompatible mode
vim.o.nocompatible = true
-- vim.o.nocompatible = true
-- enable syntax highlighting
vim.o.syntax = true
vim.o.syntax = "true"
-- enable true colors
vim.o.termguicolors = true
@@ -57,8 +57,8 @@ vim.o.breakindent = true
vim.o.hidden = true
-- disable backupfiles
vim.o.nobackup = true
vim.o.nowritebackup = true
-- vim.o.nobackup = true
-- vim.o.nowritebackup = true
-- set completeopt to have a better completion experience
vim.o.completeopt = "menuone,noselect"
@@ -108,7 +108,7 @@ vim.filetype.add({
nim = "nim",
py = "python",
sage = "python",
sh = "shell",
sh = "bash",
tex = "tex",
},
})
@@ -125,6 +125,9 @@ require("dictionaries")
-- load plugins (autoload all files in plugin folder)
require("loadplugins")
-- load commands to be run automatically
require("autocmd")
-- load general mapped keys
require("keymap")
@@ -132,3 +135,6 @@ vim.cmd([[
set foldopen-=hor
set foldclose-=hor
]])
-- Save localoptions to session file
vim.opt.sessionoptions:append("localoptions")

View File

@@ -1,65 +1,77 @@
{
"action-hints.nvim": { "branch": "main", "commit": "ab10fef255dd4bc933c92d8f9969828f2f856e71" },
"action-hints.nvim": { "branch": "main", "commit": "ac72c23c2e901084e0c08a743942d8d7b8c560de" },
"barbecue": { "branch": "main", "commit": "cd7e7da622d68136e13721865b4d919efd6325ed" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"blink.download": { "branch": "main", "commit": "86361b98f3c8317904a08e3bd12cf3cdcbe3e925" },
"blink.pairs": { "branch": "main", "commit": "d8bf802cca951f0a3b72ddeed21bc5a1d5353f65" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" },
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp-under-comparator": { "branch": "master", "commit": "6857f10272c3cfe930cece2afa2406e1385bfef8" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
"conform.nvim": { "branch": "master", "commit": "5a15cc46e75cad804fd51ec5af9227aeb1d1bdaa" },
"diffview.nvim": { "branch": "main", "commit": "3dc498c9777fe79156f3d32dddd483b8b3dbd95f" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"conform.nvim": { "branch": "master", "commit": "fbcb4fa7f34bfea9be702ffff481a8e336ebf6ed" },
"cpsm": { "branch": "master", "commit": "1a5fc1b6169bb80c29b0b986130c4f3f1a9ed82e" },
"csvview.nvim": { "branch": "main", "commit": "bbab4c2f808fd8e11ec8dfdd128251aadba566a1" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"fterm.nvim": { "branch": "master", "commit": "d1320892cc2ebab472935242d9d992a2c9570180" },
"fzy-lua-native": { "branch": "master", "commit": "820f745b7c442176bcc243e8f38ef4b985febfaf" },
"git-blame.nvim": { "branch": "master", "commit": "a0282d05adbee80aaf4e2ff35b81b52940b67bed" },
"gitsigns.nvim": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" },
"goto-preview": { "branch": "main", "commit": "527fd81a827234e26ca47891abe90497215db2a6" },
"indent-blankline.nvim": { "branch": "master", "commit": "821a7acd88587d966f7e464b0b3031dfe7f5680c" },
"knap": { "branch": "main", "commit": "d4ea571d2d4e139d288b758c5bab31788d30eea3" },
"lazy.nvim": { "branch": "main", "commit": "83493db50a434a4c5c648faf41e2ead80f96e478" },
"lsp_signature.nvim": { "branch": "master", "commit": "e92b4e7073345b2a30a56b20db3d541a9aa2771e" },
"lspkind-nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
"lualine.nvim": { "branch": "master", "commit": "8b56462bfb746760465264de41b4907310f113ec" },
"luasnip": { "branch": "master", "commit": "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32" },
"mapx.nvim": { "branch": "main", "commit": "c3dd43474a5fc2f266309bc04a69b74eb2524671" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "21d33d69a81f6351e5a5f49078b2e4f0075c8e73" },
"mason-null-ls.nvim": { "branch": "main", "commit": "e270134d83ba59425edc53356c6fd337b61bb8dd" },
"mason.nvim": { "branch": "main", "commit": "3b5068f0fc565f337d67a2d315d935f574848ee7" },
"none-ls.nvim": { "branch": "main", "commit": "ff3819c52ca04232fb70fbd6c1639de9abcbe122" },
"nvim-autopairs": { "branch": "master", "commit": "c6139ca0d5ad7af129ea6c89cb4c56093f2c034a" },
"nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
"nvim-colorizer.lua": { "branch": "master", "commit": "0b3950aed7bc35b78200bc292156aa77d2a4d342" },
"nvim-docs-view": { "branch": "master", "commit": "78d88bca16f32a430572758677f9246f6d7f7b94" },
"nvim-hlslens": { "branch": "main", "commit": "e4c811a401b06f86a7bb042b1d64a5cba21729a9" },
"nvim-lspconfig": { "branch": "master", "commit": "e172dd599cff2ae5267871b5e33fb42934c4df43" },
"nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" },
"nvim-scrollbar": { "branch": "main", "commit": "35f99d559041c7c0eff3a41f9093581ceea534e8" },
"nvim-surround": { "branch": "main", "commit": "d47001f8ddf9646c24f16d2732d4d0255acd2121" },
"nvim-tree.lua": { "branch": "master", "commit": "efafd73efa9bc8c26282aed563ba0f01c7465b06" },
"nvim-treesitter": { "branch": "master", "commit": "9775d5d7c724f81acdd441e7e9edefc4514e990b" },
"nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" },
"nvim-ts-rainbow": { "branch": "master", "commit": "ef95c15a935f97c65a80e48e12fe72d49aacf9b9" },
"nvim-ufo": { "branch": "main", "commit": "239ae620d818ffa1319ca3056546df71906d4bfb" },
"nvim-web-devicons": { "branch": "master", "commit": "4adea17610d140a99c313e3f79a9dc01825d59ae" },
"fzy-lua-native": { "branch": "master", "commit": "9d720745d5c2fb563c0d86c17d77612a3519c506" },
"git-blame.nvim": { "branch": "master", "commit": "9874ec1ec8bc53beb33b7cd82c092b85271a578b" },
"gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" },
"goto-preview": { "branch": "main", "commit": "cf561d10b4b104db20375c48b86cf36af9f96e00" },
"image.nvim": { "branch": "master", "commit": "446a8a5cc7a3eae3185ee0c697732c32a5547a0b" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"jupytext.nvim": { "branch": "main", "commit": "c8baf3ad344c59b3abd461ecc17fc16ec44d0f7b" },
"knap": { "branch": "main", "commit": "7db44d0bb760120142cc1e8f43e44976de59c2f6" },
"lazy.nvim": { "branch": "main", "commit": "1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1" },
"leap.nvim": { "branch": "main", "commit": "f5fe479e20d809df7b54ad53142c2bdb0624c62a" },
"logger.nvim": { "branch": "main", "commit": "63dd10c9b9a159fd6cfe08435d9606384ff103c5" },
"lsp_signature.nvim": { "branch": "master", "commit": "b58cca003d1d3311213d6db0352f58d8e57bfff0" },
"lspkind-nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" },
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
"luasnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" },
"mason-null-ls.nvim": { "branch": "main", "commit": "de19726de7260c68d94691afb057fa73d3cc53e7" },
"mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" },
"modes.nvim": { "branch": "main", "commit": "0932ba4e0bdc3457ac89a8aeed4d56ca0b36977a" },
"molten-nvim": { "branch": "main", "commit": "a286aa914d9a154bc359131aab788b5a077a5a99" },
"none-ls.nvim": { "branch": "main", "commit": "5cf63841461b49989972d35bf886e076a1ab3649" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
"nvim-colorizer.lua": { "branch": "master", "commit": "6ed09146ee637006367b5e225be6208a1ea02579" },
"nvim-docs-view": { "branch": "master", "commit": "5676cc094d426edd39134b1eefca2cab441cca8a" },
"nvim-hlslens": { "branch": "main", "commit": "6d42444785ea0d41555d033485910c5e78916f3b" },
"nvim-lspconfig": { "branch": "master", "commit": "cc2f5f2fa28d240574808e78847978ed6ef20d2a" },
"nvim-navic": { "branch": "master", "commit": "f887d794a0f4594882814d7780980a949200a238" },
"nvim-scrollbar": { "branch": "main", "commit": "5b103ef0fd2e8b9b4be3878ed38d224522192c6c" },
"nvim-surround": { "branch": "main", "commit": "a868c256c861044beb9794b4dd126480dcdfbdad" },
"nvim-tree.lua": { "branch": "master", "commit": "e397756d2a79d74314ea4cd3efc41300e91c0ff0" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
"nvim-ufo": { "branch": "main", "commit": "72d54c31079d38d8dfc5456131b1d0fb5c0264b0" },
"nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" },
"nvim-yarp": { "branch": "master", "commit": "bb5f5e038bfe119d3b777845a76b0b919b35ebc8" },
"plenary.nvim": { "branch": "master", "commit": "f7adfc4b3f4f91aab6caebf42b3682945fbc35be" },
"otter.nvim": { "branch": "main", "commit": "fc0aa35b1985077d11a20ddf4006bf40f2cd7397" },
"outline.nvim": { "branch": "main", "commit": "6b62f73a6bf317531d15a7ae1b724e85485d8148" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"popup-menu.nvim": { "branch": "master", "commit": "b618bd0c824a20417d845fa0022327228e6988a2" },
"promise-async": { "branch": "main", "commit": "93540c168c5ed2b030ec3e6c40ab8bbb85e36355" },
"projections.nvim": { "branch": "pre_release", "commit": "889914169fa1f5c00fb8659653b5a8330fb223e6" },
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
"quarto-nvim": { "branch": "main", "commit": "0e9491509b38efbd83d3f41dbfacc7fc4bd40191" },
"renamer.nvim": { "branch": "master", "commit": "1614d466df53899f11dd5395eaac3c09a275c384" },
"rustaceanvim": { "branch": "master", "commit": "12504405821c05874d2d1f6b5ec919f9808e2c99" },
"spelunker.vim": { "branch": "master", "commit": "a0bc530f62798bbe053905555a4aa9ed713485eb" },
"symbols-outline.nvim": { "branch": "master", "commit": "564ee65dfc9024bdde73a6621820866987cbb256" },
"tabular": { "branch": "master", "commit": "339091ac4dd1f17e225fe7d57b48aff55f99b23a" },
"tccs.nvim": { "branch": "master", "commit": "b0e36734b8e4c8e1e56533218076fe574c7a9d75" },
"tabular": { "branch": "master", "commit": "12437cd1b53488e24936ec4b091c9324cafee311" },
"tccs.nvim": { "branch": "master", "commit": "e50c1504286b5ee2700961a600f26c9b338bd042" },
"telescope.nvim": { "branch": "master", "commit": "776b509f80dd49d8205b9b0d94485568236d1192" },
"tidy.nvim": { "branch": "triggerable-tidy", "commit": "1cbed7676273057c8af22438deaae73cd5cb96b5" },
"todo-comments.nvim": { "branch": "main", "commit": "833d8dd8b07eeda37a09e99460f72a02616935cb" },
"trouble.nvim": { "branch": "main", "commit": "f1168feada93c0154ede4d1fe9183bf69bac54ea" },
"undotree": { "branch": "master", "commit": "9dbbf3b7d19dda0d22ceca461818e4739ad8154d" },
"tidy.nvim": { "branch": "main", "commit": "c8cd0e6e0108da25c3e10c3f33d8c03b3d8806f1" },
"todo-comments.nvim": { "branch": "main", "commit": "19d461ddd543e938eb22505fb03fa878800270b6" },
"trouble.nvim": { "branch": "main", "commit": "c098362fe603d3922095e7db595961e020bdf2d0" },
"undotree": { "branch": "master", "commit": "0f1c9816975b5d7f87d5003a19c53c6fd2ff6f7f" },
"vim-abolish": { "branch": "master", "commit": "dcbfe065297d31823561ba787f51056c147aa682" },
"vim-hug-neovim-rpc": { "branch": "master", "commit": "93ae38792bc197c3bdffa2716ae493c67a5e7957" },
"vim-illuminate": { "branch": "master", "commit": "305bf07b919ac526deb5193280379e2f8b599926" },
"vim-markdown": { "branch": "master", "commit": "a657e697376909c41475a686eeef7fc7a4972d94" },
"vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
"vim-markdown": { "branch": "master", "commit": "8f6cb3a6ca4e3b6bcda0730145a0b700f3481b51" },
"vim-renamer": { "branch": "master", "commit": "9c6346eb4556cf2d8ca55de6969247ab14fe2383" },
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" },
"wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" }
}
"which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" },
"wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" },
"winshift.nvim": { "branch": "main", "commit": "37468ed6f385dfb50402368669766504c0e15583" }
}

View File

@@ -0,0 +1,116 @@
-- highlighting yanked regions
vim.api.nvim_create_autocmd("TextYankPost", {
callback = function()
vim.highlight.on_yank({higroup="YankHighlight"})
end,
})
-- gnikdroy/projections.nvim
local Session = require("projections.session")
vim.api.nvim_create_autocmd({ "VimLeavePre" }, {
callback = function()
Session.store(vim.loop.cwd())
end,
})
vim.api.nvim_create_autocmd({ "VimEnter" }, {
callback = function()
if vim.fn.argc() ~= 0 then
return
end
local session_info = Session.info(vim.loop.cwd())
if session_info ~= nil then
Session.restore(vim.loop.cwd())
end
end,
desc = "Restore last session automatically",
})
-- benlubas/molten-nvim
local imb = function(e)
vim.schedule(function()
local kernels = vim.fn.MoltenAvailableKernels()
local try_kernel_name = function()
local metadata = vim.json.decode(io.open(e.file, "r"):read("a"))["metadata"]
return metadata.kernelspec.name
end
local ok, kernel_name = pcall(try_kernel_name)
if not ok or not vim.tbl_contains(kernels, kernel_name) then
kernel_name = nil
local venv = os.getenv("VIRTUAL_ENV") or os.getenv("CONDA_PREFIX")
if venv ~= nil then
kernel_name = string.match(venv, "/.+/(.+)")
end
end
if kernel_name ~= nil and vim.tbl_contains(kernels, kernel_name) then
vim.cmd(("MoltenInit %s"):format(kernel_name))
end
vim.cmd("MoltenImportOutput")
end)
end
vim.api.nvim_create_autocmd("BufAdd", {
pattern = { "*.ipynb" },
callback = imb,
})
vim.api.nvim_create_autocmd("BufEnter", {
pattern = { "*.ipynb" },
callback = function(e)
if vim.api.nvim_get_vvar("vim_did_enter") ~= 1 then
imb(e)
end
end,
})
local default_notebook = [[
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython"
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
]]
local function new_notebook(filename)
local path = filename .. ".ipynb"
local file = io.open(path, "w")
if file then
file:write(default_notebook)
file:close()
vim.cmd("edit " .. path)
else
print("Error: Could not open new notebook file for writing.")
end
end
vim.api.nvim_create_user_command('NewNotebook', function(opts)
new_notebook(opts.args)
end, {
nargs = 1,
complete = 'file'
})

View File

@@ -1,130 +1,114 @@
-- highlighting yanked regions
local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true })
vim.api.nvim_create_autocmd('TextYankPost', {
callback = function()
vim.highlight.on_yank()
end,
group = highlight_group,
})
-- setup keymap function
local m = require 'mapx'.setup { global = true, whichkey = true }
local wk = require("which-key")
local lazygit = require("FTerm"):new({ cmd = "lazygit" })
-- setup keymap groups
m.nname("g", "LSP: goto")
m.nname("gp", "LSP: preview")
m.cname("w", "Write")
m.cname("w!", "Write: overwrite")
m.nname("<leader>g", "Git")
m.nname("<leader>gd", "Git: diff")
m.nname("<leader>s", "Substitute")
m.nname("<leader>t", "Terminal")
-- unmap unwanted commands
m.nnoremap("Zt", '<NOP>')
m.nnoremap("ZT", '<NOP>')
m.nnoremap("<Space>", '<NOP>')
m.inoremap("<F2>", '<NOP>')
m.inoremap("<F3>", '<NOP>')
m.inoremap("<F4>", '<NOP>')
m.inoremap("<F5>", '<NOP>')
m.inoremap("<F6>", '<NOP>')
m.inoremap("<F8>", '<NOP>')
m.inoremap("<F9>", '<NOP>')
m.nnoremap("<F9>", '<NOP>')
m.inoremap("<F10>", '<NOP>')
m.nnoremap("<F10>", '<NOP>')
m.inoremap("<F11>", '<NOP>')
m.nnoremap("<F11>", '<NOP>')
m.inoremap("<F12>", '<NOP>')
m.nnoremap("<F12>", '<NOP>')
-- shortcut for split navigation
m.nnoremap("<C-h>", '<C-w>h', 'Navigation: go to left split')
m.nnoremap("<C-j>", '<C-w>j', 'Navigation: go to lower split')
m.nnoremap("<C-k>", '<C-w>k', 'Navigation: go to upper split')
m.nnoremap("<C-l>", '<C-w>l', 'Navigation: go to right split')
-- remap for dealing with word wrap
m.nmap('j', "v:count == 0 ? 'gj' : 'j'", { "expr", "silent" }, 'Navigation: go down in wrapped lines')
m.nmap('k', "v:count == 0 ? 'gk' : 'k'", { "expr", "silent" }, 'Navigation: go up in wrapped lines')
-- compiler for languages
m.nnoremap("<leader>c", ':w! | !compiler <c-r>%<CR>', 'Compile: current file')
-- save file as sudo on files that require root permission
m.cnoremap("w!!", 'execute "silent! write !sudo tee % >/dev/null" <bar> edit!', 'Write: overwrite file over with sudo')
-- tpope/vim-abolish
m.nnoremap("<leader>sa", ':%S//g<Left><Left>', 'Substitute: free form')
m.nnoremap("<leader>ss", ':%S/\\<<C-r><C-w>\\>//g<Left><Left>', 'Substitute: word under cursor')
-- simrat39/symbols-outline.nvim
m.nmap('<F3>', ':SymbolsOutline<CR>', 'CTags: toggle')
-- nvim-tree/nvim-tree.lua
m.nmap("<F2>", ':NvimTreeToggle toggle<CR>', 'File tree: toggle')
-- mbbill/undotree
m.nmap("<F1>", ':UndotreeToggle<CR>', 'Undo tree: toggle')
-- amrbashir/nvim-docs-view
m.nnoremap("go", ':DocsViewToggle<CR>', 'LSP: toggle documentation window')
-- numtostr/fterm.nvim
m.nnoremap("<leader>tt", require("FTerm").toggle, 'Terminal: open')
m.tnoremap("<leader>tt", require("FTerm").toggle, 'Terminal: open')
local lazygit = require("FTerm"):new({
cmd = 'lazygit',
wk.add({
-- setup keymap groups
{mode = "n", "g", desc = "LSP: goto"},
{mode = "n", "gp", desc = "LSP: preview"},
{mode = "c", "w", desc = "Write"},
{mode = "c", "w!", desc = "Write: overwrite"},
{mode = "n", "<leader>g", desc = "Git"},
{mode = "n", "<leader>f", desc = "Telescope: find"},
{mode = "n", "<leader>gd", desc = "Git: diff"},
{mode = "n", "<leader>s", desc = "Substitute"},
{mode = "n", "<leader>t", desc = "Terminal"},
{mode = "n", "<leader>r", desc = "Quarto"},
{mode = "n", "<C-W>", desc = "Navigation"},
-- unmap unwanted commands
{mode = "n", "Zt", "<NOP>", noremap = true},
{mode = "n", "ZT", "<NOP>", noremap = true},
{mode = "n", "<Space>", "<NOP>", noremap = true},
{mode = "n", "<F1>", "<NOP>", noremap = true},
{mode = "n", "<F2>", "<NOP>", noremap = true},
{mode = "n", "<F3>", "<NOP>", noremap = true},
{mode = "n", "<F4>", "<NOP>", noremap = true},
{mode = "n", "<F5>", "<NOP>", noremap = true},
{mode = "n", "<F6>", "<NOP>", noremap = true},
{mode = "n", "<F7>", "<NOP>", noremap = true},
{mode = "n", "<F8>", "<NOP>", noremap = true},
{mode = "n", "<F9>", "<NOP>", noremap = true},
{mode = "n", "<F10>", "<NOP>", noremap = true},
{mode = "n", "<F11>", "<NOP>", noremap = true},
{mode = "n", "<F12>", "<NOP>", noremap = true},
-- spell
{mode = "n", "<F6>s", "z=", desc = "Spell: display suggestions"},
-- shortcuts for quitting
{mode = "n", "ZA", ":xa<CR>", desc = "Exit: write and quit all buffers", noremap = true},
{mode = "n", "ZQ", ":conf q<CR>", desc = "Exit: quit current buffer", noremap = true},
{mode = "n", "ZZ", ":x<CR>", desc = "Exit: write and quit current buffer", noremap = true},
-- shortcut for split navigation
{mode = "n", "<C-h>", "<C-w>h", desc = "Navigation: go to left window", noremap = true},
{mode = "n", "<C-j>", "<C-w>j", desc = "Navigation: go to lower window", noremap = true},
{mode = "n", "<C-k>", "<C-w>k", desc = "Navigation: go to upper window", noremap = true},
{mode = "n", "<C-l>", "<C-w>l", desc = "Navigation: go to right window", noremap = true},
-- remap for dealing with word wrap
{mode = "n", "j", "gj", desc = "Navigation: go down in wrapped lines", silent = true},
{mode = "n", "k", "gk", desc = "Navigation: go up in wrapped lines", silent = true},
-- compiler for languages
{mode = "n", "<leader>c", ":w! | !compiler <c-r>%<CR>", desc = "Compile: current file", noremap = true},
{mode = "n", "w!!", 'execute "silent! write !sudo tee % >/dev/null" <bar> edit!', desc = "Write: overwrite file over with sudo", noremap = true},
-- tpope/vim-abolish
{mode = "n", "<leader>sa", ":%S//g<Left><Left>", desc = "Substitute: free form", noremap = true},
{mode = "n", "<leader>ss", ":%S/\\<<C-r><C-w>\\>//g<Left><Left>", desc = "Substitute: word under cursor", noremap = true},
-- simrat39/symbols-outline.nvim
{mode = "n", "<F3>", ":Outline<CR>", desc = "CTags: toggle"},
-- nvim-tree/nvim-tree.lua
{mode = "n", "<F2>", ":NvimTreeToggle toggle<CR>", desc = "File tree: toggle"},
-- mbbill/undotree
{mode = "n", "<F1>", ":UndotreeToggle<CR>", desc = "Undo tree: toggle"},
-- amrbashir/nvim-docs-view
{mode = "n", "go", ":DocsViewToggle<CR>", desc = "LSP: toggle documentation window", noremap = true},
-- numtostr/fterm.nvim
{mode = "n", "<leader>tt", require("FTerm").toggle, desc = "Terminal: open", noremap = true},
{mode = "n", "<leader>gt", function() lazygit:toggle() end, desc = "Git: open lazygit", noremap = true},
{mode = "n", "<leader>tg", function() lazygit:toggle() end, desc = "Terminal: open lazygit", noremap = true},
{mode = "n", "<leader>tg", function() lazygit:toggle() end, desc = "Terminal: open lazygit", noremap = true},
-- sindrets/diffview.nvim
{mode = "n", "<leader>gdo", ":DiffviewOpen<CR>", desc = "Git: open diff"},
{mode = "n", "<leader>gdc", ":DiffviewClose<CR>", desc = "Git: close diff"},
-- folke/trouble.nvim
{mode = "n", "<leader>x", ":TroubleToggle<CR>", desc = "LSP: toggle error list"},
-- hrsh7th/nvim-cmp
{mode = "n", "gd", function() vim.lsp.buf.definition() end, desc = "LSP: goto definition", noremap = true},
{mode = "n", "gD", function() vim.lsp.buf.declaration() end, desc = "LSP: goto declaration", noremap = true},
{mode = "n", "gi", function() vim.lsp.buf.implementation() end, desc = "LSP: list implementation", noremap = true},
{mode = "n", "gr", function() vim.lsp.buf.references() end, desc = "LSP: list references", noremap = true},
{mode = "n", "K", vim.lsp.buf.hover(), desc = "LSP: show documentation", noremap = true},
{mode = "n", "<F8>", function() require("conform").format({ async = true, lsp_fallback = true }) end, desc = "LSP: format", noremap = true},
-- rmagatti/goto-preview
{mode = "n", "gpd", function() require("goto-preview").goto_preview_definition() end, desc = "LSP: preview definition", noremap = true},
{mode = "n", "gpy", function() require("goto-preview").goto_preview_type_definition() end, desc = "LSP: preview type definition", noremap = true},
{mode = "n", "gpi", function() require("goto-preview").goto_preview_implementation() end, desc = "LSP: list preview implementation", noremap = true},
{mode = "n", "gpD", function() require("goto-preview").goto_preview_declaration() end, desc = "LSP: preview declaration", noremap = true},
{mode = "n", "gpr", function() require("goto-preview").goto_preview_references() end, desc = "LSP: list preview references", noremap = true},
{mode = "n", "gpc", function() require("goto-preview").close_all_win() end, desc = "LSP: close all preview windows", noremap = true},
-- filipdutescu/renamer.nvim
{mode = "n", "<F5>", function() require("renamer").rename() end, desc = "LSP: rename", noremap = true},
-- nvim-telescope/telescope.nvim
{mode = "n", "<F4>", ":Telescope find_files<CR>", desc = "Telescope: find files", noremap = true},
{mode = "n", "<leader>ff", ":Telescope find_files<CR>", desc = "Telescope: find files", noremap = true},
-- kamykn/spelunker.vim
{mode = "n", "<F6>t", ":call spelunker#toggle()<CR>", desc = "Spelunker: toggle spell check", noremap = true},
{mode = "n", "<F6>l", function() if vim.opt.spelllang._value == "de_de" then vim.opt.spelllang = "en_us" print("Spell language set to en_us") else vim.opt.spelllang = "de_de" print("Spell language set to de_de") end vim.opt.spell = false end, desc = "Spell: toggle spell language", noremap = true},
-- kevinhwang91/nvim-ufo
{mode = "n", "K", function() local winid = require("ufo").peekFoldedLinesUnderCursor() if not winid then vim.lsp.buf.hover() end end, desc = "LSP: peek folded section", noremap = true},
-- kevinhwang91/nvim-hlslens
{mode = "n", "n", [[<Cmd>execute('normal! ' . v:count1 . 'n')<CR><Cmd>lua require('hlslens').start()<CR>]], desc = "Search: search forward", noremap = true, silent = true},
{mode = "n", "N", [[<Cmd>execute('normal! ' . v:count1 . 'N')<CR><Cmd>lua require('hlslens').start()<CR>]], desc = "Search: search backwards", noremap = true, silent = true},
-- sindrets/winshift.nvim
{mode = "n", "<C-W>m", ":WinShift<CR>", desc = "Navigation: enter window shift mode", noremap = true},
-- ggandor/leap.nvim
{mode = "n", "f", "<Plug>(leap-forward)", desc = "Navigation: enter leap mode for forward movement", noremap = true},
{mode = "n", "F", "<Plug>(leap-backward)", desc = "Navigation: enter leap mode for backwards movement", noremap = true},
{mode = "n", "gf", "<Plug>(leap-from-window)", desc = "Navigation: enter leap mode for other windows", noremap = true},
-- gnikdroy/projections.nvim
{mode = "n", "<leader>fp", function() vim.cmd("Telescope projections") end, desc = "Telescope: find projects", noremap = true},
-- quarto-dev/quarto-nvim
{mode = "n", "<leader>rc", require("quarto.runner").run_cell, desc = "Quarto: Run cell", noremap = true, silent = true},
{mode = "n", "<leader>ra", require("quarto.runner").run_above, desc = "Quarto: Run cell and above", noremap = true, silent = true},
{mode = "n", "<leader>rA", require("quarto.runner").run_all, desc = "Quarto: Run all cells", noremap = true, silent = true},
{mode = "n", "<leader>rl", require("quarto.runner").run_line, desc = "Quarto: Run line", noremap = true, silent = true},
{mode = "n", "<leader>rr", require("quarto.runner").run_range, desc = "Quarto: Run visual range", noremap = true, silent = true},
{mode = "n", "<leader>rL", function() require("quarto.runner").run_all(true) end, desc = "Quarto: Run all cells of all languages", noremap = true, silent = true},
})
m.nnoremap("<leader>gt", function() lazygit:toggle() end, 'Git: open lazygit')
m.tnoremap("<leader>gt", function() lazygit:toggle() end, 'Git: open lazygit')
m.nnoremap("<leader>tg", function() lazygit:toggle() end, 'Terminal: open lazygit')
m.tnoremap("<leader>tg", function() lazygit:toggle() end, 'Terminal: open lazygit')
-- sindrets/diffview.nvim
m.nmap("<leader>gdo", ":DiffviewOpen<CR>", "Git: open diff")
m.nmap("<leader>gdc", ":DiffviewClose<CR>", "Git: close diff")
-- folke/trouble.nvim
m.nmap("<leader>x", ":TroubleToggle<CR>", "LSP: toggle error list")
-- hrsh7th/nvim-cmp
m.nnoremap("gd", vim.lsp.buf.definition(), "LSP: goto definition")
m.nnoremap("gD", vim.lsp.buf.declaration(), "LSP: goto declaration")
m.nnoremap("gi", vim.lsp.buf.implementation(), "LSP: list implementation")
m.nnoremap("gr", function() vim.lsp.buf.references() end, "LSP: list references")
m.nnoremap("gy", vim.lsp.buf.type_definition(), "LSP: goto type definition")
m.nnoremap("K", vim.lsp.buf.hover(), "LSP: show documentation")
m.nnoremap("<F8>", function() require("conform").format({ async = true, lsp_fallback = true }) end, "LSP: format")
-- rmagatti/goto-preview
m.nnoremap("gpd", function() require('goto-preview').goto_preview_definition() end, "LSP: preview definition")
m.nnoremap("gpy", function() require('goto-preview').goto_preview_type_definition() end, "LSP: preview type definition")
m.nnoremap("gpi", function() require('goto-preview').goto_preview_implementation() end, "LSP: list preview implementation")
m.nnoremap("gpD", function() require('goto-preview').goto_preview_declaration() end, "LSP: preview declaration")
m.nnoremap("gpr", function() require('goto-preview').goto_preview_references() end, "LSP: list preview references")
m.nnoremap("gpc", function() require('goto-preview').close_all_win() end, "LSP: close all preview windows")
-- filipdutescu/renamer.nvim
m.nnoremap("<F5>", function() require("renamer").rename() end, "LSP: rename")
-- nvim-telescope/telescope.nvim
m.nnoremap("<F4>", ':Telescope find_files<CR>', "Telescope: find files")
-- kamykn/spelunker.vim
m.nnoremap("<F6>", ':call spelunker#toggle()<CR>', "Spelling: toggle spell check")
-- kevinhwang91/nvim-ufo
m.nnoremap("K", function()
local winid = require('ufo').peekFoldedLinesUnderCursor()
if not winid then
vim.lsp.buf.hover()
end
end, "LSP: peek folded section")
-- kevinhwang91/nvim-hlslens
m.nnoremap("n", [[<Cmd>execute('normal! ' . v:count1 . 'n')<CR><Cmd>lua require('hlslens').start()<CR>]],
'silent', "Search: search forward")
m.nnoremap("N", [[<Cmd>execute('normal! ' . v:count1 . 'N')<CR><Cmd>lua require('hlslens').start()<CR>]],
'silent', "Search: search backwards")

View File

@@ -0,0 +1,34 @@
return {
"saghen/blink.pairs",
version = "*", -- (recommended) only required with prebuilt binaries
-- download prebuilt binaries from github releases
dependencies = "saghen/blink.download",
--- @module 'blink.pairs'
--- @type blink.pairs.Config
opts = {
mappings = {
enabled = true,
pairs = {
["("] = ")",
["["] = "]",
["{"] = "}",
["'"] = "'",
['"'] = '"',
["`"] = "`",
},
},
highlights = {
enabled = true,
groups = {
"BlinkPairsOrange",
"BlinkPairsPurple",
"BlinkPairsBlue",
},
priority = 200,
ns = vim.api.nvim_create_namespace("blink.pairs"),
},
debug = false,
},
}

View File

@@ -0,0 +1,17 @@
return {
{
"hat0uma/csvview.nvim",
opts = {
parser = { comments = { "#", "//" } },
keymaps = {
textobject_field_inner = { "if", mode = { "o", "x" } },
textobject_field_outer = { "af", mode = { "o", "x" } },
jump_next_field_end = { "<Tab>", mode = { "n", "v" } },
jump_prev_field_end = { "<S-Tab>", mode = { "n", "v" } },
jump_next_row = { "<Enter>", mode = { "n", "v" } },
jump_prev_row = { "<S-Enter>", mode = { "n", "v" } },
},
},
cmd = { "CsvViewEnable", "CsvViewDisable", "CsvViewToggle" },
}
}

View File

@@ -1,5 +1,6 @@
return {
"rmagatti/goto-preview",
dependencies = 'rmagatti/logger.nvim',
config = function()
require("goto-preview").setup({})
end,

View File

@@ -5,7 +5,7 @@ return {
ft = { 'tex' },
config = function()
vim.g.knap_settings = {
delay = 1000,
delay = 100,
-- tex
texoutputext = "pdf",
textopdf = "pdflatex -synctex=1 -halt-on-error -interaction=batchmode %docroot%",

View File

@@ -0,0 +1,15 @@
return {
-- improved movement
{
"ggandor/leap.nvim",
config = function()
require("leap").opts.highlight_unlabeled_phase_one_targets = true
require("leap").opts.equivalence_classes = { " \t\r\n", "([{", ")]}", "'\"`" }
require("leap").opts.special_keys.prev_target = "<backspace>"
require("leap").opts.special_keys.prev_group = "<backspace>"
require("leap.user").set_repeat_keys("<enter>", "<backspace>")
require("leap").opts.safe_labels = "sfnut/SFNLHMUGTZ?"
require("leap").opts.labels = "sfnjklhodweimbuyvrgtaqpcxz/SFNJKLHODWEIMBUYVRGTAQPCXZ?"
end,
},
}

View File

@@ -15,7 +15,7 @@ return {
},
{ "tiyn/tccs.nvim" },
{
"roobert/action-hints.nvim",
"tiyn/action-hints.nvim",
config = function()
require("action-hints").setup({
template = {

View File

@@ -1,9 +0,0 @@
return {
-- improved keybindings, previewing them
{
"b0o/mapx.nvim",
dependencies = {
"folke/which-key.nvim",
}
}
}

View File

@@ -45,7 +45,7 @@ return {
"yamlfmt",
}
}
}
},
},
opts = { ui = { icons = Install_signs } }
}

View File

@@ -0,0 +1,8 @@
return {
{
"mvllow/modes.nvim",
config = function()
require("modes").setup()
end,
},
}

View File

@@ -0,0 +1,61 @@
return {
{
"benlubas/molten-nvim",
version = "^1.0.0",
dependencies = {
{
"3rd/image.nvim",
opts = {
backend = "ueberzug",
max_width = 100,
max_height = 12,
max_height_window_percentage = math.huge,
max_width_window_percentage = math.huge,
window_overlap_clear_enabled = true,
window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "" },
},
},
{
"quarto-dev/quarto-nvim",
dependencies = {
"jmbuhr/otter.nvim",
"nvim-treesitter/nvim-treesitter",
},
opts = {
lspFeatures = {
languages = { "python" },
chunks = "all",
diagnostics = {
enabled = true,
triggers = { "BufWritePost" },
},
completion = {
enabled = true,
},
},
codeRunner = {
enabled = true,
default_method = "molten",
},
},
},
{
"GCBallesteros/jupytext.nvim",
opts = {
style = "markdown",
output_extension = "md",
force_ft = "markdown",
},
},
},
build = ":UpdateRemotePlugins",
init = function()
vim.g.molten_auto_open_output = false
vim.g.molten_wrap_output = true
vim.g.molten_virt_text_output = true
vim.g.molten_virt_lines_off_by_1 = true
vim.g.molten_image_provider = "image.nvim"
vim.g.molten_output_win_max_height = 20
end,
},
}

View File

@@ -1,7 +0,0 @@
return {
-- automatic closing of brackets
{
'windwp/nvim-autopairs',
opts = {}
}
}

View File

@@ -15,6 +15,8 @@ return {
config = function()
require("luasnip.loaders.from_snipmate").lazy_load()
end,
version = "v2.*",
build = "make install_jsregexp",
dependencies = { 'saadparwaiz1/cmp_luasnip' }
},
},

View File

@@ -1,5 +1,5 @@
return {
"amrbashir/nvim-docs-view",
"tiyn/nvim-docs-view",
lazy = true,
cmd = "DocsViewToggle",
opts = {

View File

@@ -1,18 +1,23 @@
return {
-- lang server management
{
'neovim/nvim-lspconfig',
"neovim/nvim-lspconfig",
dependencies = {
'williamboman/mason-lspconfig.nvim',
"williamboman/mason-lspconfig.nvim",
{
'hrsh7th/cmp-nvim-lsp',
"mrcjkb/rustaceanvim",
version = "^6",
lazy = false,
},
{
"hrsh7th/cmp-nvim-lsp",
config = function()
Capabilities = require("cmp_nvim_lsp").default_capabilities()
Capabilities.textDocument.foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true
lineFoldingOnly = true,
}
end
end,
},
},
config = function()
@@ -34,16 +39,16 @@ return {
"r_language_server",
"sqlls",
"texlab",
"tsserver",
-- "tsserver",
"yamlls",
}
},
})
local servers = {
lua_ls = {
Lua = {
lua = {
diagnostics = {
globals = { 'vim' }
globals = { "vim" },
},
telemetry = { enable = false },
},
@@ -53,23 +58,27 @@ return {
-- language = "de-DE",
enabled = { "latex" },
dictionary = Dictionaries,
}
}
},
},
}
local default = {
__index = function()
return {}
end,
}
local default = { __index = function() return {} end }
setmetatable(servers, default)
require("mason-lspconfig").setup_handlers({
function(server_name)
require('lspconfig')[server_name].setup({
on_attach = Attach_func,
capabilities = Capabilities,
flags = {
debounce_text_changes = 150
},
settings = servers[server_name]
})
end
})
end
}
-- require("mason-lspconfig").setup_handlers({
-- function(server_name)
-- require('lspconfig')[server_name].setup({
-- on_attach = Attach_func,
-- capabilities = Capabilities,
-- flags = {
-- debounce_text_changes = 150
-- },
-- settings = servers[server_name]
-- })
-- end
-- })
end,
},
}

View File

@@ -7,7 +7,7 @@ return {
-- automatically close html-tags
'windwp/nvim-ts-autotag',
-- color brackets
'p00f/nvim-ts-rainbow',
-- 'p00f/nvim-ts-rainbow',
},
config = function()
require("nvim-treesitter.configs").setup({
@@ -19,17 +19,18 @@ return {
"markdown_inline",
"latex",
"python",
"rust",
"lua",
},
highlight = { enable = true },
autotag = { enable = true },
rainbow = {
enable = true,
extended_mode = true,
max_file_lines = nil,
-- colors = {},
-- termcolors = {}
}
-- highlight = { enable = true },
autotag = { enable = false },
-- rainbow = {
-- enable = true,
-- extended_mode = true,
-- max_file_lines = nil,
-- -- colors = {},
-- -- termcolors = {}
-- }
})
end
}

View File

@@ -0,0 +1,13 @@
return {
{
"hedyhli/outline.nvim",
opts = {
outline_window = {
width = 25
},
symbols = {
icon_source = 'lspkind',
}
}
}
}

View File

@@ -0,0 +1,24 @@
return {
"gnikdroy/projections.nvim",
dependencies = { "nvim-telescope/telescope.nvim" },
branch = "pre_release",
config = function()
require("projections").setup({
workspaces = { -- Default workspaces to search for
{ "~/code/main", { ".git" } },
{ "~/code/uni", { ".git" } },
},
store_hooks = {
pre = function()
-- nvim-tree
local nvim_tree_present, api = pcall(require, "nvim-tree.api")
if nvim_tree_present then
api.tree.close()
end
end,
},
})
require("telescope").load_extension("projections")
end,
}

View File

@@ -4,7 +4,7 @@ return {
'kamykn/spelunker.vim',
dependencies = { 'kamykn/popup-menu.nvim' },
config = function()
vim.o.nospell = true
-- vim.o.nospell = true
vim.g.enable_spelunker_vim = 0
vim.g.spelunker_disable_acronym_checking = 1
end

View File

@@ -1,39 +0,0 @@
return {
-- ctags like menu
{
"simrat39/symbols-outline.nvim",
opts = {
width = 25,
symbols = {
File = { icon = Lsp_signs.File, hl = "@text.uri" },
Module = { icon = Lsp_signs.Module, hl = "@namespace" },
Class = { icon = Lsp_signs.Class, hl = "@type" },
Method = { icon = Lsp_signs.Method, hl = "@method" },
Property = { icon = Lsp_signs.Property, hl = "@method" },
Field = { icon = Lsp_signs.Field, hl = "@field" },
Constructor = { icon = Lsp_signs.Constructor, hl = "@constructor" },
Enum = { icon = Lsp_signs.Enum, hl = "@type" },
Interface = { icon = Lsp_signs.Interface, hl = "@type" },
Function = { icon = Lsp_signs.Function, hl = "@function" },
Variable = { icon = Lsp_signs.Variable, hl = "@constant" },
Constant = { icon = Lsp_signs.Constant, hl = "@constant" },
Key = { icon = Lsp_signs.Keyword, hl = "@type" },
EnumMember = { icon = Lsp_signs.EnumMember, hl = "@field" },
Struct = { icon = Lsp_signs.Struct, hl = "@type" },
Event = { icon = Lsp_signs.Event, hl = "@type" },
Operator = { icon = Lsp_signs.Operator, hl = "@operator" },
TypeParameter = { icon = Lsp_signs.TypeParameter, hl = "@parameter" },
Boolean = { icon = Lsp_signs.Boolean, hl = "@boolean" },
Null = { icon = Lsp_signs.Null, hl = "@type" },
Component = { icon = Lsp_signs.Component, hl = "@function" },
Fragment = { icon = Lsp_signs.Fragment, hl = "@constant" },
Object = { icon = Lsp_signs.Object, hl = "@type" },
Array = { icon = Lsp_signs.Array, hl = "@constant" },
Number = { icon = Lsp_signs.Number, hl = "@number" },
String = { icon = Lsp_signs.String, hl = "@string" },
Namespace = { icon = Lsp_signs.Namespace, hl = "@namespace" },
Package = { icon = Lsp_signs.Package, hl = "@namespace" },
},
},
},
}

View File

@@ -2,7 +2,7 @@ return {
-- clean up white spaces and empty lines before writing
{
"mcauley-penney/tidy.nvim",
branch = "triggerable-tidy",
branch = "main",
opts = {
filetype_exclude = { "diff" }
}

View File

@@ -0,0 +1,6 @@
return {
-- improved keybindings, previewing them
{
"folke/which-key.nvim",
}
}

View File

@@ -1,35 +1,36 @@
return {
-- improved wild menu
{
'gelguy/wilder.nvim',
"gelguy/wilder.nvim",
dependencies = {
{
"nvim-tree/nvim-web-devicons",
lazy = true
lazy = true,
},
'roxma/nvim-yarp',
'roxma/vim-hug-neovim-rpc',
'romgrk/fzy-lua-native'
"roxma/nvim-yarp",
"roxma/vim-hug-neovim-rpc",
"romgrk/fzy-lua-native",
"nixprime/cpsm",
},
config = function()
local wilder = require('wilder')
local wilder = require("wilder")
wilder.setup({
modes = {':', '/', '?'},
accept_key = '<CR>',
reject_key = '<C-e>'
modes = { ":", "/", "?" },
accept_key = "<CR>",
reject_key = "<C-e>",
})
wilder.set_option('pipeline', {
wilder.set_option("pipeline", {
wilder.branch(
wilder.python_file_finder_pipeline({
file_command = function(ctx, arg)
if string.find(arg, '.') ~= nil then
return {'fdfind', '-tf', '-H'}
if string.find(arg, ".") ~= nil then
return { "fd", "-tf", "-H" }
else
return {'fdfind', '-tf'}
return { "fd", "-tf" }
end
end,
dir_command = {'fd', '-td'},
filters = {'cpsm_filter'},
dir_command = { "fd", "-td" },
filters = { "cpsm_filter" },
}),
wilder.substitute_pipeline({
pipeline = wilder.python_search_pipeline({
@@ -44,7 +45,9 @@ return {
fuzzy_filter = wilder.lua_fzy_filter(),
}),
{
wilder.check(function(ctx, x) return x == '' end),
wilder.check(function(ctx, x)
return x == ""
end),
wilder.history(),
},
wilder.python_search_pipeline({
@@ -58,11 +61,14 @@ return {
wilder.pcre2_highlighter(),
wilder.lua_fzy_highlighter(),
}
wilder.set_option('renderer', wilder.popupmenu_renderer({
highlighter = highlighters,
left = { ' ', wilder.popupmenu_devicons() },
right = { ' ', wilder.popupmenu_scrollbar() },
}))
wilder.set_option(
"renderer",
wilder.popupmenu_renderer({
highlighter = highlighters,
left = { " ", wilder.popupmenu_devicons() },
right = { " ", wilder.popupmenu_scrollbar() },
})
)
end,
}
},
}

View File

@@ -0,0 +1,7 @@
return {
-- improved movement of windows
{
"sindrets/winshift.nvim",
opts = {},
},
}

View File

@@ -21,6 +21,7 @@ Menu_signs = {
path = "",
}
Lsp_signs = {
Array = "",
Boolean = "",
@@ -106,22 +107,17 @@ Lualine_signs = {
unnamed = "",
}
vim.fn.sign_define(
"DiagnosticSignError",
{ texthl = "DiagnosticSignError", text = Error_sign, numhl = "DiagnosticSignError" }
)
vim.fn.sign_define(
"DiagnosticSignWarn",
{ texthl = "DiagnosticSignWarn", text = Warn_sign, numhl = "DiagnosticSignWarn" }
)
vim.fn.sign_define(
"DiagnosticSignInfo",
{ texthl = "DiagnosticSignInfo", text = Info_sign, numhl = "DiagnosticSignInfo" }
)
vim.fn.sign_define(
"DiagnosticSignHint",
{ texthl = "DiagnosticSignHint", text = Hint_sign, numhl = "DiagnosticSignHint" }
)
vim.diagnostic.config({
severity_sort = true,
signs = {
text = {
[vim.diagnostic.severity.ERROR] = Error_sign,
[vim.diagnostic.severity.WARN] = Warn_sign,
[vim.diagnostic.severity.INFO] = Info_sign,
[vim.diagnostic.severity.HINT] = Hint_sign,
},
},
})
-- enable colorcolumn when textwidth is set
vim.o.cursorline = true

View File

@@ -0,0 +1,3 @@
#!/bin/sh
#

View File

@@ -5,8 +5,8 @@ standard_dialogs=default
style=Fusion
[Fonts]
fixed=@Variant(\0\0\0@\0\0\0\x1a\0I\0\x42\0M\0 \0P\0l\0\x65\0x\0 \0M\0o\0n\0o@&\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
general=@Variant(\0\0\0@\0\0\0\x1a\0I\0\x42\0M\0 \0P\0l\0\x65\0x\0 \0M\0o\0n\0o@&\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
fixed="Linux Biolinum,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
general="Linux Biolinum,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
[Interface]
activate_item_on_single_click=1
@@ -24,4 +24,8 @@ underline_shortcut=1
wheel_scroll_lines=3
[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x19\0\0\x2\xef\0\0\x3\x16\0\0\0\x1\0\0\0\x1a\0\0\x2\xee\0\0\x3\x15\0\0\0\0\0\0\0\0\x5V\0\0\0\x1\0\0\0\x1a\0\0\x2\xee\0\0\x3\x15)
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x16\0\0\t\xff\0\0\x5\x9f\0\0\0\0\0\0\0\x16\0\0\t\xff\0\0\x5\x9f\0\0\0\0\0\0\0\0\n\0\0\0\0\0\0\0\0\x16\0\0\t\xff\0\0\x5\x9f)
[Troubleshooting]
force_raster_widgets=1
ignored_applications=@Invalid()

32
.config/qt6ct/qt6ct.conf Normal file
View File

@@ -0,0 +1,32 @@
[Appearance]
color_scheme_path=/usr/share/qt6ct/colors/darker.conf
custom_palette=true
icon_theme=breeze-dark
standard_dialogs=default
style=Adwaita-Dark
[Fonts]
fixed="Linux Biolinum,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
general="Linux Biolinum,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
[Interface]
activate_item_on_single_click=1
buttonbox_layout=0
cursor_flash_time=1000
dialog_buttons_have_icons=1
double_click_interval=400
gui_effects=@Invalid()
keyboard_scheme=2
menus_have_icons=true
show_shortcuts_in_context_menus=true
stylesheets=@Invalid()
toolbutton_style=4
underline_shortcut=1
wheel_scroll_lines=3
[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x13\0\0\x5\xff\0\0\x3\xbf\0\0\0\0\0\0\0\x13\0\0\x5\xff\0\0\x3\xbf\0\0\0\0\0\0\0\0\x6\0\0\0\0\0\0\0\0\x13\0\0\x5\xff\0\0\x3\xbf)
[Troubleshooting]
force_raster_widgets=1
ignored_applications=@Invalid()

1
.config/swaylock/config Normal file
View File

@@ -0,0 +1 @@
image=~/.local/share/lock

86
.config/swhkd/swhkdrc Normal file
View File

@@ -0,0 +1,86 @@
super + b
$BROWSER
super + m
thunderbird
super + u
record_stop
super + i
record_start
super + o
record_replay_start
super + p
record_replay_save
super + a
lmc previous
super + s
lmc playpause
super + d
lmc next
super + c
lmc loop
super + x
lmc shuffle
super + bracketright
lmc mute_toggle
super + backslash
lmc deaf_toggle
super + apostrophe
lmc tap_toggle
super + bracketleft
dnd toggle
super + shift + b
killall -SIGUSR1 waybar
super + shift + r
pkill -HUP swhkd ; notify-send -u low 'SWHKD' 'Reloaded hotkeys'
super + shift + space
dunstctl close-all
super + F7
mount_menu
super + F8
umount_menu
super + F9
systemctl restart NetworkManager ; notify-send -u low 'Network' 'Restartet NM'
super + F10
prompt "Lock computer?" "swaylock -i ~/.local/share/lock"
super + shift + F10
prompt "Hibernate computer?" "systemctl hibernate"
super + F11
prompt "Shutdown computer?" "shutdown -h now"
super + F12
prompt "Reboot computer?" "reboot now"
Print
screenshot
XF86AudioMute
lmc deaf_toggle
XF86AudioLowerVolume
lmc down
XF86AudioRaiseVolume
lmc up

View File

@@ -29,12 +29,16 @@ super + m
thunderbird
super + bracketright
mic_toggle
lmc mute_toggle
super + backslash
sound_toggle
lmc deaf_toggle
super + bracketleft
dnd toggle
super + apostrophe
lmc tap_toggle
super + shift + l
change_keymap
keymap toggle
super + shift + r
pkill -usr1 -x sxhkd ; notify-send -u low 'SXHKD' 'Reloaded config'
@@ -43,37 +47,42 @@ super + Return
$TERMINAL
Print
screenshotmenu
screenshot
super + space
touchpad toggle
super + shift + space
dunstctl close-all
super + F5
monitor_toggle
monitor toggle
super + F6
touchpad_toggle
touchpad toggle
super + F7
dmenumount
mount_menu
super + F8
dmenuumount
umount_menu
super + F9
sudo -A systemctl restart NetworkManager ; notify-send -u low 'Network' 'Restartet NM'
super + F10
prompt "Lock computer?" "slock"
super + shift + F10
prompt "Hibernate computer?" "systemctl hibernate"
super + F11
prompt "Shutdown computer?" "sudo -A shutdown -h now"
super + F12
prompt "Reboot computer?" "sudo -A reboot now"
XF86AudioMute
sound_toggle
lmc deaf_toggle
XF86AudioMicMute
mic_toggle
lmc mute_toggle
XF86AudioLowerVolume
lmc down
XF86AudioRaiseVolume
lmc up
XF86MonBrightnessDown
light -U 15
brightnessctl set 15%-
XF86MonBrightnessUp
light -A 15
brightnessctl set 15%+

View File

@@ -2,7 +2,8 @@
while read file
do
case "$1" in
"w") setbg "$file" & ;;
"w") wallpaper desktop "$file" & ;;
"l") wallpaper lock "$file" & ;;
"c")
[ -z "$destdir" ] && destdir="$(sed "s/\s.*#.*$//;/^\s*$/d" ~/.config/bmdirs | awk '{print $2}' | dmenu -l 20 -i -p "Copy file(s) to where?" | sed "s|~|$HOME|g")"
[ -z "$destdir" ] && exit

View File

@@ -177,6 +177,16 @@ fileviewer *.pdf
\ %pc
\ vifmimg clear
" cbr
filextype *.cbr
\ {View in zathura}
\ zathura ./%f,
" cbz
filextype *.cbz
\ {View in zathura}
\ zathura ./%f,
" CSV
filetype *.csv,*.xlsx,*.sc sc-im %f
@@ -214,6 +224,8 @@ filextype *.svg
" Audio
filetype *.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus
\ {Play using mpv}
\ mpv %c,
\ {Play using ffplay}
\ ffplay -nodisp -autoexit %c,
\ {Play using MPlayer}
@@ -236,8 +248,8 @@ fileviewer <video/*>
" Web
filextype *.html,*.htm
\ {Open with firefox}
\ firefox %f &,
\ {Open with default browser}
\ $BROWSER %f &,
filetype *.html,*.htm links, lynx
" Font

View File

@@ -0,0 +1,85 @@
{
"layer": "bottom", // Waybar at top layer
"position": "top", // Waybar position (top|bottom|left|right)
"height": 5, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
// Choose the order of the modules
"modules-left": ["dwl/tags", "dwl/window"],
"modules-right": ["cpu", "memory", "pulseaudio#output", "pulseaudio#input", "network", "battery", "clock", "tray"],
// Modules configuration
// "sway/workspaces": {
// "disable-scroll": true,
// "all-outputs": true,
// "format": "{name}: {icon}",
// "format-icons": {
// "1": "",
// "2": "",
// "3": "",
// "4": "",
// "5": "",
// "urgent": "",
// "focused": "",
// "default": ""
// }
// },
"dwl/tags": {
"tag-labels": [ "", "", "", "", "", "", "", "", "", "" ],
"num-tags": 10
},
"dwl/window": {
"format": "{layout} {title}"
},
"tray": {
"icon-size": 20,
"spacing": 10
},
"clock": {
"format": " {:%d %b %H:%M}"
},
"battery": {
"states": {
"good": 75,
"warning": 25,
"critical": 15
},
"format": "{icon}",
"format-icons": {
"default": ["<span color=\"#f00\"></span>", "<span color=\"#ff0\"></span>", "", "", ""],
"charging": ["<span color=\"#f00\"></span>", "<span color=\"#ff0\"></span>", "", "", ""]
}
// "format-charging": "{capacity}%",
// "format-plugged": "{capacity}%",
// "format-alt": "{time} ",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{icon}",
"format-ethernet": "󰈀",
"format-disconnected": "<span color=\"#f00\"></span>",
"format-icons": [ "" ]
},
"pulseaudio#output": {
// "scroll-step": 1, // %, can be a float
"format-source": "",
"format-source-muted": "<span color=\"#f00\"></span>",
"format": "{format_source}"
},
"pulseaudio#input": {
// "scroll-step": 1, // %, can be a float
"format": "{icon}",
"format-muted": "<span color=\"#f00\"></span>",
"format-bluetooth": "{format_source}",
"format-icons": [ "<span color=\"#f00\"></span>", "", "", ""]
},
//disk-usage, gpu
"cpu": {
"format": "",
"tooltip": true
},
"memory": {
"format": ""
}
}

238
.config/waybar/style.css Normal file
View File

@@ -0,0 +1,238 @@
* {
border: none;
border-radius: 4px;
/* `ttf-font-awesome` is required to be installed for icons */
font-family: Mono, Helvetica, Arial, sans-serif;
/* adjust font-size value to your liking: */
font-size: 15px;
min-height: 0;
}
window#waybar {
background-color: rgba(0, 0, 0, 1);
/* border-bottom: 3px solid rgba(100, 114, 125, 0.5); */
color: #ffffff;
/* transition-property: background-color; */
/* transition-duration: .5s; */
/* border-radius: 0; */
}
/* window#waybar.hidden {
opacity: 0.2;
} */
/*
window#waybar.empty {
background-color: transparent;
}
window#waybar.solo {
background-color: #FFFFFF;
}
*/
/* window#waybar.termite {
background-color: #000000;
}
window#waybar.chromium {
background-color: #000000;
border: none;
} */
#tags button {
/* padding: 0 0.4em; */
/* background-color: transparent; */
color: #ffffff;
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
#tags button:hover {
background: rgba(0, 0, 0, 0.9);
/* box-shadow: inset 0 -3px #ffffff; */
}
#tags button.occupied {
/* background-color: #282828; */
box-shadow: inset 0 -3px #ffffff;
}
#tags button.focused {
background-color: #555a63;
/* box-shadow: inset 0 -3px #ffffff; */
}
#tags button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
/* border-bottom: 3px solid #ffffff; */
}
#clock,
#battery,
#cpu,
#memory,
#temperature,
#backlight,
#network,
#pulseaudio,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#mpd {
padding: 0 10px;
margin: 6px 3px;
color: #000000;
}
#window,
#tags {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #tags {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #tags {
margin-right: 0;
}
#clock {
background-color: #000000;
color: white;
}
#battery {
background-color: #000000;
color: white;
}
#battery.charging {
color: #ffffff;
background-color: #000000;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
background-color: #000000;
}
#cpu {
background-color: #000000;
color: #ffffff;
}
#memory {
background-color: #000000;
color: white;
}
#backlight {
background-color: #000000;
color:white;
}
#network {
background-color: #000000;
color:white;
}
#network.disconnected {
background-color: #000000;
}
#pulseaudio {
background-color: #000000;
color: #ffffff;
}
#pulseaudio.muted {
background-color: #000000;
color: #ffffff;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#temperature {
background-color: #f0932b;
}
#temperature.critical {
background-color: #eb4d4b;
}
#tray {
background-color: #000000;
}
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
#language {
background: #bbccdd;
color: #333333;
padding: 0 5px;
margin: 6px 3px;
min-width: 16px;
}

11
.config/wayland/swayidle.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/sh
exec swayidle -w \
timeout 600 "brightnessctl -s set 0%" resume "brightnessctl -r"\
timeout 1200 "notify-send -u critical 'Power' 'Laptop will suspend in 10 minutes!'"\
timeout 1200 "notify-send -u critical 'Power' 'Screen will turn off soon'"\
timeout 1260 "wlr-randr --output eDP-1 --off" resume "wlr-randr --output eDP-1 --on"\
timeout 1500 "notify-send -u critical 'Power' 'System will suspend in 5 minutes!'"\
timeout 1740 "notify-send -u critical 'Power' 'System will suspend in 1 minute!'"\
timeout 1790 "notify-send -u critical 'Power' 'System will suspend in 10 seconds!'"\
timeout 1795 "notify-send -u critical 'Power' 'System will suspend in 5 seconds!'"\
timeout 1800 "systemctl suspend-then-hibernate"

31
.config/wayland/wayland.conf Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
exec systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
nmcli radio wifi on &
~/.config/wayland/swayidle.sh &
$STATUSBAR & # use environment variable
xss-lock -- swaylock & # enable locking the screen upon sleep
swaybg -i ~/.local/share/bg &
dunst &
dunstctl rule dnd_low disable &
dunstctl rule dnd_normal disable &
swhks && swhkd &
pavucontrol &
easyeffects --gapplication-service &
nextcloud &
keepassxc &
zen-browser &
discord &
signal-desktop &
Telegram &
threema-beta &
thunderbird &
# mattermost-desktop &
# monitor toggle &
# touchpad off &
# xset r rate 300 50 & # Speed xrate up
# redshift & # redshift for saving your eyes

137
.config/wgetrc Normal file
View File

@@ -0,0 +1,137 @@
###
### Sample Wget initialization file .wgetrc
###
## You can use this file to change the default behaviour of wget or to
## avoid having to type many many command-line options. This file does
## not contain a comprehensive list of commands -- look at the manual
## to find out what you can put into this file. You can find this here:
## $ info wget.info 'Startup File'
## Or online here:
## https://www.gnu.org/software/wget/manual/wget.html#Startup-File
##
## Wget initialization file can reside in /usr/local/etc/wgetrc
## (global, for all users) or $HOME/.wgetrc (for a single user).
##
## To use the settings in this file, you will have to uncomment them,
## as well as change them, in most cases, as the values on the
## commented-out lines are the default values (e.g. "off").
##
## Command are case-, underscore- and minus-insensitive.
## For example ftp_proxy, ftp-proxy and ftpproxy are the same.
##
## Global settings (useful for setting up in /usr/local/etc/wgetrc).
## Think well before you change them, since they may reduce wget's
## functionality, and make it behave contrary to the documentation:
##
# You can set retrieve quota for beginners by specifying a value
# optionally followed by 'K' (kilobytes) or 'M' (megabytes). The
# default quota is unlimited.
#quota = inf
# You can lower (or raise) the default number of retries when
# downloading a file (default is 20).
#tries = 20
# Lowering the maximum depth of the recursive retrieval is handy to
# prevent newbies from going too "deep" when they unwittingly start
# the recursive retrieval. The default is 5.
#reclevel = 5
# By default Wget uses "passive FTP" transfer where the client
# initiates the data connection to the server rather than the other
# way around. That is required on systems behind NAT where the client
# computer cannot be easily reached from the Internet. However, some
# firewalls software explicitly supports active FTP and in fact has
# problems supporting passive transfer. If you are in such
# environment, use "passive_ftp = off" to revert to active FTP.
#passive_ftp = off
# The "wait" command below makes Wget wait between every connection.
# If, instead, you want Wget to wait only between retries of failed
# downloads, set waitretry to maximum number of seconds to wait (Wget
# will use "linear backoff", waiting 1 second after the first failure
# on a file, 2 seconds after the second failure, etc. up to this max).
#waitretry = 10
##
## Local settings (for a user to set in his $HOME/.wgetrc). It is
## *highly* undesirable to put these settings in the global file, since
## they are potentially dangerous to "normal" users.
##
## Even when setting up your own ~/.wgetrc, you should know what you
## are doing before doing so.
##
# Set this to on to use timestamping by default:
#timestamping = off
# It is a good idea to make Wget send your email address in a `From:'
# header with your request (so that server administrators can contact
# you in case of errors). Wget does *not* send `From:' by default.
#header = From: Your Name <username@site.domain>
# You can set up other headers, like Accept-Language. Accept-Language
# is *not* sent by default.
#header = Accept-Language: en
# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
#https_proxy = http://proxy.yoyodyne.com:18023/
#http_proxy = http://proxy.yoyodyne.com:18023/
#ftp_proxy = http://proxy.yoyodyne.com:18023/
# If you do not want to use proxy at all, set this to off.
#use_proxy = on
# You can customize the retrieval outlook. Valid options are default,
# binary, mega and micro.
#dot_style = default
# Setting this to off makes Wget not download /robots.txt. Be sure to
# know *exactly* what /robots.txt is and how it is used before changing
# the default!
#robots = on
# It can be useful to make Wget wait between connections. Set this to
# the number of seconds you want Wget to wait.
#wait = 0
# You can force creating directory structure, even if a single is being
# retrieved, by setting this to on.
#dirstruct = off
# You can turn on recursive retrieving by default (don't do this if
# you are not sure you know what it means) by setting this to on.
#recursive = off
# To always back up file X as X.orig before converting its links (due
# to -k / --convert-links / convert_links = on having been specified),
# set this variable to on:
#backup_converted = off
# To have Wget follow FTP links from HTML files by default, set this
# to on:
#follow_ftp = off
# To try ipv6 addresses first:
#prefer-family = IPv6
# Set default IRI support state
#iri = off
# Force the default system encoding
#localencoding = UTF-8
# Force the default remote server encoding
#remoteencoding = UTF-8
# Turn on to prevent following non-HTTPS links when in recursive mode
#httpsonly = off
# Tune HTTPS security (auto, SSLv2, SSLv3, TLSv1, PFS)
#secureprotocol = auto

View File

@@ -0,0 +1,5 @@
[preferred]
default=gtk
org.freedesktop.impl.portal.Screenshot=wlr
org.freedesktop.impl.portal.ScreenCast=wlr
org.freedesktop.impl.portal.Secret=gnome-keyring

3
.config/xorg/xlocal Normal file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
# autostart

View File

@@ -1,12 +1,14 @@
#!/bin/sh
xset r rate 300 50 & # Speed xrate up
unclutter & # Remove mouse when idle
dunst & # dunst for notifications
redshift & # redshift for saving your eyes
$STATUSBAR & # for refreshing the statusbar
xcompmgr & # compositor for transparency
sxhkd & # for shortcuts
(sleep 10 ; pkill -RTMIN+4 $STATUSBAR) & # reload volume section of statusbar
dunstctl rule dnd_low disable & # disable dnd for low urgencies
dunstctl rule dnd_normal disable & # disable dnd for normal urgencies
xset r rate 300 50 & # Speed xrate up
unclutter & # Remove mouse when idle
dunst & # dunst for notifications
redshift & # redshift for saving your eyes
$STATUSBAR & # for refreshing the statusbar
xcompmgr & # compositor for transparency
sxhkd & # for shortcuts
(sleep 10 ; pkill -RTMIN+4 $STATUSBAR) & # reload volume section of statusbar
dunstctl rule dnd_low disable & # disable dnd for low urgencies
dunstctl rule dnd_normal disable & # disable dnd for normal urgencies
xss-lock -- slock & # enable locking the screen upon sleep
easyeffects --gapplication-service & # start audio server

View File

@@ -1,5 +1,6 @@
set statusbar-h-padding 0
set statusbar-v-padding 0
set guioptions none
set page-padding 1
map u scroll full-up
map d scroll full-down

View File

@@ -185,7 +185,7 @@ fi
eval $(thefuck --alias)
# python
#eval "$(pyenv init -)"
eval "$(pyenv init -)"
##########################
# COMMANDS BEFORE PROMPT #

2
.dmrc Normal file
View File

@@ -0,0 +1,2 @@
[Desktop]
Session=xinitrc

View File

@@ -37,10 +37,13 @@ case "$file" in
*\.js) node "$file" ;;
*\.c) if [ -f Makefile ]; then make run; else cc "$file" -o "$base" && "$base"; fi ;;
*\.nim) nim c -r -d:noColors "$file" ;;
*\.py) python "$file" ;;
*\.py) python3 "$file" ;;
*\.go) go run "$file" ;;
*\.lua) lua "$file" ;;
*\.sent) setsid sent "$file" 2>/dev/null & ;;
*\.r|*\.R) Rscript "$file" ;;
*\.rs) (cd "$dir" && cargo locate-project >/dev/null 2>&1) \
&& (cd "$(dirname "$(cd "$dir" && cargo locate-project --message-format plain)")" && cargo run) \
|| (rustc "$file" && "./$(basename "${file%.rs}")") ;;
*) sed 1q "$file" | grep "^#!/" | sed "s/^#!//" | xargs -r -I % "$file" ;;
esac

View File

@@ -5,12 +5,12 @@
# by lukesmithxyz, checkout github.com/lukesmithxyz/voidrice
case "$1" in
*.tex)
file=$(readlink -f "$1")
dir=$(dirname "$file")
base="${file%.*}"
*.tex)
file=$(readlink -f "$1")
dir=$(dirname "$file")
base="${file%.*}"
base=${base#"$dir/"}
if [ -f "$dir/indent.log" ]; then rm "$dir/indent.log"; fi
find "$dir" -maxdepth 1 -type f -regextype gnu-awk -regex "^$base\\.(4tc|xref|tmp|pyc|pyo|fls|vrb|fdb_latexmk|bak|swp|log|synctex\\(busy\\)|lof|lot|maf|idx|mtc|mtc0|nav|out|snm|toc|loa|bcf|run\\.xml|synctex\\.gz|blg|bbl|glg|glo|gls|glsdefs|ilg|ist|acn|acr|alg|toc)" -delete ;
find "$dir" -maxdepth 1 -type f -regextype gnu-awk -regex ".*\\.aux" -delete ;;
*) printf "Give .tex file as argument.\\n" ;;
find "$dir" -maxdepth 1 -type f -regextype gnu-awk -regex ".*$base\\.(4tc|xref|tmp|pyc|pyo|fls|vrb|fdb_latexmk|bak|swp|log|synctex\\(busy\\)|lof|lot|maf|idx|mtc|mtc0|nav|out|snm|toc|loa|bcf|run\\.xml|synctex\\.gz|blg|bbl|glg|glo|gls|glsdefs|ilg|ist|acn|acr|alg|toc|aux)$" -delete;;
*) printf "Give .tex file as argument.\\n" ;;
esac

View File

@@ -1,14 +1,23 @@
#!/bin/sh
window=$(xdotool getwindowfocus)
audio_1=${CAPTURE_INPUT_AUDIO:-easyeffects_sink.monitor}
audio_2=${CAPTURE_OUTPUT_AUDIO:-easyeffects_source}
output=${CAPTURE_DIR:-$HOME/downloads}
device=${CAPTURE_DEVICE:-cpu}
fps=60
audio_1="easyeffects_sink.monitor"
audio_2="easyeffects_source"
format="mp4"
v_codec="h264"
v_codec="hevc"
# v_codec="h264"
a_codec="opus"
lenght=20
output="$HOME/downloads"
gpu-screen-recorder -w $window -f $fps -a $audio_1 -a $audio_2 -c $format -k $v_codec -ac $a_codec -r $lenght -o $output &
if [ $DISPLAY_SERVER = "wayland" ]; then
window="screen"
elif [ $DISPLAY_SERVER = "xorg" ]; then
window=$(xdotool getwindowfocus)
fi
gpu-screen-recorder -encoder $device -w $window -f $fps -a $audio_1 -a $audio_2 -c $format -k $v_codec -ac $a_codec -r $lenght -o $output &
notify-send -u low 'Screen record' 'Replay started'

View File

@@ -1,13 +1,22 @@
#!/bin/sh
window=$(xdotool getwindowfocus)
fps=30
audio_1="$(pactl get-default-sink).monitor"
audio_2="$(pactl get-default-source)"
format="mp4"
v_codec="h264"
a_codec="opus"
output="$HOME/downloads/recording-$(date '+%Y-%m-%d_%H-%M-%S').$format"
audio_1=${CAPTURE_INPUT_AUDIO:-easyeffects_sink.monitor}
audio_2=${CAPTURE_OUTPUT_AUDIO:-easyeffects_source}
output=${CAPTURE_DIR:-$HOME/downloads}
device=${CAPTURE_DEVICE:-cpu}
gpu-screen-recorder -w $window -c $format -k $v_codec -ac $a_codec -f $fps -a $audio_1 -a $audio_2 -o $output &
fps=60
format="mp4"
v_codec="hevc"
# v_codec="h264"
a_codec="aac"
output="$output/recording-$(date '+%Y-%m-%d_%H-%M-%S').$format"
if [ $DISPLAY_SERVER = "wayland" ]; then
window="screen"
elif [ $DISPLAY_SERVER = "xorg" ]; then
window=$(xdotool getwindowfocus)
fi
gpu-screen-recorder -encoder $device -w $window -c $format -k $v_codec -ac $a_codec -f $fps -o $output -a $audio_1 -a $audio_2 &
notify-send -u low 'Screen record' 'Recording started'

View File

@@ -12,8 +12,8 @@ total=$(echo $acpi | sed 's/.*:\ //')
status="$(echo $total | cut -d',' -f1)"
capacity="$(echo $total | cut -d',' -f2 | sed 's/%//')"
if [ "$status" = "Discharging" ] && [ $capacity -le 15 ] ; then
notify-send -u critical "Battery" "Below 15%"
if [ "$status" = "Discharging" ] && [ $capacity -le 20 ] ; then
notify-send -u critical "Battery" "Low capacity: $capacity%"
fi
if [ $capacity -gt 40 ]

View File

@@ -3,7 +3,8 @@
# Status bar module for disk space
# $1 should be drive mountpoint
disk="/home"
disk=${STATUSBAR_DISK:-/home}
[ ! -z "$1" ] && disk="$1"
icon="$disk"

View File

@@ -2,7 +2,7 @@
wifipercent=" 0"
[ "$(cat /sys/class/net/w*/operstate)" = 'down' ] && wifiicon="^c#ff0000^ " && wifistatus="down"
[ "$(cat /sys/class/net/w*/operstate)" = 'down' ] && wifiicon="^c#ff0000^ ^d^ " && wifistatus="down"
[ ! -n "${wifiicon+var}" ] && wifistatus="up" && wifipercent=$(grep "^\s*w" /proc/net/wireless | awk '{ print int($3 * 100 / 70) }')
@@ -21,5 +21,6 @@ then
fi
fi
[ -f /sys/class/net/e*/operstate ] && lanicon=$(cat /sys/class/net/e*/operstate | sed "s/down/^b#282828^^c#ff0000^  /;s/up/^b#282828^^c#dfdfdf^ 󰈀 /") || lanicon="^b#282828^^c#ff0000^  "
echo "$(cat /sys/class/net/e*/operstate | sed "s/down/^b#282828^^c#ff0000^  /;s/up/^b#282828^^c#dfdfdf^ 󰈀 /")" "$wifiicon"
echo "$lanicon" "$wifiicon"

View File

@@ -1,7 +1,7 @@
#!/bin/sh
icon="^b#282828^^c#dfdfdf^  ^d^ "
total=$(free -h | awk '/^Mem:/ {print $3/$2}')
total=$(free --mebi | awk '/^Mem:/ {print $3/$2}')
percent=$(printf %3s $(printf %-4s $total | tr ' ' '0' | cut -c1-4 | sed -e 's/\.//g' | sed -e 's/^0//g') | tr ' ' ' ')
if [ $percent -gt 75 ]

View File

@@ -20,5 +20,11 @@ else
mic="^c#dfdfdf^  "
fi
if [ -f ~/.local/state/dnd_mode.lock ]; then
notifications="^c#ff0000^  "
else
notifications="^c#dfdfdf^  "
fi
vol=$(printf %3s $vol | tr ' ' ' ')
printf "^b#282828^%s%s^d^" "$mic" "$vol_info"
printf "^b#282828^%s%s%s^d^" "$mic" "$vol_info" "$notifications"

View File

@@ -2,38 +2,100 @@
# A general audio interface for LARBS.
# Based on a script by lukesmithxyz, checkout github.com/lukesmithxyz/voidrice
# Heavily extended and updated to a pipewire system
device=${LOOPBACK_DEVICE:-Easy Effects Source}
name=$(wpctl status | sed -n '/Sources/,$p' | sed -n '/Filter/q;p' | grep "$device" | sed -e "s/*/\ /g")
id=$( echo $name | cut -d '.' -f 1 | cut -c 5-)
node=$(wpctl inspect $id | grep node.name | cut -d '=' -f 2)
[ -z "$2" ] && num="5" || num="$2"
case "$1" in
up) wpctl set-volume @DEFAULT_AUDIO_SINK@ "$num"%+ ;;
down) wpctl set-volume @DEFAULT_AUDIO_SINK@ "$num"%- ;;
deaf) wpctl set-mute @DEFAULT_SINK@ 1;;
undeaf) wpctl set-mute @DEFAULT_SINK@ 0;;
mute) wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 1;;
unmute) wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 0;;
previous) playerctl previous;;
playpause) playerctl play-pause;;
next) playerctl next;;
shuffle) playerctl shuffle toggle;;
loop) playerctl loop none;;
*) cat << EOF
up) wpctl set-volume @DEFAULT_AUDIO_SINK@ "$num"%+
pkill -RTMIN+4 $STATUSBAR ;;
down) wpctl set-volume @DEFAULT_AUDIO_SINK@ "$num"%-
pkill -RTMIN+4 $STATUSBAR ;;
deaf) wpctl set-mute @DEFAULT_SINK@ 1
pkill -RTMIN+4 $STATUSBAR ;;
undeaf) wpctl set-mute @DEFAULT_SINK@ 0
pkill -RTMIN+4 $STATUSBAR ;;
mute) wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 1
pkill -RTMIN+4 $STATUSBAR ;;
unmute) wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 0
pkill -RTMIN+4 $STATUSBAR ;;
deaf_toggle)
if amixer get Master | tail -2 | grep -q '\[on\]'; then
notify-send -u low 'sxhkd' 'Sound muted\nMicrophone muted'
lmc mute
lmc deaf
else
lmc mute
lmc undeaf
paplay ~/.local/bin/etc/sxhkd/audio/sound_resumed.wav
fi ;;
mute_toggle)
echo $(amixer get Capture)
if amixer get Capture | tail -2 | grep -q '\[on\]'; then
lmc mute
lmc undeaf
paplay ~/.local/bin/etc/sxhkd/audio/mic_muted.wav
else
lmc unmute
lmc undeaf
paplay ~/.local/bin/etc/sxhkd/audio/mic_activated.wav
fi ;;
previous) playerctl previous
sleep 1
pkill -RTMIN+9 $STATUSBAR ;;
playpause) playerctl play-pause
sleep 1
pkill -RTMIN+9 $STATUSBAR ;;
next) playerctl next
sleep 1
pkill -RTMIN+9 $STATUSBAR ;;
shuffle) playerctl shuffle toggle
sleep 1
pkill -RTMIN+9 $STATUSBAR ;;
loop) playerctl loop none
sleep 1
pkill -RTMIN+9 $STATUSBAR ;;
tap) wpctl set-volume $id 1.0
touch ~/.local/state/loopback.lock
pw-loopback -C $node &
notify-send -u low 'sxhkd' "Started loopback of $device" ;;
untap) killall pw-loopback
rm ~/.local/state/loopback.lock
notify-send -u low 'sxhkd' "Stopped all loopbacks" ;;
tap_toggle)
if [ -f ~/.local/state/loopback.lock ]; then
lmc untap
else
lmc tap
fi ;;
*) cat << EOF
lmc: cli music interface for pulse for those with divine intellect too
grand to remember the pamixer commands.
Allowed options:
up NUM Increase volume (5% default)
down NUM Decrease volume (5% default)
mute mute microphone
unmute unmute microphone
deaf deaf sound
undeaf undeaf sound
previous play previous song in player
playpause toggle play or pause in player
next play next song in player
mute Mute microphone
unmute Unmute microphone
mute_toggle Toggle between mute and unmute
deaf Deaf sound
undeaf Undeaf sound
deaf_toggle Toggle between deaf and undeaf
playpause Toggle play or pause in player
previous Play previous song in player
next Play next song in player
shuffle Toggle the shuffle mode
loop Toggle the loop mode
tap Start loopback for source device
untap Stop all active source loopbacks
tap_toggle Start or stop loopback depending if it is already running
all else Print this message
EOF
esac
pkill -RTMIN+4 $STATUSBAR
sleep 1 && pkill -RTMIN+9 $STATUSBAR

View File

@@ -1,10 +0,0 @@
#!/bin/sh
if amixer get Capture | tail -2 | grep -q '\[on\]'; then
lmc mute
lmc undeaf
paplay ~/.local/bin/etc/sxhkd/audio/mic_muted.wav
else
lmc unmute
lmc undeaf
paplay ~/.local/bin/etc/sxhkd/audio/mic_activated.wav
fi

Some files were not shown because too many files have changed in this diff Show More