aboutsummaryrefslogtreecommitdiff
path: root/home-manager/modules
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2019-10-23 12:14:09 +0000
committerKatharina Fey <kookie@spacekookie.de>2019-10-23 12:14:09 +0000
commit920236de9ad6b200948a7d2eff685ec823c97925 (patch)
tree8663d7484c12cbb1d940274be34b02e30f42d86d /home-manager/modules
parent3547597c8c5db5e40e66119587777910e780da3d (diff)
parent1b987952b5f7d18f0bb66317cf18ffda43ad45aa (diff)
Merge commit '1b987952b5f7d18f0bb66317cf18ffda43ad45aa' into bump-nixpkgs
Diffstat (limited to 'home-manager/modules')
-rw-r--r--home-manager/modules/programs/getmail.nix1
-rw-r--r--home-manager/modules/programs/kakoune.nix1
-rw-r--r--home-manager/modules/programs/newsboat.nix47
-rw-r--r--home-manager/modules/programs/termite.nix2
-rw-r--r--home-manager/modules/programs/vscode.nix47
5 files changed, 76 insertions, 22 deletions
diff --git a/home-manager/modules/programs/getmail.nix b/home-manager/modules/programs/getmail.nix
index 8c1ac5e021e..04a958d6cda 100644
--- a/home-manager/modules/programs/getmail.nix
+++ b/home-manager/modules/programs/getmail.nix
@@ -31,6 +31,7 @@ let
[retriever]
type = ${retrieverType}
server = ${imap.host}
+ ${optionalString (imap.port != null) "port = ${imap.port}"}
username = ${userName}
password_command = (${passCmd})
mailboxes = ( ${renderedMailboxes} )
diff --git a/home-manager/modules/programs/kakoune.nix b/home-manager/modules/programs/kakoune.nix
index e48f0e295a8..dbaa764a212 100644
--- a/home-manager/modules/programs/kakoune.nix
+++ b/home-manager/modules/programs/kakoune.nix
@@ -540,6 +540,7 @@ let
in
pkgs.writeText "kakrc" (
optionalString (cfg.config != null) cfgStr
+ + "\n"
+ cfg.extraConfig
);
diff --git a/home-manager/modules/programs/newsboat.nix b/home-manager/modules/programs/newsboat.nix
index 84c64dfa607..19fec642d21 100644
--- a/home-manager/modules/programs/newsboat.nix
+++ b/home-manager/modules/programs/newsboat.nix
@@ -14,10 +14,32 @@ in
enable = mkEnableOption "the Newsboat feed reader";
urls = mkOption {
- type = types.listOf types.attrs;
+ type = types.listOf (types.submodule {
+ options = {
+ url = mkOption {
+ type = types.str;
+ example = "http://example.com";
+ description = "Feed URL.";
+ };
+
+ tags = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ example = ["foo" "bar"];
+ description = "Feed tags.";
+ };
+
+ title = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = "ORF News";
+ description = "Feed title.";
+ };
+ };
+ });
default = [];
example = [{url = "http://example.com"; tags = ["foo" "bar"];}];
- description = "List of urls and tokens.";
+ description = "List of news feeds.";
};
maxItems = mkOption {
@@ -71,19 +93,18 @@ in
home.packages = [ pkgs.newsboat ];
home.file.".newsboat/urls".text =
let
- urls = builtins.concatStringsSep "\n" (
- map (u: builtins.concatStringsSep " " ([u.url] ++ (map wrapQuote u.tags)))
- cfg.urls);
- queries = builtins.concatStringsSep "\n" (
- mapAttrsToList (n: v: "\"query:${n}:${escape ["\""] v}\"") cfg.queries);
-
+ mkUrlEntry = u: concatStringsSep " " (
+ [u.url]
+ ++ map wrapQuote u.tags
+ ++ optional (u.title != null) (wrapQuote "~${u.title}")
+ );
+ urls = map mkUrlEntry cfg.urls;
+
+ mkQueryEntry = n: v: "\"query:${n}:${escape ["\""] v}\"";
+ queries = mapAttrsToList mkQueryEntry cfg.queries;
in
+ concatStringsSep "\n" (urls ++ queries) + "\n";
- ''
- ${urls}
-
- ${queries}
- '';
home.file.".newsboat/config".text = ''
max-items ${toString cfg.maxItems}
browser ${cfg.browser}
diff --git a/home-manager/modules/programs/termite.nix b/home-manager/modules/programs/termite.nix
index 6eab39edb3a..a5b1cebe775 100644
--- a/home-manager/modules/programs/termite.nix
+++ b/home-manager/modules/programs/termite.nix
@@ -9,7 +9,7 @@ let
vteInitStr = ''
# See https://github.com/thestinger/termite#id1
if [[ $TERM == xterm-termite ]]; then
- . ${pkgs.gnome3.vte-ng}/etc/profile.d/vte.sh
+ . ${pkgs.termite.vte-ng}/etc/profile.d/vte.sh
fi
'';
diff --git a/home-manager/modules/programs/vscode.nix b/home-manager/modules/programs/vscode.nix
index 3a82816f588..fdaea0ba4fe 100644
--- a/home-manager/modules/programs/vscode.nix
+++ b/home-manager/modules/programs/vscode.nix
@@ -6,12 +6,22 @@ let
cfg = config.programs.vscode;
+ vscodePname = cfg.package.pname;
+
+ configDir = {
+ "vscode" = "Code";
+ "vscode-insiders" = "Code - Insiders";
+ "vscodium" = "Codium";
+ }.${vscodePname};
+
configFilePath =
if pkgs.stdenv.hostPlatform.isDarwin then
- "Library/Application Support/Code/User/settings.json"
+ "Library/Application Support/${configDir}/User/settings.json"
else
- "${config.xdg.configHome}/Code/User/settings.json";
+ "${config.xdg.configHome}/${configDir}/User/settings.json";
+ # TODO: On Darwin where are the extensions?
+ extensionPath = ".${vscodePname}/extensions";
in
{
@@ -19,6 +29,15 @@ in
programs.vscode = {
enable = mkEnableOption "Visual Studio Code";
+ package = mkOption {
+ type = types.package;
+ default = pkgs.vscode;
+ example = literalExample "pkgs.vscodium";
+ description = ''
+ Version of Visual Studio Code to install.
+ '';
+ };
+
userSettings = mkOption {
type = types.attrs;
default = {};
@@ -47,12 +66,24 @@ in
};
config = mkIf cfg.enable {
- home.packages = [
- (pkgs.vscode-with-extensions.override {
- vscodeExtensions = cfg.extensions;
- })
- ];
+ home.packages = [ cfg.package ];
- home.file."${configFilePath}".text = builtins.toJSON cfg.userSettings;
+ # Adapted from https://discourse.nixos.org/t/vscode-extensions-setup/1801/2
+ home.file =
+ let
+ toPaths = p:
+ # Links every dir in p to the extension path.
+ mapAttrsToList (k: v:
+ {
+ "${extensionPath}/${k}".source = "${p}/${k}";
+ }) (builtins.readDir p);
+ toSymlink = concatMap toPaths cfg.extensions;
+ in
+ foldr
+ (a: b: a // b)
+ {
+ "${configFilePath}".text = builtins.toJSON cfg.userSettings;
+ }
+ toSymlink;
};
}