144 lines
4.4 KiB
Nix
Executable File
144 lines
4.4 KiB
Nix
Executable File
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
pkgs-stable,
|
|
...
|
|
}:
|
|
let
|
|
inherit (pkgs) anime4k;
|
|
|
|
# Use writeText instead of writeLua luacheck can't cry about the long lines
|
|
autoAnime4k = pkgs.writeText "auto-anime4k-switcher.lua" ''
|
|
local function get_nearest(x, numbers)
|
|
local min_index = nil
|
|
local min_dist = math.huge
|
|
|
|
for i, n in ipairs(numbers) do
|
|
local d = math.abs(n - x)
|
|
if d < min_dist then
|
|
min_index = i
|
|
min_dist = d
|
|
end
|
|
end
|
|
|
|
return numbers[min_index]
|
|
end
|
|
|
|
-- Fast
|
|
-- local shader_map = {
|
|
-- [1080] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_M.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl",
|
|
-- [720] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_M.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl",
|
|
-- [480] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"
|
|
-- }
|
|
-- HQ
|
|
local shader_map = {
|
|
[1080] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl",
|
|
[720] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl",
|
|
[480] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"
|
|
}
|
|
|
|
local resolutions = { 1080, 720, 480 }
|
|
|
|
mp.register_event("file-loaded", function()
|
|
local height = mp.get_property_number("video-params/h")
|
|
|
|
local shaders = shader_map[height]
|
|
if not shaders then
|
|
height = get_nearest(height, resolutions)
|
|
shaders = shader_map[height]
|
|
end
|
|
|
|
mp.osd_message("Using " .. height .. "p Anime4K shaders")
|
|
mp.commandv("change-list", "glsl-shaders", "set", shaders)
|
|
end)
|
|
'';
|
|
in
|
|
|
|
{
|
|
nixpkgs.config = {
|
|
allowUnfree = true;
|
|
};
|
|
|
|
nixpkgs.overlays = [
|
|
(self: super: {
|
|
|
|
mpv = super.wrapMpv (super.mpv.unwrapped.override { sixelSupport = true; }) {
|
|
scripts = [ self.mpvScripts.mpris ];
|
|
|
|
};
|
|
})
|
|
];
|
|
# Some programs need SUID wrappers, can be configured further or are
|
|
# started in user sessions.
|
|
# programs.mtr.enable = true;
|
|
# programs.gnupg.agent = {
|
|
# enable = true;
|
|
# enableSSHSupport = true;
|
|
# };
|
|
programs.direnv = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
nix-direnv.enable = true;
|
|
silent = true;
|
|
};
|
|
programs.virt-manager.enable = true;
|
|
programs.zsh.enable = true;
|
|
programs.corectrl.enable = true;
|
|
programs.steam = {
|
|
enable = true;
|
|
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
|
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
|
};
|
|
# enable dynamic bin executables
|
|
programs.nix-ld.enable = true;
|
|
programs.nix-ld.libraries = with pkgs; [
|
|
# add libraries here
|
|
libGL
|
|
];
|
|
|
|
|
|
#backlight tool
|
|
programs.light.enable = true;
|
|
|
|
programs.nm-applet.enable = true;
|
|
|
|
# List packages installed in system profile. To search, run:
|
|
# $ nix search wget
|
|
environment.systemPackages = with pkgs; [
|
|
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
|
neovim
|
|
wl-clipboard
|
|
bat
|
|
anime4k
|
|
socat
|
|
eza
|
|
wget
|
|
foot
|
|
spaceship-prompt
|
|
git
|
|
bitwarden
|
|
zip
|
|
xclip
|
|
fd
|
|
fzf
|
|
zotero
|
|
jdk11
|
|
hunspell
|
|
hunspellDicts.en_US
|
|
pavucontrol
|
|
zoxide
|
|
xcp
|
|
polkit_gnome
|
|
unzip
|
|
rocmPackages.rccl
|
|
ffmpeg
|
|
libva-utils
|
|
nixfmt-rfc-style
|
|
nil
|
|
kdePackages.qt6ct
|
|
ripgrep
|
|
xwayland-satellite
|
|
];
|
|
}
|