Commit 3056297
Changed files (3)
modules
desktop
users
hpcesia
modules/desktop/app/mpv.nix
@@ -0,0 +1,89 @@
+{den, ...}: {
+ den.aspects.desktop.app.mpv = {
+ cacheHome = {config, ...}: {
+ directories = [
+ "${config.xdg.stateHome}/mpv"
+ ];
+ };
+
+ homeManager = {pkgs, ...}: {
+ programs.mpv = {
+ enable = true;
+ defaultProfiles = ["gpu-hq"];
+ scripts = with pkgs.mpvScripts; [
+ mpris
+ uosc
+ thumbfast
+ autoload
+ reload
+ mpv-playlistmanager
+ ];
+ config = {
+ vo = "gpu-next";
+ hwdec = "auto-copy";
+ scale = "ewa_lanczossharp";
+ # --- 动态范围与色彩管理 --- #
+ target-colorspace-hint = "auto";
+ tone-mapping = "hable";
+ dither = "fruit";
+ dither-depth = "auto";
+ # --- 音频质量配置 --- #
+ ao = "pipewire";
+ audio-resample-filter-size = 64;
+ audio-resample-phase-shift = 10;
+ # --- 字幕配置 --- #
+ sub-auto = "fuzzy";
+ sub-bold = "yes";
+ sub-outline-size = 2.25;
+ sub-outline-color = "#111111";
+ sub-color = "#FEFEFE";
+ sub-font-size = "36";
+ sub-use-margins = "yes";
+ sub-ass-override = "force";
+ # --- 用户体验 --- #
+ save-position-on-quit = true;
+ keep-open = "yes";
+ osd-bar = "no"; # use uosc
+ # 音量控制
+ volume = 80;
+ volume-max = 120;
+ # OSD 显示
+ osd-duration = 2500;
+ osd-font-size = 32;
+ # 截图设置
+ screenshot-format = "png";
+ screenshot-dir = "$XDG_PICTURES_DIR/mpv";
+ screenshot-template = "%F-%P";
+ };
+
+ scriptOpts.uosc = {
+ languages = "slang,zh-hans";
+ };
+ };
+
+ xdg.mimeApps.defaultApplications = {
+ "audio/*" = ["mpv.desktop"];
+ "video/*" = ["mpv.desktop"];
+ };
+ };
+ };
+
+ den.aspects.desktop.app.mpv.themes = {
+ catppuccin = {
+ homeManager = {pkgs, ...}: let
+ catppuccin-mpv = pkgs.fetchFromGitHub {
+ owner = "catppuccin";
+ repo = "mpv";
+ rev = "08e90daf511eee2c10c98f0031b51bb9de240d60";
+ hash = "sha256-oUheJNWk2R6gNEmkK8H6PWX0iofx2KMGDoFWtnr420A=";
+ };
+ in {
+ programs.mpv = {
+ config = {
+ include = "${catppuccin-mpv}/mocha/mauve.conf";
+ };
+ };
+ };
+ };
+ };
+}
modules/desktop/app/obs-studio.nix
@@ -0,0 +1,37 @@
+{den, ...}: {
+ den.aspects.desktop.app.obs-studio = {
+ cacheHome = {config, ...}: {
+ directories = [
+ "${config.xdg.stateHome}/obs-studio"
+ ];
+ };
+
+ homeManager = {pkgs, ...}: {
+ home.packages = with pkgs; [
+ obs-studio
+ ];
+
+ xdg.configFile."obs-studio/plugins".source = pkgs.symlinkJoin {
+ name = "obs-studio-plugins";
+ paths = with pkgs.obs-studio-plugins; [
+ input-overlay
+ ];
+ };
+ };
+ };
+
+ den.aspects.desktop.app.obs-studio.themes = {
+ catppuccin = {
+ homeManager = {pkgs, ...}: let
+ catppuccin-obs = pkgs.fetchFromGitHub {
+ owner = "catppuccin";
+ repo = "obs";
+ rev = "054a297d303a5bac4f1652a13b17d78a13201c0e";
+ hash = "sha256-zFg7dgxLIK3K1KpLdEgphH2JpdMwVTovr+oKiAqdLEE=";
+ };
+ in {
+ xdg.configFile."obs-studio/themes".source = "${catppuccin-obs}/themes";
+ };
+ };
+ };
+}
modules/users/hpcesia/default.nix
@@ -44,6 +44,9 @@
desktop.input-method.fcitx5
desktop.kdeconnect
desktop.terminal.foot
+
+ desktop.app.mpv
+ desktop.app.obs-studio
]))
++ (den.lib.policy.when
({host, ...}: host.hasAspect den.aspects.roles.game)