2022-07-05 14:28:03 +00:00
|
|
|
{ inputs, config, options, lib, pkgs, ... }:
|
2021-11-27 11:21:08 +00:00
|
|
|
|
2022-02-02 04:25:03 +00:00
|
|
|
let
|
|
|
|
yt-dlp-for-audio-config = pkgs.writeText "yt-dlp-for-audio-config" ''
|
|
|
|
# Don't overwrite for cautious individuals.
|
|
|
|
--no-overwrite
|
|
|
|
|
|
|
|
# To make sure all audio-related.
|
|
|
|
--extract-audio
|
|
|
|
--format bestaudio
|
|
|
|
--audio-format opus
|
|
|
|
|
|
|
|
--output '%(track_number,playlist_autonumber)d-%(track,title)s.%(ext)s'
|
|
|
|
--download-archive archive
|
|
|
|
|
|
|
|
# Add all sorts of metadata.
|
|
|
|
--embed-thumbnail
|
|
|
|
--add-metadata
|
|
|
|
'';
|
|
|
|
yt-dlp-for-audio = pkgs.writeScriptBin "yt-dlp-audio" ''
|
|
|
|
${pkgs.yt-dlp}/bin/yt-dlp --config-location "${yt-dlp-for-audio-config}" $@
|
|
|
|
'';
|
2022-07-07 16:30:54 +00:00
|
|
|
getDotfiles = path: "${inputs.dotfiles}/${path}";
|
2022-02-02 04:25:03 +00:00
|
|
|
in {
|
|
|
|
programs.home-manager.enable = true;
|
|
|
|
|
2021-12-08 04:18:37 +00:00
|
|
|
home.packages = with pkgs; [
|
2021-12-11 05:37:27 +00:00
|
|
|
ncmpcpp
|
2022-01-12 02:46:25 +00:00
|
|
|
vscodium-fhs
|
2022-05-15 03:19:33 +00:00
|
|
|
neovim
|
2022-02-02 04:25:03 +00:00
|
|
|
yt-dlp-for-audio
|
2021-12-25 13:56:50 +00:00
|
|
|
];
|
2021-12-08 04:18:37 +00:00
|
|
|
|
2021-11-29 09:56:24 +00:00
|
|
|
fonts.fontconfig.enable = true;
|
|
|
|
|
|
|
|
# My specific usual stuff.
|
2022-05-20 06:47:09 +00:00
|
|
|
programs.git = let email = "foo.dogsquared@gmail.com"; in {
|
2021-11-29 05:30:57 +00:00
|
|
|
enable = true;
|
2021-12-08 04:18:37 +00:00
|
|
|
package = pkgs.gitFull;
|
2021-11-29 05:30:57 +00:00
|
|
|
lfs.enable = true;
|
2022-01-12 02:46:25 +00:00
|
|
|
userName = "Gabriel Arazas";
|
2022-05-20 06:47:09 +00:00
|
|
|
userEmail = email;
|
|
|
|
extraConfig = {
|
|
|
|
# This is taken from the official Git book, for future references.
|
|
|
|
sendemail = {
|
|
|
|
smtpserver = "smtp.gmail.com";
|
|
|
|
smtpencryption = "tls";
|
|
|
|
smtpserverport = 587;
|
|
|
|
smtpuser = email;
|
|
|
|
};
|
|
|
|
};
|
2021-11-27 08:04:01 +00:00
|
|
|
};
|
2021-11-29 09:56:24 +00:00
|
|
|
|
2021-12-08 04:18:37 +00:00
|
|
|
# My music player setup, completely configured with Nix!
|
2022-01-12 02:46:25 +00:00
|
|
|
services.mopidy = {
|
2021-12-08 04:18:37 +00:00
|
|
|
enable = true;
|
2022-01-12 02:46:25 +00:00
|
|
|
extensionPackages = with pkgs; [
|
2022-02-02 04:25:03 +00:00
|
|
|
mopidy-beets
|
|
|
|
mopidy-funkwhale
|
|
|
|
mopidy-internetarchive
|
|
|
|
mopidy-iris
|
|
|
|
mopidy-local
|
2022-01-12 02:46:25 +00:00
|
|
|
mopidy-mpd
|
|
|
|
mopidy-mpris
|
2022-02-02 04:25:03 +00:00
|
|
|
mopidy-youtube
|
2022-01-12 02:46:25 +00:00
|
|
|
];
|
2022-01-30 23:57:38 +00:00
|
|
|
|
2022-05-20 06:47:09 +00:00
|
|
|
settings = {
|
2022-02-02 04:25:03 +00:00
|
|
|
http = {
|
|
|
|
hostname = "0.0.0.0";
|
|
|
|
};
|
|
|
|
|
|
|
|
file = {
|
|
|
|
enabled = true;
|
|
|
|
media_dirs = [
|
|
|
|
"$XDG_MUSIC_DIR|Music"
|
2022-07-09 02:49:41 +00:00
|
|
|
"~/library/music|Library"
|
2022-02-02 04:25:03 +00:00
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
internetarchive = {
|
|
|
|
enabled = true;
|
|
|
|
browse_limit = 150;
|
|
|
|
search_limit = 150;
|
|
|
|
collections = [
|
|
|
|
"fav-foo-dogsquared"
|
|
|
|
"audio"
|
|
|
|
"etree"
|
|
|
|
"audio_music"
|
|
|
|
"audio_foreign"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2022-01-30 23:57:38 +00:00
|
|
|
services.recoll = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
topdirs = "~/Downloads ~/Documents ~/library";
|
|
|
|
"skippedNames+" = "node_modules";
|
|
|
|
|
|
|
|
"~/library/projects" = {
|
|
|
|
"skippedNames+" = ".editorconfig .gitignore result flake.lock go.sum";
|
|
|
|
};
|
|
|
|
|
|
|
|
"~/library/projects/software" = {
|
|
|
|
"skippedNames+" = "target result";
|
|
|
|
};
|
|
|
|
};
|
2021-12-08 04:18:37 +00:00
|
|
|
};
|
|
|
|
|
2021-11-29 09:56:24 +00:00
|
|
|
# My custom modules.
|
2022-01-09 05:38:59 +00:00
|
|
|
profiles = {
|
2021-11-29 09:56:24 +00:00
|
|
|
i18n.enable = true;
|
2021-12-02 14:02:29 +00:00
|
|
|
dev = {
|
|
|
|
enable = true;
|
|
|
|
shell.enable = true;
|
2022-04-30 12:30:22 +00:00
|
|
|
extras.enable = true;
|
2021-12-02 14:02:29 +00:00
|
|
|
};
|
2021-12-25 13:56:50 +00:00
|
|
|
editors.emacs.enable = true;
|
2021-11-30 01:03:05 +00:00
|
|
|
desktop = {
|
|
|
|
enable = true;
|
|
|
|
graphics.enable = true;
|
|
|
|
audio.enable = true;
|
2021-12-19 09:39:18 +00:00
|
|
|
multimedia.enable = true;
|
2021-11-30 01:03:05 +00:00
|
|
|
};
|
2021-12-11 05:37:27 +00:00
|
|
|
research.enable = true;
|
2021-11-29 09:56:24 +00:00
|
|
|
};
|
2022-01-09 05:38:59 +00:00
|
|
|
|
2022-03-10 02:12:03 +00:00
|
|
|
services.bleachbit.enable = true;
|
|
|
|
|
2022-02-05 10:58:42 +00:00
|
|
|
home.sessionVariables = {
|
|
|
|
MANPAGER = "nvim +Man!";
|
|
|
|
EDITOR = "nvim";
|
|
|
|
};
|
|
|
|
|
2022-02-02 04:25:03 +00:00
|
|
|
# WHOA! Even browsers with extensions can be declarative!
|
|
|
|
programs.brave = {
|
|
|
|
enable = true;
|
|
|
|
extensions = [
|
|
|
|
{ id = "dbepggeogbaibhgnhhndojpepiihcmeb"; } # Vimium
|
|
|
|
{ id = "ekhagklcjbdpajgpjgmbionohlpdbjgc"; } # Zotero connector
|
|
|
|
{ id = "jfnifeihccihocjbfcfhicmmgpjicaec"; } # GSConnect
|
|
|
|
{ id = "aapbdbdomjkkjkaonfhkkikfgjllcleb"; } # Google Translate (yes, I'm disappointed in myself)
|
|
|
|
{ id = "egpjdkipkomnmjhjmdamaniclmdlobbo"; } # Firenvim
|
|
|
|
{ id = "gknkbkaapnhpmkcgkmdekdffgcddoiel"; } # Open Access Button
|
|
|
|
{ id = "fpnmgdkabkmnadcjpehmlllkndpkmiak"; } # Wayback Machine
|
2022-02-05 10:58:42 +00:00
|
|
|
{ id = "gphhapmejobijbbhgpjhcjognlahblep"; } # GNOME Shell integration
|
2022-02-02 04:25:03 +00:00
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2022-07-05 14:30:33 +00:00
|
|
|
home.stateVersion = "22.11";
|
2022-05-20 06:47:09 +00:00
|
|
|
|
2022-01-12 02:46:25 +00:00
|
|
|
xdg.userDirs = {
|
|
|
|
enable = true;
|
|
|
|
createDirectories = true;
|
|
|
|
};
|
2022-07-05 14:28:03 +00:00
|
|
|
|
|
|
|
# All of the personal configurations.
|
|
|
|
xdg.configFile = {
|
2022-07-07 16:30:54 +00:00
|
|
|
"doom".source = getDotfiles "emacs";
|
|
|
|
"kitty".source = getDotfiles "kitty";
|
|
|
|
"lf".source = getDotfiles "lf";
|
|
|
|
"nvim".source = getDotfiles "nvim";
|
|
|
|
"wezterm".source = getDotfiles "wezterm";
|
2022-07-05 14:28:03 +00:00
|
|
|
};
|
2021-11-27 08:04:01 +00:00
|
|
|
}
|