nixos-config/users/home-manager/foo-dogsquared/default.nix

221 lines
5.3 KiB
Nix
Raw Normal View History

{ config, options, lib, pkgs, ... }:
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}" $@
'';
in {
programs.home-manager.enable = true;
2021-12-08 04:18:37 +00:00
home.packages = with pkgs; [
ncmpcpp
vscodium-fhs
neovim
2022-02-02 04:25:03 +00:00
yt-dlp-for-audio
];
2021-12-08 04:18:37 +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 {
enable = true;
2021-12-08 04:18:37 +00:00
package = pkgs.gitFull;
lfs.enable = true;
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-12-08 04:18:37 +00:00
# My music player setup, completely configured with Nix!
services.mopidy = {
2021-12-08 04:18:37 +00:00
enable = true;
extensionPackages = with pkgs; [
2022-02-02 04:25:03 +00:00
mopidy-beets
mopidy-funkwhale
mopidy-internetarchive
mopidy-iris
mopidy-local
mopidy-mpd
mopidy-mpris
2022-02-02 04:25:03 +00:00
mopidy-youtube
];
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"
];
};
internetarchive = {
enabled = true;
browse_limit = 150;
search_limit = 150;
collections = [
"fav-foo-dogsquared"
"audio"
"etree"
"audio_music"
"audio_foreign"
];
};
};
};
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
};
# My custom modules.
profiles = {
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
};
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
};
research.enable = true;
};
services.archivebox = {
enable = true;
archivePath = "%h/library/archives";
withDependencies = true;
2022-04-30 12:30:22 +00:00
webserver.enable = true;
jobs = {
arts = {
links = [
"https://www.davidrevoy.com/feed/rss"
2022-04-30 12:30:22 +00:00
"https://librearts.org/index.xml"
];
startAt = "weekly";
};
computer = {
links = [
2022-04-30 12:30:22 +00:00
"https://blog.mozilla.org/en/feed/"
"https://distill.pub/rss.xml"
2022-04-30 12:30:22 +00:00
"https://drewdevault.com/blog/index.xml"
"https://fasterthanli.me/index.xml"
2022-04-30 12:30:22 +00:00
"https://jvns.ca/atom.xml"
"https://www.bytelab.codes/rss/"
"https://www.collabora.com/feed"
"https://www.jntrnr.com/atom.xml"
"https://yosoygames.com.ar/wp/?feed=rss"
"https://simblob.blogspot.com/feeds/posts/default"
];
startAt = "daily";
};
projects = {
links = [
"https://veloren.net/rss.xml"
"https://guix.gnu.org/feeds/blog.atom"
2022-04-30 12:30:22 +00:00
"https://fedoramagazine.org/feed/"
"https://nixos.org/blog/announcements-rss.xml"
];
startAt = "*-*-1/2";
};
};
};
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-05-20 06:47:09 +00:00
programs.irssi = {
enable = true;
networks.liberachat = {
nick = "foo-dogsquared";
server = {
address = "irc.libera.chat";
port = 6697;
};
channels = {
nixos = { };
guix = { };
};
};
};
xdg.userDirs = {
enable = true;
createDirectories = true;
2022-02-02 04:25:03 +00:00
# The XDG base directories. Most of my setup with this user will be my
# personal computer so I'll set them like so...
documents = "$HOME/library/documents";
music = "$HOME/library/music";
pictures = "$HOME/library/pictures";
templates = "$HOME/library/templates";
videos = "$HOME/library/videos";
};
2021-11-27 08:04:01 +00:00
}