summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock118
-rw-r--r--flake.nix58
-rw-r--r--home/home.nix265
-rw-r--r--home/newsboat-lib.nix21
-rw-r--r--home/newsboat-public.nix147
-rw-r--r--home/packages.nix69
-rw-r--r--home/unstable.nix14
7 files changed, 663 insertions, 29 deletions
diff --git a/flake.lock b/flake.lock
index 2aac064..7712468 100644
--- a/flake.lock
+++ b/flake.lock
@@ -12,20 +12,69 @@
"type": "path"
}
},
- "nixpkgs": {
+ "feeds": {
+ "flake": false,
"locked": {
- "lastModified": 1641687203,
- "narHash": "sha256-W6Xrb/l1x+E+WMVLw4q5HUnNjt3x4WQFSYJtjJtopbU=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "00acdb2aa817048fbe1f91ece18fe7de09762531",
+ "narHash": "sha256-/hjBZYL1sH9/Wqsc7eX8AE/KhgO6UFYTNUex1CSFm1E=",
+ "path": "/home/stuebinm/newsboat-feeds-private.nix",
+ "type": "path"
+ },
+ "original": {
+ "path": "/home/stuebinm/newsboat-feeds-private.nix",
+ "type": "path"
+ }
+ },
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1639871969,
+ "narHash": "sha256-6feWUnMygRzA9tzkrfAzpA5/NBYg75bkFxnqb1DtD7E=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "697cc8c68ed6a606296efbbe9614c32537078756",
"type": "github"
},
"original": {
- "owner": "NixOS",
+ "owner": "nix-community",
"ref": "release-21.11",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
+ "naersk": {
+ "inputs": {
+ "nixpkgs": "nixpkgs"
+ },
+ "locked": {
+ "lastModified": 1639947939,
+ "narHash": "sha256-pGsM8haJadVP80GFq4xhnSpNitYNQpaXk4cnA796Cso=",
+ "owner": "nix-community",
+ "repo": "naersk",
+ "rev": "2fc8ce9d3c025d59fee349c1f80be9785049d653",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "naersk",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1642069818,
+ "narHash": "sha256-666w6j8wl/bojfgpp0k58/UJ5rbrdYFbI2RFT2BXbSQ=",
+ "owner": "NixOS",
"repo": "nixpkgs",
+ "rev": "46821ea01c8f54d2a20f5a503809abfc605269d7",
"type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "type": "indirect"
}
},
"nixpkgs-unstable": {
@@ -44,15 +93,68 @@
"type": "github"
}
},
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1641982078,
+ "narHash": "sha256-QmJNdGPWYzxYXTf23N26dAkvwNkBBA5SqCdz6hn4HpU=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "6e3482858da95eca9e8fb5796ac72e14ada9e254",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "backport-154729-to-release-21.11",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "playground": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1631386631,
+ "narHash": "sha256-VnCf3O5XnGcRttEzjrv4i9tOXAcaXImh5mo44pNnzwY=",
+ "ref": "master",
+ "rev": "d6ee1209ce08103dd2b8294c9399d628d1394f9e",
+ "revCount": 20,
+ "type": "git",
+ "url": "https://stuebinm.eu/git/playground"
+ },
+ "original": {
+ "type": "git",
+ "url": "https://stuebinm.eu/git/playground"
+ }
+ },
"root": {
"inputs": {
"blog": "blog",
- "nixpkgs": "nixpkgs",
+ "feeds": "feeds",
+ "home-manager": "home-manager",
+ "naersk": "naersk",
+ "nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable",
+ "playground": "playground",
+ "sfz": "sfz",
"tracktrain": "tracktrain",
"uplcg": "uplcg"
}
},
+ "sfz": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1642055113,
+ "narHash": "sha256-Y+rC1E8Dl59y0M6g1gGz/+cYRm/IaFMQCRzHh867aRY=",
+ "owner": "weihanglo",
+ "repo": "sfz",
+ "rev": "6f471e2df921c82b9cd129806ed8906f2f82b3a8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "weihanglo",
+ "repo": "sfz",
+ "type": "github"
+ }
+ },
"tracktrain": {
"flake": false,
"locked": {
diff --git a/flake.nix b/flake.nix
index 2252d14..aefc703 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,22 +1,13 @@
-
{
description = "testing nix flakes for server deployment";
inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/release-21.11";
+ nixpkgs.url = "github:NixOS/nixpkgs/backport-154729-to-release-21.11";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
uplcg = {
url = "git+https://stuebinm.eu/git/uplcg?ref=main";
flake = false;
};
- # woitb = {
- # url = "git+https://stuebinm.eu/git/woitb?ref=main";
- # flake = false;
- # };
- # workadventure = {
- # url = "git+https://stuebinm.eu/git/workadventure-nix";
- # flake = false;
- # };
tracktrain = {
url = "git+https://stuebinm.eu/git/tracktrain?ref=main";
flake = false;
@@ -25,24 +16,49 @@
url = "path:/home/stuebinm/Dokumente/blog";
flake = false;
};
+ home-manager = {
+ url = "github:nix-community/home-manager/release-21.11";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ playground.url = "git+https://stuebinm.eu/git/playground";
+ playground.flake = false;
+ naersk.url = "github:nix-community/naersk";
+ sfz.url = "github:weihanglo/sfz";
+ sfz.flake = false;
+ feeds.url = "path:/home/stuebinm/newsboat-feeds-private.nix";
+ feeds.flake = false;
};
- outputs = { self, nixpkgs, ... }@inputs: {
+ outputs = { self, nixpkgs, ... }@inputs:
+ let
+ mkConfig = imports: config:
+ nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ modules = [ config ] ++ imports;
- nixosConfigurations =
- let mkConfig = imports: config: nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- modules = [ config ] ++ imports;
+ specialArgs = { inherit inputs; };
+ };
+ mkServer = mkConfig [ ./common/headless.nix ];
+ mkDesktop = mkConfig [ ./common/desktop.nix ];
+ in {
- specialArgs = { inherit inputs; };
- };
- mkServer = mkConfig [ ./common/headless.nix ];
- mkDesktop = mkConfig [ ./common/desktop.nix ];
- in {
+ nixosConfigurations = {
chaski = mkServer ./hosts/chaski/configuration.nix;
flora = mkServer ./hosts/flora/configuration.nix;
abbenay = mkDesktop ./hosts/abbenay/configuration.nix;
cyberbox = mkDesktop ./hosts/cyberbox/configuration.nix;
};
- };
+
+ homeConfigurations.stuebinm =
+ inputs.home-manager.lib.homeManagerConfiguration rec {
+ system = "x86_64-linux";
+ homeDirectory = "/home/stuebinm";
+ username = "stuebinm";
+ configuration.imports = [ ./home/home.nix ];
+ stateVersion = "21.03";
+ extraSpecialArgs = { inherit inputs system; };
+ };
+
+ home = self.homeConfigurations.stuebinm.activationPackage;
+ };
}
diff --git a/home/home.nix b/home/home.nix
new file mode 100644
index 0000000..f2a0f7e
--- /dev/null
+++ b/home/home.nix
@@ -0,0 +1,265 @@
+{ config, pkgs, inputs, ... }:
+
+{
+ # Let Home Manager install and manage itself.
+ programs.home-manager.enable = true;
+
+ imports = [
+ ./packages.nix
+ ./unstable.nix
+ ];
+
+ home.keyboard.options = [ "caps:escape" ];
+
+ programs.msmtp.enable = true;
+ programs.mbsync.enable = true;
+ programs.mu.enable = true;
+
+ accounts.email = {
+ accounts.hacc = {
+ address = "stuebinm@hacc.space";
+ imap.host = "mail.hacc.space";
+ mbsync = {
+ enable = true;
+ create = "maildir";
+ };
+ msmtp.enable = true;
+ mu.enable = true;
+ primary = true;
+ realName = "stuebinm";
+ smtp.host = "mail.hacc.space";
+ userName = "stuebinm@hacc.space";
+ passwordCommand = "cat ~/mailpasswd";
+ };
+ };
+
+ programs.bash = {
+ enable = true;
+ historyControl = [ "ignoredups" "ignorespace" ];
+ historyFileSize = 10000;
+
+ # set shell prompt & tty for the gnu pinentry (otherwise gnupg will crash)
+ initExtra = ''
+ export GPG_TTY=`tty`
+ # this shouldn't be necessary, but apparently nix is broken ...
+ NIX_PATH=$HOME/.nix-defexpr/channels''${NIX_PATH:+:}$NIX_PATH
+ PS1='\[\033[1;36m\] >>> [\j|\u@\w]\$: \[\033[00m\]'
+ '';
+
+ shellAliases = {
+ "lrz-vpn" = "sudo openconnect https://asa-cluster.lrz.de -g AnyConnect";
+ ll = "ls -slF";
+ news = "newsboat";
+ pj = "pijul";
+ };
+ };
+
+ programs.starship = {
+ enable = true;
+ enableBashIntegration = true;
+ enableFishIntegration = true;
+ settings = {
+ directory.truncation_length = 10;
+ };
+ };
+
+ programs.nushell = {
+ enable = true;
+ settings = {
+ startup = [
+ "mkdir ~/.cache/starship"
+ "starship init nu | save ~/.cache/starship/init.nu"
+ "source ~/.cache/starship/init.nu"
+ ];
+ prompt = "starship_prompt";
+ };
+ };
+
+ programs.fish = {
+ enable = true;
+ shellAliases = {
+ "lrz-vpn" = "sudo openconnect https://asa-cluster.lrz.de";
+ news = "newsboat";
+ pj = "pijul";
+ nix-shell = "nix-shell --command fish";
+ le = "exa";
+ ll = "exa -lh --grid --icons";
+ llt = "exa -lh --tree --icons";
+ lt = "exa --tree --icons";
+ };
+ functions = {
+ fish_greeting = {
+ body = "";
+ };
+ };
+ };
+
+ programs.newsboat = {
+ enable = true;
+ urls = (import ./newsboat-public.nix) ++ (import inputs.feeds);
+ browser = pkgs.lynx.outPath + "/bin/lynx";
+ reloadThreads = 100;
+ queries = {
+ unread = ''unread="yes"'';
+ security = ''tags # "security"'';
+ ao3 = ''tags # "ao3"'';
+ blogs = ''unread="yes" and tags # "blog"'';
+ video = ''tags # "video"'';
+ podcasts = ''tags # "podcast"'';
+ news = ''tags # "news"'';
+ };
+ extraConfig = ''
+ color background white default
+ color listnormal white default
+ color listnormal_unread magenta default bold
+ color listfocus black white bold
+ color listfocus_unread magenta white bold
+ color info green color0
+ color article white default
+
+ ssl-verifypeer no
+
+ macro v set browser "mpv %u >/dev/null 2>&1 &" ; open-in-browser ; set browser "${config.programs.newsboat.browser} %u"
+ macro f set browser "${pkgs.xdg_utils}/bin/xdg-open %u >/dev/null 2>&1 &" ; open-in-browser ; set browser "${config.programs.newsboat.browser} %u"
+
+ bind-key j down
+ bind-key k up
+ '';
+ };
+
+
+ programs.bat = {
+ enable = true;
+ config.wrap = "never";
+ };
+
+
+ programs.obs-studio = {
+ enable = true;
+ plugins = let
+ move-transition = import obs/move-transition.nix;
+ obs-websocket = import obs/obs-websocket.nix;
+ in
+ with pkgs; [
+ ];
+ };
+
+ programs.git = {
+ enable = true;
+ package = pkgs.gitAndTools.gitFull;
+ userEmail = "stuebinm@disroot.org";
+ userName = "stuebinm";
+
+ signing = {
+ # signByDefault = true;
+ key = "0x8FBE8AAD32FA12B7";
+ };
+
+ extraConfig = {
+ log.showSignature = true;
+ init.defaultBranch = "main";
+ };
+
+ delta = {
+ enable = true;
+ options = {
+ decorations = {
+ commit-decoration-style = "bold yellow";
+ file-decoration-style = "bold blue";
+ file-style = "bold yellow";
+ };
+ features = "decorations line-numbers navigate";
+ whitespace-error-style = "22 reverse";
+ };
+ };
+ };
+
+ programs.gpg = {
+ enable = true;
+ settings = {
+ auto-key-locate = "keyserver";
+ with-fingerprint = "";
+ };
+ };
+ services.gpg-agent = {
+ enable = true;
+ pinentryFlavor = "gtk2";
+ maxCacheTtl = 1800;
+ };
+
+
+ programs.htop = {
+ enable = true;
+ settings = {
+ fields = "0 48 17 18 38 46 47 49 1";
+ sort_key = 46;
+ sort_direction = -1;
+ hide_kernel_threads = 1;
+ hide_userland_threads = 0;
+ shadow_other_users = 1;
+ show_program_path = 0;
+ highlight_base_name = 1;
+ find_comm_in_cmdline = 1;
+ header_margin = 1;
+ show_cpu_usage = 1;
+ color_scheme = 5;
+ enable_mouse = 1;
+ delay = 15;
+ header_layout = "two_67_33";
+ column_meters_0 = "AllCPUs Memory Swap";
+ column_meter_modes_0 = "1 1 1";
+ column_meters_1 = "Tasks LoadAverage Uptime NetworkIO";
+ column_meter_modes_1 = "2 2 2 2";
+ };
+ };
+
+ programs.ssh = {
+ forwardAgent = true;
+ enable = true;
+ matchBlocks = let
+ keydir = config.home.homeDirectory + "/.ssh";
+ hetznerlogin = match: {user = "root"; identityFile = keydir + "/hetzner"; forwardAgent = true;} // match;
+ vpslogin = hostname: hetznerlogin {inherit hostname;};
+ lmulogin = hostname: {identityFile = keydir + "/key_lmu"; user = "lmu-user"; } // { inherit hostname;};
+ in {
+ "parsons" = hetznerlogin {
+ hostname = "parsons.hacc.space";
+ port = 62954;
+ user = "stuebinm";
+ identityFile = keydir + "/id_rsa";
+ };
+ "discuss" = hetznerlogin {
+ user = "root";
+ hostname = "23.88.58.86";
+ port = 62954;
+ identityFile = keydir + "/id_rsa";
+ };
+ "flora" = vpslogin "nix.stuebinm.eu";
+ "chaski" = vpslogin "chaski.stuebinm.eu";
+ "cgit" = vpslogin "flora.stuebinm.eu" // {user = "git";};
+ "mate" = {
+ hostname = "192.168.69.174";
+ user = "root";
+ identityFile = keydir + "/hetzner";
+ };
+ "lmucast-test" = lmulogin "lmzveun-h5base.srv.mwn.de";
+ "lmucast-prod" = lmulogin "lmzveun-pro-h5base.srv.mwn.de";
+ "lmu-salsa" = {
+ hostname = "lmzveun-salsa.srv.mwn.de";
+ user = "ra72koc";
+ identityFile = keydir + "/key_lmu";
+ };
+ };
+ };
+
+ programs.mpv = {
+ enable = true;
+ bindings = {
+ "up" = "add speed 0.1";
+ "down" = "add speed -0.1";
+ "n" = "add chapter 1";
+ "p" = "add chapter -1";
+ };
+ };
+
+}
diff --git a/home/newsboat-lib.nix b/home/newsboat-lib.nix
new file mode 100644
index 0000000..1344a9b
--- /dev/null
+++ b/home/newsboat-lib.nix
@@ -0,0 +1,21 @@
+
+rec {
+ tags = tags: url: {
+ tags = tags;
+ inherit url;
+ };
+ btag = url: t: tags [ t "blog" ] url;
+ btags = url: ts: tags (ts ++ [ "blog" ]) url;
+
+ ntag = url: t: tags [ t "news" ] url;
+ jtag = url: t: tags [ t "journal" ] url;
+
+ vtag = url: t: tags [ t "video" ] url;
+ ytag = channel: tag: vtag ("https://www.youtube.com/feeds/videos.xml?channel_id=${channel}") tag;
+ blender = channel: vtag "https://video.blender.org/feeds/videos.xml?videoChannelId=${toString channel}" "blender";
+
+ podcast = url: tags [ "podcast" ] url;
+ music = url: tags [ "music" ] url;
+
+ fr = "français";
+}
diff --git a/home/newsboat-public.nix b/home/newsboat-public.nix
new file mode 100644
index 0000000..cca7cf5
--- /dev/null
+++ b/home/newsboat-public.nix
@@ -0,0 +1,147 @@
+
+with import ./newsboat-lib.nix;
+[
+ # news
+ (ntag "https://thinkmods.store/blogs/news.atom" "tech")
+ (ntag "http://feeds.feedburner.com/Blendernation" "blender")
+ (ntag "https://puri.sm/feed/" "tech")
+ (ntag "https://events.ccc.de" "chaos")
+ (ntag "https://this-week-in-rust.org/rss.xml" "prog")
+ (ntag "https://weekly.nixos.org/feeds/all.rss.xml" "prog")
+ (ntag "https://haskellweekly.news/newsletter.atom" "prog")
+ (ntag "https://zerforschung.org/index.xml" "chaos")
+ (ntag "https://jacobinitalia.it/feed" "it")
+ (ntag "https://ctxt.es/es/?tpl=87" "es")
+ (jtag "https://madeinchinajournal.com/feed/" "pol")
+ (jtag "https://decorrespondent.nl/feed/v1/publications" "pol")
+ (jtag "https://solar.lowtechmagazine.com/feeds/all-en.atom.xml" "tech")
+ (btag "https://www.omgubuntu.co.uk/feed" "tech")
+
+ # blogs
+ (btag "https://scilogs.spektrum.de/klimalounge/feed/" "climate")
+ (btag "http://scienceblogs.de/astrodicticum-simplex/feed/" "science")
+ (btag "https://linus-neumann.de/feed/" "chaos")
+ (btag "https://acoup.blog/feed/" "history")
+ (btag "https://www.exurbe.com/feed" "history")
+ (btag "https://zompist.wordpress.com/feed/" "ling")
+ (btag "https://pluralistic.net/feed/" "chaos")
+ (btag "https://www.arkadymartine.net/blog?format=rss" "books")
+ (btags "https://antiquipop.hypotheses.org/feed" [ "history" fr ])
+ (btag "https://peterfalkingham.com/feed/" "3d")
+ (btag "https://www.kuketz-blog.de/feed/" "sec")
+ (btag "https://caramel.hypotheses.org/feed" fr)
+ (btag "https://www.pine64.org/blog/feed/" "chaos")
+ (btag "https://crewsproject.wordpress.com/category/news-and-events/feed/" "ling")
+ (btag "https://gretchenmcculloch.com/news/feed/" "ling")
+ (btag "https://mutualintelligibility.substack.com/feed" "ling")
+ (btag "https://www.neilgaiman.com/feed/journal/" "books")
+ (btag "https://fernostwaerts.substack.com/feed" "pol")
+ (btag "https://dhmuc.hypotheses.org/feed" "dh")
+ (btag "https://log.munichmakerlab.de/rss" "chaos")
+ (btag "https://code.blender.org/feed/" "3d")
+ (btags "https://isohedral.ca/blog/feed/" [ "math" "3d" ])
+ (btag "http://exple.tive.org/blarg/feed/" "chaos")
+ (btag "https://www.antipope.org/charlie/blog-static/atom.xml" "books")
+ (btag "https://pages.vassar.edu/pharos/feed/" "history")
+ (btag "https://fasterthanli.me/index.xml" "chaos")
+ (btag "https://dannybate.com/feed/" "ling")
+ (btag "https://blog.filippo.io/rss/" "comp")
+ (btag "https://serokell.io/blog.rss.xml" "copm")
+ (btag "https://jaspervdj.be/rss.xml" "comp")
+ (btag "https://ambrevar.xyz/atom.xml" "chaos")
+ (btag "https://esoteric.codes/rss" "chaos")
+ (btag "https://grimgrains.com/links/rss.xml" "chaos")
+ (btag "https://blog.benjojo.co.uk/rss.xml" "chaos")
+ (btag "https://wiki.xxiivv.com/links/rss.xml" "chaos")
+ (btag "https://www.davidrevoy.com/feed/rss" "art")
+ (btag "https://xkcd.com/atom.xml" "xkcd")
+ (btag "https://what-if.xkcd.com/feed.atom" "xkcd")
+ (btag "https://reckoning.press/feed/" "stories")
+ (btag "http://strangehorizons.com/feed/" "stories")
+ (btag "https://grahamc.com/feed/" "comp")
+ (btag "https://elephly.net/feed.xml" "comp")
+ (btag "https://www.haskellforall.com/feeds/posts/default" "comp")
+ (btag "http://conal.net/blog/feed" "comp")
+ (btag "https://michael.stapelberg.ch/posts/tags/distri/feed.xml" "comp")
+ (btag "https://mattermost.com/blog/category/releases/rss" "security")
+ (btag "https://ionathan.ch/feed.xml" "comp")
+ (btag "https://wingolog.org/feed/atom" "comp")
+ (btag "https://os.phil-opp.com/rss.xml" "comp")
+ (btag "https://joeyh.name/blog/index.rss" "comp")
+ (btag "https://www.dawn-lang.org/feed.xml" "comp")
+ (btag "https://christine.website/blog.rss" "comp")
+ (btag "https://blog.veitheller.de/feed.rss" "comp")
+ (btag "https://alhassy.github.io/rss.xml" "comp")
+ (btag "https://hpc.guix.info/blog/feed.xml" "comp")
+ (btag "https://tratt.net/laurie/blog/entries.rss" "comp")
+ (btag "https://dataswamp.org/~solene/rss.xml" "comp")
+ (btag "https://signal.eu.org/blog/rss" "comp")
+ (btag "http://arctrain.de/feed/rss" "sci")
+ (btag "https://sandymaguire.me/atom" "comp")
+ (btag "https://reasonablypolymorphic.com/atom" "comp")
+ (btag "https://vanemden.wordpress.com/feed/" "comp")
+ (btag "https://spacekookie.de/rss.xml" "comp")
+ (btag "https://risingentropy.com/rss" "math")
+ (btag "https://www.extrema.is/articles/tag/index:haskell-books.rss" "comp")
+ (btag "https://wickedchicken.github.io/index.xml" "comp")
+ (btag "https://chrispenner.ca/atom.xml" "comp")
+ (btag "https://hannes.robur.coop/atom" "comp")
+ (btag "https://ryanglscott.github.io/feed.xml" "cat")
+ (btag "https://journal.infinitenegativeutility.com/feed/" "art")
+ (btag "https://bkastl.de/feed" "comp")
+ (btag "https://dysphoric.dev/feed" "comp")
+
+
+ # videos
+ (vtag "https://media.ccc.de/updates.rdf" "chaos") # Media.CCC.de
+ (ytag "UC9rxWtgVUFls4LocQhXoNJA" "tech") # Software Circus
+ (ytag "UCXuqSBlHAE6Xw-yeJA0Tunw" "tech") # Linus Tech Tips
+ (ytag "UCBa659QWEk1AI4Tg--mrJ2A" "stuff") # Tom Scott
+ (ytag "UCtGG8ucQgEJPeUPhJZ4M4jA" "stuff") # Rare Earth
+ (ytag "UCwRH985XgMYXQ6NxXDo8npw" "stuff") # Kurzgesagt de
+ (ytag "UCsXVk37bltHxD1rDPwtNM8Q" "stuff") # Kurzgesagt en
+ (ytag "UC9GwQ_SGeq7Nrn4NQfwVoRA" "climate") # Students for Future
+ (ytag "UCN29LJGZ8FY30ysxdTnDsaw" "stuff") # Die Filmanalyse
+ (ytag "UCv1WDP5EiipMQ__C4Cg6aow" "pol") # Tilo Jung
+ (ytag "UCX6b17PVsYBQ0ip5gyeme-Q" "stuff") # Crash Course
+ (ytag "UCsaGKqPZnGp_7N80hcHySGQ" "history") # Tasting History
+ (ytag "UCncTjqw75krp9j_wRRh5Gvw" "writing") # World Building Notes
+ (ytag "UCPlJ-KlPelfnwq0GHSeSpGQ" "talks") # It's all about Math
+ (ytag "UCmrWzKsW9IGU2l6a_MGJ3dw" "ling") # LangTime Studio
+ (ytag "UCXl0Zbk8_rvjyLwAR-Xh9pQ" "maths") # Insights into Mathematics (Wildberger)
+ (ytag "UCPjHlmSGP-rMg5PR-PyaJug" "chaos") # Henk Rijckaert
+ (ytag "UC3XTzVzaHQEd30rQbuvCtTQ" "latenight") # Last Week Tonight
+ (ytag "UCSju5G2aFaWMqn-_0YBtq5A" "maths") # Standupmaths
+ (ytag "UC2PA-AKmVpU6NKCGtZq_rKQ" "left") # Philosophy Tube
+ (ytag "UC4zzTEL5tuIgGMvzjk1Ozbg" "maths") # Henry Segerman
+ (ytag "UCyHDQ5C6z1NDmJ4g6SerW8g" "sci") # maiLab
+ (ytag "UClt01z1wHHT7c5lKcU8pxRQ" "left") # hbomberguy
+ (ytag "UCVfMwipzxB2GUqRuJpxr7Ng" "climate") # fff muc
+ (ytag "UCG1h-Wqjtwz7uUANw6gazRw" "books") # Lindsay Ellis
+ (ytag "UCiQo406SKypmtAQXIHdZ6mA" "stuff") # Birchpunk
+ (ytag "UCbbQalJ4OaC0oQ0AqRaOJ9g" "stuff") # Jay Foreman
+ (ytag "UC1H1NWNTG2Xi3pt85ykVSHA" "prog") # Jordan Harrod (AI)
+ (ytag "UC2zfPMH_srjxUN5EYrfIhCw" "comp") # Zurich friends of Haskell
+ (ytag "UCUQo7nzH1sXVpzL92VesANw" "stuff") # DIY Perks
+ (blender 2737) # blender developers
+ (blender 10) # reels
+ (blender 9) # open movies
+ (blender 4) # main blender channel
+
+ # podcasts
+ (podcast "https://craphound.com/feed/")
+ (podcast "https://omny.fm/shows/ologies-with-alie-ward/playlists/podcast.rss")
+ (podcast "https://feeds.soundcloud.com/users/soundcloud:users:237055046/sounds.rss")
+ (podcast "https://fernostwaerts.de/feed/mp3/")
+ (podcast "https://allesgesagt.podigee.io/feed/mp3")
+ (podcast "https://logbuch-netzpolitik.de/feed")
+ (podcast "https://feeds.feedburner.com/SrslyWrong")
+ (podcast "https://efforg.libsyn.com/rss")
+ (podcast "https://feed.podbean.com/lingfieldnotes/feed.xml")
+ (podcast "https://dasklima.podigee.io/feed/mp3")
+ (podcast "https://www.haecksen.org/podcast/rss")
+ (podcast "https://www.ndr.de/nachrichten/info/podcast4684.xml")
+
+ (music "https://feeds.soundcloud.com/users/soundcloud%3Ausers%3A39508706/sounds.rss")
+
+]
diff --git a/home/packages.nix b/home/packages.nix
new file mode 100644
index 0000000..55036d8
--- /dev/null
+++ b/home/packages.nix
@@ -0,0 +1,69 @@
+{ config, lib, pkgs, inputs, ... }:
+
+let
+ naersk = pkgs.callPackage inputs.naersk {};
+ extras = {
+ sfz = naersk.buildPackage inputs.sfz;
+ };
+in
+{
+ home.packages = with pkgs; [
+ (emacsWithPackages (epkgs: [ epkgs.exwm epkgs.pdf-tools epkgs.vterm ]))
+ emacs-all-the-icons-fonts
+
+ # flake-enabled version of nix
+ (pkgs.writeScriptBin "nif" ''
+ #!/usr/bin/env bash
+ exec ${pkgs.nixFlakes}/bin/nix --experimental-features "nix-command flakes" "$@"
+ '')
+ # never version of unison for playing around
+ (unison-ucm.overrideAttrs (old: rec {
+ milestone_id = "M2g";
+ version = "1.0.${milestone_id}-alpha";
+ src = fetchurl {
+ url = "https://github.com/unisonweb/unison/releases/download/release/${milestone_id}/ucm-linux.tar.gz";
+ sha256 = "004jx7q657mkcrvilk4lfkp8xcpl2bjflpn9m2p7jzlrlk97v9nj";
+ };
+ }))
+ # internet apps & clients
+ firefox thunderbird keepassxc chromium signal-desktop mumble lynx
+ openconnect matterhorn
+ # graphics & audio
+ audacity blender darktable vlc kdenlive moc ffmpeg-full
+ gimp-with-plugins inkscape krita meshlab pavucontrol moc
+ gst_all_1.gstreamer
+ # LaTeX & documents
+ texlive.combined.scheme-full xournal pandoc
+ # extra documentation, data, resources that aren't programs
+ manpages nerdfonts
+ # general cli utils
+ tree dnsutils inetutils pijul bat age libsecret gping bottom dogdns
+ cifs-utils jekyll fzf ripgrep fd bandwhich exa dive
+ ripgrep python39Packages.isort shellcheck graphviz
+ poppler unzip acpi extras.sfz
+ youtube-dl
+ # git
+ gitAndTools.gitAnnex git-bug git-appraise
+ # graphical utils
+ kitty baobab
+ # things for emacs
+ sqlite brightnessctl scrot playerctl tlp
+ # haskell & co
+ ghc cabal-install stack haskell.packages.ghc8107.haskell-language-server
+ haskellPackages.hoogle haskellPackages.stylish-haskell
+ # other functional things
+ racket dhall lean dune_2 ocamlPackages.utop ocamlPackages.ocp-indent
+ ocamlPackages.merlin ocaml
+ # html, js & co
+ jq html-tidy nodePackages.stylelint nodePackages.js-beautify zola
+ # purescript
+ spago purescript # nodePackages.purescript-language-server nodejs
+ # rust
+ rls cargo rustc rust-analyzer rustfmt
+ # others
+ gcc nixfmt niv cachix julia_16-bin python39
+ # isabelle
+ # (import "${inputs.playground.outPath}/isabelle-nix-fhsenv")
+ # (import /home/stuebinm/projects/isabelle-utils {}).isabat
+ ];
+}
diff --git a/home/unstable.nix b/home/unstable.nix
new file mode 100644
index 0000000..78ce4f6
--- /dev/null
+++ b/home/unstable.nix
@@ -0,0 +1,14 @@
+{config, pkgs, inputs, system, ...}:
+
+with import inputs.nixpkgs-unstable {inherit system; };
+{
+ home.packages = [
+ dino
+ nyxt
+ zulip-term
+ carp
+ foliate
+ elixir_1_12
+ elixir_ls
+ ];
+}