home/newsboat: upstream automation to home-manager
This commit is contained in:
@@ -154,7 +154,6 @@
|
||||
gpg = ./home/modules/programs/gpg;
|
||||
mpd-auto-updater = ./home/modules/services/mpd.nix;
|
||||
neovim-auto-clean-swapfiles = ./home/modules/programs/neovim/auto-clean-swapfiles.nix;
|
||||
newsboat = ./home/modules/programs/newsboat;
|
||||
nix-index-auto-update-database = ./home/modules/programs/nix-index/auto-update-database.nix;
|
||||
prism-launcher = ./home/modules/programs/prism-launcher;
|
||||
shellAliases = ./home/modules/shellAliases.nix;
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
./vacuum.nix
|
||||
./fetch-articles.nix
|
||||
];
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
cfg = config.programs.newsboat;
|
||||
package = pkgs.newsboat;
|
||||
in
|
||||
{
|
||||
options.programs.newsboat.fetch-articles = {
|
||||
enable = lib.mkEnableOption "automatic article fetcher for newsboat";
|
||||
|
||||
onCalendar = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "daily";
|
||||
example = "weekly";
|
||||
# TODO: link to systemd manpage for format.
|
||||
description = "How often to fetch new articles.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.fetch-articles.enable {
|
||||
# TODO: wait for internet
|
||||
systemd.user.services.newsboat-fetch-articles = {
|
||||
Unit = {
|
||||
Description = "Automatically fetch new articles for newsboat";
|
||||
Documentation = [ "man:newsboat(1)" ];
|
||||
};
|
||||
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
Slice = "background.slice";
|
||||
CPUSchedulingPolicy = "idle";
|
||||
IOSchedulingClass = "idle";
|
||||
ExecStart = "${lib.getExe pkgs.flock} %t/newsboat.lock ${lib.getExe package} --execute=reload";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.timers.newsboat-fetch-articles = {
|
||||
Unit = {
|
||||
Description = "Automatically fetch new articles for newsboat";
|
||||
Documentation = [ "man:newsboat(1)" ];
|
||||
After = [ "network.target" ];
|
||||
};
|
||||
|
||||
Timer = {
|
||||
Unit = "newsboat-fetch-articles.service";
|
||||
OnCalendar = cfg.fetch-articles.onCalendar;
|
||||
Persistent = true;
|
||||
};
|
||||
|
||||
Install = {
|
||||
WantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
cfg = config.programs.newsboat;
|
||||
package = pkgs.newsboat;
|
||||
in
|
||||
{
|
||||
options.programs.newsboat.vacuum = {
|
||||
enable = lib.mkEnableOption "automatic cleaning of the newsboat cache";
|
||||
|
||||
onCalendar = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "weekly";
|
||||
example = "monthly";
|
||||
# TODO: link to systemd manpage for format.
|
||||
description = "How often to run the cleaning.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.vacuum.enable {
|
||||
systemd.user.services.newsboat-vacuum = {
|
||||
Unit = {
|
||||
Description = "Automatically clean newsboat cache";
|
||||
Documentation = [ "man:newsboat(1)" ];
|
||||
};
|
||||
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
Slice = "background.slice";
|
||||
CPUSchedulingPolicy = "idle";
|
||||
IOSchedulingClass = "idle";
|
||||
ExecStart = "${lib.getExe pkgs.flock} %t/newsboat.lock ${lib.getExe package} --vacuum";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.timers.newsboat-vacuum = {
|
||||
Unit = {
|
||||
Description = "Automatically clean newsboat cache";
|
||||
Documentation = [ "man:newsboat(1)" ];
|
||||
};
|
||||
|
||||
Timer = {
|
||||
Unit = "newsboat-vacuum.service";
|
||||
OnCalendar = cfg.vacuum.onCalendar;
|
||||
Persistent = true;
|
||||
};
|
||||
|
||||
Install = {
|
||||
WantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -2,17 +2,14 @@
|
||||
let
|
||||
cfg = config.programs.newsboat;
|
||||
|
||||
# package = cfg.package;
|
||||
package = pkgs.newsboat;
|
||||
|
||||
defaultBrowser = "google-chrome-stable %u";
|
||||
videoViewer = "mpv %u";
|
||||
in {
|
||||
imports = [ ./sources.nix ];
|
||||
|
||||
programs.newsboat = {
|
||||
fetch-articles.enable = true;
|
||||
vacuum.enable = true;
|
||||
autoFetchArticles.enable = true;
|
||||
autoVacuum.enable = true;
|
||||
|
||||
autoReload = true;
|
||||
maxItems = 50;
|
||||
@@ -72,11 +69,4 @@ in {
|
||||
''
|
||||
];
|
||||
};
|
||||
|
||||
# systemd.user.slices.app-newsboat = {
|
||||
# Unit = {
|
||||
# Description = "Newsboat automation";
|
||||
# Documentation = [ "man:newsboat(1)" ];
|
||||
# };
|
||||
# };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user