home: neomutt->alot; mpv: add libaribcaption; misc fixes

This commit is contained in:
chayleaf 2023-11-08 11:47:14 +07:00
parent 5bfcdf6e65
commit 7f829af357
Signed by: chayleaf
GPG key ID: 78171AD46227E68E
7 changed files with 108 additions and 12 deletions

View file

@ -83,11 +83,6 @@
}; };
}; };
}; };
neomutt = {
enable = true;
sidebar.enable = true;
vimKeys = true;
};
home-manager.enable = true; home-manager.enable = true;
# i only use this as a login shell # i only use this as a login shell
bash = { bash = {
@ -160,7 +155,33 @@
# (because I use nix plugins and plugins are nix version-specific) # (because I use nix plugins and plugins are nix version-specific)
package = pkgs.nix-index-unwrapped; package = pkgs.nix-index-unwrapped;
}; };
#neomutt = {
# enable = true;
# sidebar.enable = true;
# vimKeys = true;
#};
alot = {
enable = true;
settings = {
handle_mouse = true;
initial_command = "search tag:inbox AND NOT tag:killed";
prefer_plaintext = true;
}; };
};
msmtp.enable = true;
notmuch = {
enable = true;
hooks.preNew = ''
${config.services.mbsync.package}/bin/mbsync --all || ${pkgs.coreutils}/bin/true
'';
};
mbsync.enable = true;
};
#services.mbsync.enable = true;
# TODO: see https://github.com/pazz/alot/issues/1632
home.file.".mailcap".text = ''
text/html; ${pkgs.w3m}/bin/w3m -dump -o document_charset=%{charset} -o display_link_number=1 '%s'; nametemplate=%s.html; copiousoutput
'';
systemd.user.timers.nix-index = { systemd.user.timers.nix-index = {
Install.WantedBy = [ "timers.target" ]; Install.WantedBy = [ "timers.target" ];

View file

@ -178,10 +178,17 @@
input-default-bindings = false; input-default-bindings = false;
}; };
# profiles = { }; # profiles = { };
package = pkgs.wrapMpv (pkgs.mpv-unwrapped.override { package = pkgs.wrapMpv ((pkgs.mpv-unwrapped.override {
# webp support # webp support
ffmpeg_5 = pkgs.ffmpeg_5-full; ffmpeg_5 = pkgs.ffmpeg-custom;
}) { }).overrideAttrs (old: {
patches = old.patches or [] ++ [
(pkgs.fetchpatch {
url = "https://github.com/mpv-player/mpv/pull/11648.patch";
hash = "sha256-rp5VxVD74dY3w5rKct1BwFbruxpHsGk8zwtkkhdJovM=";
})
];
})) {
scripts = with pkgs.mpvScripts; [ scripts = with pkgs.mpvScripts; [
thumbnail thumbnail
mpris mpris

View file

@ -105,7 +105,7 @@
BufReadPre = DEFUN (SET vim.o.foldmethod "syntax"); BufReadPre = DEFUN (SET vim.o.foldmethod "syntax");
BufEnter = { buf, ... }: BufEnter = { buf, ... }:
LET (vim.filetype.match { inherit buf; }) (filetype: [ LET (vim.filetype.match { inherit buf; }) (filetype: [
(IF (APPLY OR (map (EQ filetype) [ "gitcommit" "markdown" ])) ( (IF (APPLY OR (map (EQ filetype) [ "gitcommit" "markdown" "mail" ])) (
LET vim.o.colorcolumn (old_colorcolumn: [ LET vim.o.colorcolumn (old_colorcolumn: [
(SET vim.o.colorcolumn "73") (SET vim.o.colorcolumn "73")
(vim.api.nvim_create_autocmd "BufLeave" { (vim.api.nvim_create_autocmd "BufLeave" {
@ -118,7 +118,7 @@
}) })
]) ])
)) ))
(IF (EQ filetype "markdown") ( (IF (APPLY OR (map (EQ filetype) [ "markdown" "mail" ])) (
(SET (IDX vim.bo buf).textwidth 72) (SET (IDX vim.bo buf).textwidth 72)
)) ))
]); ]);

View file

@ -67,8 +67,33 @@ in
/*ghidra = pkgs.ghidra.overrideAttrs (old: { /*ghidra = pkgs.ghidra.overrideAttrs (old: {
patches = old.patches ++ [ ./ghidra-stdcall.patch ]; patches = old.patches ++ [ ./ghidra-stdcall.patch ];
});*/ });*/
ffmpeg-custom = (pkgs'.ffmpeg_6-full.override {
withCuda = false;
withCudaLLVM = false;
withNvdec = false;
withNvenc = false;
}).overrideAttrs (old: {
version = "unstable-20231031";
src = pkgs'.fetchgit {
url = "https://git.ffmpeg.org/ffmpeg.git";
rev = "4e5f3e6b8e1132354eed810dfdadf87f45c5de27";
hash = "sha256-fiWkU9fK8qPmxl2MOADKdlFf6XjHGKFhi8uaWltphCE=";
};
patches = [ ];
postPatch = ''
${old.postPatch or ""}
substituteInPlace libavutil/hwcontext_vulkan.c \
--replace FF_VK_KHR_VIDEO_DECODE_QUEUE FF_VK_EXT_VIDEO_DECODE_QUEUE \
--replace FF_VK_KHR_VIDEO_DECODE_H264 FF_VK_EXT_VIDEO_DECODE_H264 \
--replace FF_VK_KHR_VIDEO_DECODE_H265 FF_VK_EXT_VIDEO_DECODE_H265 \
--replace FF_VK_KHR_VIDEO_DECODE_AV1 FF_VK_EXT_VIDEO_DECODE_AV1
'';
buildInputs = old.buildInputs ++ [ pkgs'.libaribcaption ];
configureFlags = old.configureFlags ++ [ "--enable-libaribcaption" ];
});
gimp = callPackage ./gimp { inherit (pkgs) gimp; }; gimp = callPackage ./gimp { inherit (pkgs) gimp; };
home-daemon = callPackage ./home-daemon { }; home-daemon = callPackage ./home-daemon { };
libaribcaption = callPackage ./libaribcaption { };
# pin version # pin version
looking-glass-client = pkgs.looking-glass-client.overrideAttrs (old: { looking-glass-client = pkgs.looking-glass-client.overrideAttrs (old: {
version = "B6"; version = "B6";

View file

@ -0,0 +1,33 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, fontconfig
, freetype
}:
stdenv.mkDerivation rec {
pname = "libaribcaption";
version = "1.1.1";
src = fetchFromGitHub {
owner = "xqq";
repo = "libaribcaption";
rev = "v${version}";
hash = "sha256-x6l0ZrTktSsqfDLVRXpQtUOruhfc8RF3yT991UVZiKA=";
};
nativeBuildInputs = [ cmake ];
cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
buildInputs = lib.optionals (!stdenv.isDarwin) [ fontconfig freetype ];
meta = with lib; {
description = "Portable ARIB STD-B24 Caption Decoder/Renderer";
homepage = "https://github.com/xqq/libaribcaption";
license = licenses.mit;
maintainers = with maintainers; [ chayleaf ];
};
}

View file

@ -905,6 +905,9 @@ in {
extraOptions = "-i ${netAddresses.lan4} -p 6969 -P 6969 -p 80"; extraOptions = "-i ${netAddresses.lan4} -p 6969 -P 6969 -p 80";
}; };
# I only have 2GB RAM, so Unbound is killed during peak system load without this option
zramSwap.enable = true;
impermanence.directories = [ impermanence.directories = [
# for wireguard key # for wireguard key
{ directory = /secrets; mode = "0000"; } { directory = /secrets; mode = "0000"; }

View file

@ -16,7 +16,9 @@ in {
services.postgresql.extraPlugins = with config.services.postgresql.package.pkgs; [ tsja ]; services.postgresql.extraPlugins = with config.services.postgresql.package.pkgs; [ tsja ];
services.akkoma = { services.akkoma = let
inherit ((pkgs.formats.elixirConf { }).lib) mkRaw;
in {
enable = true; enable = true;
dist.extraFlags = [ dist.extraFlags = [
"+sbwt" "none" "+sbwt" "none"
@ -48,11 +50,15 @@ in {
account_approval_required = true; account_approval_required = true;
}; };
config.":pleroma"."Pleroma.Repo" = { config.":pleroma"."Pleroma.Repo" = {
adapter = (pkgs.formats.elixirConf { }).lib.mkRaw "Ecto.Adapters.Postgres"; adapter = mkRaw "Ecto.Adapters.Postgres";
username = "akkoma"; username = "akkoma";
password._secret = "/secrets/akkoma/postgres_password"; password._secret = "/secrets/akkoma/postgres_password";
database = "akkoma"; database = "akkoma";
hostname = "localhost"; hostname = "localhost";
prepare = mkRaw ":named";
parameters.plan_cache_mode = "force_custom_plan";
timeout = 30000;
connect_timeout = 10000;
}; };
config.":web_push_encryption".":vapid_details" = { config.":web_push_encryption".":vapid_details" = {
subject = "mailto:webmaster-akkoma@${cfg.domainName}"; subject = "mailto:webmaster-akkoma@${cfg.domainName}";
@ -60,6 +66,7 @@ in {
private_key._secret = "/secrets/akkoma/push_private_key"; private_key._secret = "/secrets/akkoma/push_private_key";
}; };
config.":joken".":default_signer"._secret = "/secrets/akkoma/joken_signer"; config.":joken".":default_signer"._secret = "/secrets/akkoma/joken_signer";
# config.":logger".":ex_syslogger".level = ":debug";
nginx = { nginx = {
quic = true; quic = true;
enableACME = true; enableACME = true;