2021-11-30 01:03:05 +00:00
|
|
|
# Enables all of my usual setup for desktop-oriented stuff.
|
|
|
|
{ config, options, lib, pkgs, ... }:
|
|
|
|
|
2022-01-09 05:38:59 +00:00
|
|
|
let cfg = config.profiles.desktop;
|
2021-12-11 05:16:45 +00:00
|
|
|
in {
|
2022-01-09 05:38:59 +00:00
|
|
|
options.profiles.desktop = {
|
2021-12-11 05:16:45 +00:00
|
|
|
enable = lib.mkEnableOption "installations of desktop apps";
|
|
|
|
graphics.enable =
|
|
|
|
lib.mkEnableOption "installations of graphics-related apps";
|
|
|
|
audio.enable = lib.mkEnableOption "installations of audio-related apps";
|
2023-03-08 15:46:06 +00:00
|
|
|
video.enable = lib.mkEnableOption "installations of video-related apps";
|
|
|
|
documents.enable =
|
|
|
|
lib.mkEnableOption "installations for document-related apps";
|
2021-11-30 01:03:05 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
config = lib.mkIf cfg.enable (lib.mkMerge [
|
|
|
|
(lib.mkIf cfg.graphics.enable {
|
|
|
|
home.packages = with pkgs; [
|
|
|
|
aseprite # Pixel art wannabe tool.
|
|
|
|
blender # 3D modelling wannabe tool.
|
2022-08-13 00:31:09 +00:00
|
|
|
emulsion-palette # Manage your color palettes.
|
2023-02-25 02:01:50 +00:00
|
|
|
eyedropper # Gotta keep your monitor moist.
|
2023-09-21 03:38:00 +00:00
|
|
|
inkscape-with-extensions # Illustration wannabe tool.
|
|
|
|
gimp-with-plugins # Photo editing wannabe tool.
|
2021-11-30 01:03:05 +00:00
|
|
|
krita # Digital art wannabe tool.
|
2021-12-06 07:27:51 +00:00
|
|
|
|
2023-03-10 00:27:33 +00:00
|
|
|
ffmpeg-full # Ah yes, everyman's multimedia swiss army knife.
|
2021-12-06 07:27:51 +00:00
|
|
|
imagemagick # Ah yes, everyman's image manipulation tool.
|
|
|
|
gmic # Don't let the gimmicks fool you, it's a magical image framework.
|
2021-11-30 01:03:05 +00:00
|
|
|
];
|
|
|
|
})
|
|
|
|
|
|
|
|
(lib.mkIf cfg.audio.enable {
|
|
|
|
home.packages = with pkgs; [
|
2022-12-09 01:19:23 +00:00
|
|
|
audacity # EGADS!!!
|
2022-10-13 10:32:47 +00:00
|
|
|
musescore # You won't find muses to score, only music: a common misconception.
|
2022-01-12 02:46:25 +00:00
|
|
|
zrythm # The freer FL Studio (if you're sailing by the high seven seas).
|
2022-10-13 10:32:47 +00:00
|
|
|
supercollider # Not to be confused with the other Super Collider.
|
|
|
|
sonic-pi # The only pie you'll get from this is worms which I heard is addicting.
|
2021-11-30 01:03:05 +00:00
|
|
|
|
2022-01-12 02:46:25 +00:00
|
|
|
# !!! Be sure to install Wine for this one.
|
2022-09-02 00:51:04 +00:00
|
|
|
yabridge # Building bridges to Windows and Linux audio tools.
|
|
|
|
yabridgectl # The bridge controller.
|
2022-01-12 02:46:25 +00:00
|
|
|
|
2023-03-10 00:27:33 +00:00
|
|
|
ffmpeg-full # Ah yes, everyman's multimedia swiss army knife.
|
2022-01-12 02:46:25 +00:00
|
|
|
helvum # The Pipewire Patchbay.
|
|
|
|
carla # The Carla Carla.
|
2021-11-30 01:03:05 +00:00
|
|
|
];
|
|
|
|
|
2022-02-02 04:25:03 +00:00
|
|
|
# This is assuming you're using Pipewire, yes?
|
2021-11-30 01:03:05 +00:00
|
|
|
services.easyeffects.enable = true;
|
2021-12-08 04:18:37 +00:00
|
|
|
services.fluidsynth = {
|
|
|
|
enable = true;
|
2021-12-11 05:16:45 +00:00
|
|
|
soundService = "pipewire-pulse";
|
2021-12-08 04:18:37 +00:00
|
|
|
};
|
2021-11-30 01:03:05 +00:00
|
|
|
})
|
2021-12-13 07:20:34 +00:00
|
|
|
|
2023-03-08 15:46:06 +00:00
|
|
|
(lib.mkIf cfg.video.enable {
|
2021-12-13 07:20:34 +00:00
|
|
|
home.packages = with pkgs; [
|
2023-03-10 00:27:33 +00:00
|
|
|
ffmpeg-full # Ah yes, everyman's multimedia swiss army knife.
|
2023-09-23 10:21:42 +00:00
|
|
|
kdenlive # YOU! Edit this video and live in a den, 'k?
|
2021-12-13 07:20:34 +00:00
|
|
|
];
|
2022-10-13 01:05:35 +00:00
|
|
|
|
2023-03-08 15:46:06 +00:00
|
|
|
# The one-stop shop for your broadcasting and recording needs. Not to be
|
|
|
|
# confused with the build service.
|
|
|
|
programs.obs-studio = {
|
|
|
|
enable = true;
|
|
|
|
plugins = with pkgs.obs-studio-plugins; [
|
|
|
|
droidcam-obs
|
|
|
|
obs-multi-rtmp
|
|
|
|
obs-gstreamer
|
|
|
|
obs-pipewire-audio-capture
|
2023-07-14 12:03:44 +00:00
|
|
|
obs-source-switcher
|
|
|
|
obs-vkcapture
|
2023-03-08 15:46:06 +00:00
|
|
|
wlrobs
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2022-10-18 11:52:18 +00:00
|
|
|
# The modern VLC if you have little sense of design.
|
|
|
|
programs.mpv = {
|
|
|
|
enable = true;
|
|
|
|
config = {
|
|
|
|
ytdl-format = "(webm,mkv,mp4)[height<=?1280]";
|
|
|
|
ordered-chapters = true;
|
|
|
|
ab-loop-count = "inf";
|
|
|
|
chapter-seek-threshold = 15.0;
|
|
|
|
no-osc = true;
|
|
|
|
};
|
|
|
|
|
2022-10-22 08:13:58 +00:00
|
|
|
bindings = {
|
|
|
|
"Alt+h" = "seek -5";
|
|
|
|
"Alt+l" = "seek 5";
|
|
|
|
"Alt+H" = "add chapter -1";
|
|
|
|
"Alt+L" = "add chapter 1";
|
|
|
|
|
|
|
|
"S" = "screenshot each-frame";
|
|
|
|
|
|
|
|
"!" = "show-text \${playlist}";
|
|
|
|
"@" = "show-text \${track-list}";
|
|
|
|
"SHARP" = "show-text \${chapter-list}";
|
|
|
|
|
|
|
|
# Ehhh, they're more getting in the way than just existing...
|
|
|
|
"f" = "ignore";
|
|
|
|
"T" = "ignore";
|
|
|
|
"Ctrl+s" = "ignore";
|
|
|
|
"Alt+s" = "ignore";
|
|
|
|
};
|
|
|
|
|
2022-10-18 11:52:18 +00:00
|
|
|
profiles = {
|
|
|
|
cjk = rec {
|
2022-11-26 06:13:59 +00:00
|
|
|
profile-desc = "CJK prioritization";
|
2022-10-18 11:52:18 +00:00
|
|
|
vlang = "zho,zh,kor,ko,jpn,ja,eng,en";
|
|
|
|
alang = vlang;
|
|
|
|
slang = with lib; concatStringsSep "," (reverseList (splitString "," vlang));
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
scripts = with pkgs.mpvScripts; [
|
|
|
|
mpris
|
|
|
|
mpvacious
|
|
|
|
thumbnail
|
2023-07-17 12:17:48 +00:00
|
|
|
quality-menu
|
2022-10-18 11:52:18 +00:00
|
|
|
];
|
|
|
|
};
|
2023-09-09 11:34:10 +00:00
|
|
|
|
|
|
|
xdg.mimeApps.defaultApplications = {
|
|
|
|
"audio/*" = [ "mpv.desktop" ];
|
|
|
|
"video/*" = [ "mpv.desktop" ];
|
|
|
|
};
|
2023-03-08 15:46:06 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
(lib.mkIf cfg.documents.enable {
|
|
|
|
home.packages = with pkgs; [
|
|
|
|
dino # Some modern chat client featuring a dinosaur for what could be considered a dinosaur.
|
|
|
|
foliate # The prettier PDF viewer.
|
|
|
|
thunderbird # Email checks.
|
|
|
|
languagetool # You're personal assistant for proper grammar,
|
|
|
|
vale # Elevate your fanfics to an arguably higher caliber!
|
|
|
|
];
|
2022-10-18 11:52:18 +00:00
|
|
|
|
2023-09-09 11:34:10 +00:00
|
|
|
xdg.mimeApps.defaultApplications = {
|
|
|
|
"application/pdf" = [
|
|
|
|
"sioyek.desktop"
|
|
|
|
"com.github.johnfactotum.Foliate.desktop"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2022-11-06 09:38:51 +00:00
|
|
|
# Some PDF viewer with a penchant for research.
|
2022-10-13 01:05:35 +00:00
|
|
|
programs.sioyek = {
|
|
|
|
enable = true;
|
|
|
|
|
|
|
|
# All of my keybindings based from my Neovim workflow.
|
|
|
|
bindings = {
|
|
|
|
"move_up" = [ "k" "<up>" ];
|
|
|
|
"move_down" = [ "j" "<down>" ];
|
|
|
|
"move_left" = [ "h" "<left>" ];
|
|
|
|
"move_right" = [ "l" "<right>" ];
|
|
|
|
"next_page" = [ "<C-f>" "<S-<down>>" ];
|
|
|
|
"previous_page" = [ "<C-b>" "<S-<up>>" ];
|
|
|
|
"screen_down" = [ "<C-d>" "d" ];
|
|
|
|
"screen_up" = [ "<C-u>" "u" ];
|
|
|
|
"fit_to_page_width_smart" = "<C-S-f>";
|
|
|
|
"copy" = "y";
|
|
|
|
"goto_toc" = [ "t" "g<S-o>" ];
|
|
|
|
"open_prev_doc" = [ "<S-o>" "fbb" ];
|
|
|
|
"open_last_document" = [ "^" "<C-S-6>" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
config = {
|
|
|
|
"search_url_b" = "https://search.brave.com/search?q=";
|
|
|
|
"shift_middle_click_engine" = "b";
|
|
|
|
"ui_font" = "sans-serif";
|
|
|
|
"font_size" = "24";
|
|
|
|
};
|
|
|
|
};
|
2021-12-13 07:20:34 +00:00
|
|
|
})
|
2021-11-30 01:03:05 +00:00
|
|
|
]);
|
|
|
|
}
|