mpv config
This commit is contained in:
parent
159542369d
commit
e11b6598df
|
@ -28,14 +28,165 @@
|
||||||
# TODO sort out this mess with colors
|
# TODO sort out this mess with colors
|
||||||
programs.mpv = {
|
programs.mpv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultProfiles = [ "main" ];
|
defaultProfiles = [ "gpu-hq" ];
|
||||||
profiles.main = {
|
bindings = rec {
|
||||||
vo = "vdpau";
|
MBTN_LEFT_DBL = "cycle fullscreen";
|
||||||
|
MBTN_RIGHT = "cycle pause";
|
||||||
|
MBTN_BACK = "playlist-prev";
|
||||||
|
MBTN_FORWARD = "playlist-next";
|
||||||
|
WHEEL_DOWN = "seek -5";
|
||||||
|
WHEEL_UP = "seek 5";
|
||||||
|
WHEEL_LEFT = "seek -60";
|
||||||
|
WHEEL_RIGHT = "seek 60";
|
||||||
|
|
||||||
|
h = "no-osd seek -5 exact";
|
||||||
|
LEFT = h;
|
||||||
|
l = "no-osd seek 5 exact";
|
||||||
|
RIGHT = l;
|
||||||
|
j = "seek -30";
|
||||||
|
DOWN = j;
|
||||||
|
k = "seek 30";
|
||||||
|
UP = k;
|
||||||
|
|
||||||
|
H = "no-osd seek -1 exact";
|
||||||
|
"Shift+LEFT" = "no-osd seek -1 exact";
|
||||||
|
L = "no-osd seek 1 exact";
|
||||||
|
"Shift+RIGHT" = "no-osd seek 1 exact";
|
||||||
|
J = "seek -300";
|
||||||
|
"Shift+DOWN" = "seek -300";
|
||||||
|
K = "seek 300";
|
||||||
|
"Shift+UP" = "seek 300";
|
||||||
|
|
||||||
|
"Ctrl+LEFT" = "no-osd sub-seek -1";
|
||||||
|
"Ctrl+h" = "no-osd sub-seek -1";
|
||||||
|
"Ctrl+RIGHT" = "no-osd sub-seek 1";
|
||||||
|
"Ctrl+l" = "no-osd sub-seek 1";
|
||||||
|
"Ctrl+DOWN" = "add chapter -1";
|
||||||
|
"Ctrl+j" = "add chapter -1";
|
||||||
|
"Ctrl+UP" = "add chapter 1";
|
||||||
|
"Ctrl+k" = "add chapter 1";
|
||||||
|
|
||||||
|
"Alt+LEFT" = "frame-back-step";
|
||||||
|
"Alt+h" = "frame-back-step";
|
||||||
|
"Alt+RIGHT" = "frame-step";
|
||||||
|
"Alt+l" = "frame-step";
|
||||||
|
|
||||||
|
PGUP = "add chapter 1";
|
||||||
|
PGDWN = "add chapter -1";
|
||||||
|
|
||||||
|
u = "revert-seek";
|
||||||
|
|
||||||
|
"Ctrl++" = "add sub-scale 0.1";
|
||||||
|
"Ctrl+-" = "add sub-scale -0.1";
|
||||||
|
"Ctrl+0" = "set sub-scale 0";
|
||||||
|
|
||||||
|
q = "quit";
|
||||||
|
Q = "quit-watch-later";
|
||||||
|
"q {encode}" = "quit 4";
|
||||||
|
p = "cycle pause";
|
||||||
|
SPACE = p;
|
||||||
|
f = "cycle fullscreen";
|
||||||
|
|
||||||
|
n = "playlist-next";
|
||||||
|
N = "playlist-prev";
|
||||||
|
|
||||||
|
o = "show-progress";
|
||||||
|
O = "script-binding stats/display-stats-toggle";
|
||||||
|
"`" = "script-binding console/enable";
|
||||||
|
":" = "script-binding console/enable";
|
||||||
|
|
||||||
|
z = "add sub-delay -0.1";
|
||||||
|
x = "add sub-delay 0.1";
|
||||||
|
Z = "add audio-delay -0.1";
|
||||||
|
X = "add audio-delay 0.1";
|
||||||
|
|
||||||
|
"1" = "add volume -1";
|
||||||
|
"2" = "add volume 1";
|
||||||
|
s = "cycle sub";
|
||||||
|
v = "cycle video";
|
||||||
|
a = "cycle audio";
|
||||||
|
S = ''cycle-values sub-ass-override "force" "no"'';
|
||||||
|
PRINT = "screenshot";
|
||||||
|
c = "add panscan 0.1";
|
||||||
|
C = "add panscan -0.1";
|
||||||
|
PLAY = "cycle pause";
|
||||||
|
PAUSE = "cycle pause";
|
||||||
|
PLAYPAUSE = "cycle pause";
|
||||||
|
PLAYONLY = "set pause no";
|
||||||
|
PAUSEONLY = "set pause yes";
|
||||||
|
STOP = "stop";
|
||||||
|
CLOSE_WIN = "quit";
|
||||||
|
"CLOSE_WIN {encode}" = "quit 4";
|
||||||
|
"Ctrl+w" = ''set hwdec "no"'';
|
||||||
|
# T = "script-binding generate-thumbnails";
|
||||||
|
};
|
||||||
|
config = {
|
||||||
|
osc = "no";
|
||||||
|
hwdec = "vaapi";
|
||||||
|
vo = "gpu-next,gpu,dmabuf-wayland,wlshm,vdpau,xv,x11,sdl,drm,";
|
||||||
alang = "jpn,en,ru";
|
alang = "jpn,en,ru";
|
||||||
slang = "jpn,en,ru";
|
slang = "jpn,en,ru";
|
||||||
vlang = "jpn,en,ru";
|
vlang = "jpn,en,ru";
|
||||||
|
watch-later-directory = "${config.xdg.stateHome}/mpv/watch_later";
|
||||||
|
resume-playback-check-mtime = true;
|
||||||
|
# vaapi-device / vulkan-device
|
||||||
|
# screen / vulkan-display-display
|
||||||
|
audio-device = "pipewire";
|
||||||
|
ao = "pipewire,pulse,alsa,jack,";
|
||||||
|
audio-file-auto = "fuzzy";
|
||||||
|
sub-auto = "fuzzy";
|
||||||
|
gpu-context = "waylandvk";
|
||||||
|
wayland-edge-pixels-pointer = 0;
|
||||||
|
wayland-edge-pixels-touch = 0;
|
||||||
|
screenshot-format = "webp";
|
||||||
|
screenshot-webp-lossless = true;
|
||||||
|
screenshot-directory = "${config.home.homeDirectory}/Pictures/Screenshots/mpv";
|
||||||
|
screenshot-sw = true;
|
||||||
|
cache-dir = "${config.xdg.cacheHome}/mpv";
|
||||||
|
input-default-bindings = false;
|
||||||
|
};
|
||||||
|
# profiles = {};
|
||||||
|
package = pkgs.wrapMpv (pkgs.mpv-unwrapped.override {
|
||||||
|
ffmpeg_5 = pkgs.ffmpeg_5-full;
|
||||||
|
}) {
|
||||||
|
scripts =
|
||||||
|
let subserv = (port: secondary:
|
||||||
|
(pkgs.stdenv.mkDerivation {
|
||||||
|
pname = "subserv-mpv-plugin";
|
||||||
|
version = "0.1";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "kaervin";
|
||||||
|
repo = "subserv-mpv-plugin";
|
||||||
|
rev = "08e312f02f3d3608d61944247d39148c34215f75";
|
||||||
|
sha256 = "sha256-CXyp+AAgyocAEbhuMMPVDlAiocozPe8tm/dIUofCRL8=";
|
||||||
|
};
|
||||||
|
buildInputs = with pkgs; [ mpv-unwrapped ];
|
||||||
|
installFlags = [ "SCRIPTS_DIR=$(out)/share/mpv/scripts" ];
|
||||||
|
stripDebugList = [ "share/mpv/scripts" ];
|
||||||
|
passthru.scriptName = "subserv.so";
|
||||||
|
patchPhase = ''
|
||||||
|
sed -i 's%<client.h>%<mpv/client.h>%' subserv.c
|
||||||
|
sed -i 's%printf("Hello%// printf("Hello%' subserv.c
|
||||||
|
sed -i 's%printf("Got event%// printf("Got event%' subserv.c
|
||||||
|
sed -i 's/PORT 8080/PORT ${builtins.toString port}/' subserv.c
|
||||||
|
'' + (if secondary then ''
|
||||||
|
sed -i 's/sub-text/secondary-sub-text/g' subserv.c
|
||||||
|
'' else "");
|
||||||
|
buildPhase = ''
|
||||||
|
gcc -o subserv.so subserv.c -shared -fPIC
|
||||||
|
'';
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/share/mpv/scripts
|
||||||
|
cp subserv.so $out/share/mpv/scripts
|
||||||
|
'';
|
||||||
|
}));
|
||||||
|
in with pkgs.mpvScripts; [
|
||||||
|
thumbnail
|
||||||
|
mpris
|
||||||
|
(subserv 1337 false)
|
||||||
|
(subserv 1338 true)
|
||||||
|
];
|
||||||
};
|
};
|
||||||
scripts = [ ];
|
|
||||||
};
|
};
|
||||||
i18n.inputMethod = let fcitx5-qt = pkgs.libsForQt5.fcitx5-qt; in {
|
i18n.inputMethod = let fcitx5-qt = pkgs.libsForQt5.fcitx5-qt; in {
|
||||||
enabled = "fcitx5";
|
enabled = "fcitx5";
|
||||||
|
@ -131,7 +282,7 @@
|
||||||
keepassxc nheko qbittorrent mumble
|
keepassxc nheko qbittorrent mumble
|
||||||
nextcloud-client gnome.zenity kdeconnect
|
nextcloud-client gnome.zenity kdeconnect
|
||||||
# cli tools
|
# cli tools
|
||||||
imagemagick ffmpeg
|
imagemagick ffmpeg_5-full
|
||||||
# fonts
|
# fonts
|
||||||
noto-fonts noto-fonts-cjk noto-fonts-emoji
|
noto-fonts noto-fonts-cjk noto-fonts-emoji
|
||||||
(nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; })
|
(nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; })
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
{ options, config, pkgs, lib, ... }:
|
{ options, config, pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
modifier = "Mod4";
|
modifier = "Mod4";
|
||||||
|
rofiSway = config.programs.rofi.finalPackage;
|
||||||
|
rofiI3 = pkgs.rofi.override { plugins = config.programs.rofi.plugins; };
|
||||||
barConfig = {
|
barConfig = {
|
||||||
mode = "dock";
|
mode = "dock";
|
||||||
hiddenState = "hide";
|
hiddenState = "hide";
|
||||||
|
@ -169,8 +171,9 @@ in
|
||||||
statusCommand = "${pkgs.i3status}/bin/i3status";
|
statusCommand = "${pkgs.i3status}/bin/i3status";
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
menu = "${pkgs.rofi}/bin/rofi -show drun";
|
menu = "${rofiI3}/bin/rofi -show drun";
|
||||||
keybindings = genKeybindings options.xsession.windowManager.i3 {
|
keybindings = genKeybindings options.xsession.windowManager.i3 {
|
||||||
|
"${modifier}+c" = "exec ${rofiI3}/bin/rofi -show calc -no-show-match -no-sort -no-persist-history";
|
||||||
XF86AudioRaiseVolume = "exec ${pkgs.pamixer}/bin/pamixer --increase 5";
|
XF86AudioRaiseVolume = "exec ${pkgs.pamixer}/bin/pamixer --increase 5";
|
||||||
XF86AudioLowerVolume = "exec ${pkgs.pamixer}/bin/pamixer --decrease 5";
|
XF86AudioLowerVolume = "exec ${pkgs.pamixer}/bin/pamixer --decrease 5";
|
||||||
XF86AudioMute = "exec ${pkgs.pamixer}/bin/pamixer --toggle-mute";
|
XF86AudioMute = "exec ${pkgs.pamixer}/bin/pamixer --toggle-mute";
|
||||||
|
@ -262,6 +265,7 @@ in
|
||||||
"Scroll_Lock"
|
"Scroll_Lock"
|
||||||
"exec ${pkgs.mumble}/bin/mumble rpc stoptalking")
|
"exec ${pkgs.mumble}/bin/mumble rpc stoptalking")
|
||||||
// {
|
// {
|
||||||
|
"${modifier}+c" = "exec ${rofiSway}/bin/rofi -show calc -no-show-match -no-sort -no-persist-history";
|
||||||
"${modifier}+Print" = "exec ${grimshot}/bin/grimshot copy area";
|
"${modifier}+Print" = "exec ${grimshot}/bin/grimshot copy area";
|
||||||
"${modifier}+Mod1+Print" = "exec ${grimshot}/bin/grimshot copy window";
|
"${modifier}+Mod1+Print" = "exec ${grimshot}/bin/grimshot copy window";
|
||||||
"--locked XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer --increase 5";
|
"--locked XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer --increase 5";
|
||||||
|
@ -293,7 +297,7 @@ in
|
||||||
xkb_options = "compose:ralt,grp:win_space_toggle";
|
xkb_options = "compose:ralt,grp:win_space_toggle";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
menu = "${pkgs.rofi-wayland}/bin/rofi -show drun";
|
menu = "${rofiSway}/bin/rofi -show drun";
|
||||||
}; in commonConfig // swayConfig;
|
}; in commonConfig // swayConfig;
|
||||||
extraSessionCommands = ''
|
extraSessionCommands = ''
|
||||||
export SDL_VIDEODRIVER=wayland
|
export SDL_VIDEODRIVER=wayland
|
||||||
|
@ -322,9 +326,14 @@ in
|
||||||
{ timeout = 300;
|
{ timeout = 300;
|
||||||
command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\"";
|
command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\"";
|
||||||
resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\""; }
|
resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\""; }
|
||||||
|
{ timeout = 598;
|
||||||
|
command = "${pkgs.sway}/bin/swaymsg \"output * dpms on\""; }
|
||||||
{ timeout = 600;
|
{ timeout = 600;
|
||||||
command = swaylock-start;
|
command = swaylock-start;
|
||||||
resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\""; }
|
resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\""; }
|
||||||
|
{ timeout = 602;
|
||||||
|
command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\"";
|
||||||
|
resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\""; }
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
programs.swaylock.settings = rec {
|
programs.swaylock.settings = rec {
|
||||||
|
@ -375,7 +384,7 @@ in
|
||||||
] else [];
|
] else [];
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font = "Noto Sans Mono 12";
|
font = "Noto Sans Mono 16";
|
||||||
package = lib.mkIf config.wayland.windowManager.sway.enable pkgs.rofi-wayland;
|
package = lib.mkIf config.wayland.windowManager.sway.enable pkgs.rofi-wayland;
|
||||||
plugins = with pkgs; [
|
plugins = with pkgs; [
|
||||||
rofi-calc
|
rofi-calc
|
||||||
|
@ -417,9 +426,11 @@ in
|
||||||
};
|
};
|
||||||
terminal = config.terminalBin;
|
terminal = config.terminalBin;
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
|
modi = [ "calc" "drun" "run" "ssh" ];
|
||||||
icon-theme = "hicolor";
|
icon-theme = "hicolor";
|
||||||
drun-match-fields = "name,generic,exec,keywords";
|
drun-match-fields = [ "name" "generic" "exec" "keywords" ];
|
||||||
show-icons = true;
|
show-icons = true;
|
||||||
|
matching = "fuzzy";
|
||||||
sort = true;
|
sort = true;
|
||||||
sorting-method = "fzf";
|
sorting-method = "fzf";
|
||||||
steal-focus = true;
|
steal-focus = true;
|
||||||
|
|
|
@ -5,3 +5,4 @@ fetch.url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/downlo
|
||||||
[yomichan]
|
[yomichan]
|
||||||
src.github = "FooSoft/yomichan"
|
src.github = "FooSoft/yomichan"
|
||||||
fetch.url = "https://github.com/FooSoft/yomichan/releases/download/$ver/yomichan-firefox-dev.xpi"
|
fetch.url = "https://github.com/FooSoft/yomichan/releases/download/$ver/yomichan-firefox-dev.xpi"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue