mirror of
https://github.com/nix-community/home-manager.git
synced 2026-01-11 09:29:41 +08:00
Compare commits
16 Commits
9afe77a70b
...
backport/r
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2bd0a86493 | ||
|
|
f63d0fe9d8 | ||
|
|
e1680d594a | ||
|
|
3366918730 | ||
|
|
7385f250cc | ||
|
|
9ea0c94e00 | ||
|
|
f3902b5d87 | ||
|
|
44a3b79aad | ||
|
|
ffae9e1bca | ||
|
|
acd2931703 | ||
|
|
3fdd076e08 | ||
|
|
ba2259d7d5 | ||
|
|
d0c5fdc48d | ||
|
|
7f7e33a679 | ||
|
|
2217780c39 | ||
|
|
cbe30a7689 |
2
.github/workflows/update-flake.yml
vendored
2
.github/workflows/update-flake.yml
vendored
@@ -41,7 +41,7 @@ jobs:
|
||||
- name: Install Nix
|
||||
uses: cachix/install-nix-action@v31
|
||||
- name: Update flake.lock
|
||||
uses: DeterminateSystems/update-flake-lock@v27
|
||||
uses: DeterminateSystems/update-flake-lock@v28
|
||||
with:
|
||||
token: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
|
||||
git-committer-name: ${{ steps.user-info.outputs.name || 'github-actions[bot]' }}
|
||||
|
||||
8
flake.lock
generated
8
flake.lock
generated
@@ -2,16 +2,16 @@
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1763678758,
|
||||
"narHash": "sha256-+hBiJ+kG5IoffUOdlANKFflTT5nO3FrrR2CA3178Y5s=",
|
||||
"lastModified": 1764522689,
|
||||
"narHash": "sha256-SqUuBFjhl/kpDiVaKLQBoD8TLD+/cTUzzgVFoaHrkqY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "117cc7f94e8072499b0a7aa4c52084fa4e11cc9b",
|
||||
"rev": "8bb5646e0bed5dbd3ab08c7a7cc15b75ab4e1d0f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
description = "Home Manager for Nix";
|
||||
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||
|
||||
outputs =
|
||||
{
|
||||
|
||||
@@ -102,8 +102,8 @@ let
|
||||
};
|
||||
|
||||
local = mkOption {
|
||||
type = types.nullOr (localModule name);
|
||||
default = null;
|
||||
type = localModule name;
|
||||
default = { };
|
||||
description = ''
|
||||
Local configuration for the contacts.
|
||||
'';
|
||||
|
||||
@@ -645,7 +645,7 @@ in
|
||||
# Support completion for `man` by building a cache for `apropos`.
|
||||
programs.man.generateCaches = lib.mkDefault true;
|
||||
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source =
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source =
|
||||
let
|
||||
# Paths later in the list will overwrite those already linked
|
||||
destructiveSymlinkJoin =
|
||||
@@ -696,7 +696,7 @@ in
|
||||
set -l post_joined (string replace $prev_joined "" $joined)
|
||||
set -l prev (string split " " (string trim $prev_joined))
|
||||
set -l post (string split " " (string trim $post_joined))
|
||||
set fish_complete_path $prev "${config.xdg.dataHome}/fish/home-manager_generated_completions" $post
|
||||
set fish_complete_path $prev "${config.xdg.dataHome}/fish/home-manager/generated_completions" $post
|
||||
end
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
localStorage = calendar: name: acc: {
|
||||
name = "storage";
|
||||
params = [ "${name}-local" ];
|
||||
params = [ "${if calendar then "calendar" else "contacts"}-${name}-local" ];
|
||||
children =
|
||||
(attrsToDirectives {
|
||||
inherit (acc.local) path;
|
||||
@@ -63,7 +63,7 @@
|
||||
|
||||
remoteStorage = calendar: name: acc: {
|
||||
name = "storage";
|
||||
params = [ "${name}-remote" ];
|
||||
params = [ "${if calendar then "calendar" else "contacts"}-${name}-remote" ];
|
||||
children =
|
||||
(attrsToDirectives {
|
||||
inherit (acc.remote) url;
|
||||
@@ -91,8 +91,8 @@
|
||||
params = lib.singleton "${if calendar then "calendar" else "contacts"}-${name}";
|
||||
children =
|
||||
(attrsToDirectives {
|
||||
storage_a = "${name}-local";
|
||||
storage_b = "${name}-remote";
|
||||
storage_a = "${if calendar then "calendar" else "contacts"}-${name}-local";
|
||||
storage_b = "${if calendar then "calendar" else "contacts"}-${name}-remote";
|
||||
})
|
||||
++ acc.pimsync.extraPairDirectives;
|
||||
};
|
||||
|
||||
@@ -153,7 +153,7 @@ in
|
||||
default = { };
|
||||
apply = lib.mergeAttrs {
|
||||
vfs-cache-mode = "full";
|
||||
cache-dir = "%C";
|
||||
cache-dir = "%C/rclone";
|
||||
};
|
||||
description = ''
|
||||
An attribute set of option values passed to `rclone mount`. To set
|
||||
|
||||
@@ -9,6 +9,7 @@ let
|
||||
attrValues
|
||||
concatStringsSep
|
||||
filter
|
||||
flatten
|
||||
length
|
||||
literalExpression
|
||||
mapAttrsToList
|
||||
@@ -918,7 +919,14 @@ in
|
||||
calendarAccounts = getAccountsForProfile name enabledCalendarAccountsWithId;
|
||||
contactAccounts = getAccountsForProfile name enabledContactAccountsWithId;
|
||||
|
||||
smtp = filter (a: a.smtp != null) emailAccounts;
|
||||
accountsSmtp = filter (a: a.smtp != null) emailAccounts;
|
||||
aliasesSmtp =
|
||||
let
|
||||
getAliasesWithSmtp = a: filter (al: builtins.isAttrs al && al.smtp != null) a.aliases;
|
||||
getAliasesWithId = a: map (al: al // { id = getId a al; }) (getAliasesWithSmtp a);
|
||||
in
|
||||
flatten (map getAliasesWithId emailAccounts);
|
||||
smtp = accountsSmtp ++ aliasesSmtp;
|
||||
|
||||
feedAccounts = addId (attrValues profile.feedAccounts);
|
||||
|
||||
|
||||
@@ -188,10 +188,13 @@ in
|
||||
hm-graphical-session = {
|
||||
Unit = {
|
||||
Description = "Home Manager X session";
|
||||
Requires = [
|
||||
"graphical-session-pre.target"
|
||||
"xdg-desktop-autostart.target"
|
||||
];
|
||||
Requires =
|
||||
let
|
||||
requires = lib.optional (config.xdg.autostart.enable) "xdg-desktop-autostart.target" ++ [
|
||||
"graphical-session-pre.target"
|
||||
];
|
||||
in
|
||||
requires;
|
||||
BindsTo = [
|
||||
"graphical-session.target"
|
||||
"tray.target"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"release": "25.11",
|
||||
"isReleaseBranch": false
|
||||
"isReleaseBranch": true
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
{
|
||||
description = "Tests of Home Manager for Nix";
|
||||
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||
|
||||
outputs =
|
||||
{ nixpkgs, ... }:
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
_module.args.pkgs = lib.mkForce realPkgs;
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ in
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ in
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
programs.command-not-found.enable = true;
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ in
|
||||
programs.nushell.enable = true;
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
accounts.calendar = {
|
||||
accounts.caldav = {
|
||||
accounts.mine = {
|
||||
pimsync.enable = true;
|
||||
remote = {
|
||||
passwordCommand = [
|
||||
@@ -22,6 +22,22 @@
|
||||
basePath = ".local/state/calendar";
|
||||
};
|
||||
|
||||
accounts.contact = {
|
||||
accounts.mine = {
|
||||
pimsync.enable = true;
|
||||
remote = {
|
||||
passwordCommand = [
|
||||
"pass"
|
||||
"carddav"
|
||||
];
|
||||
type = "carddav";
|
||||
url = "https://carddav.example.com";
|
||||
userName = "bob";
|
||||
};
|
||||
};
|
||||
basePath = ".local/state/contact";
|
||||
};
|
||||
|
||||
programs.pimsync = {
|
||||
enable = true;
|
||||
settings = [
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
storage caldav-local {
|
||||
fileext .ics
|
||||
path /home/hm-user/.local/state/calendar/caldav
|
||||
type vdir/icalendar
|
||||
}
|
||||
storage http-local {
|
||||
storage calendar-http-local {
|
||||
fileext .ics
|
||||
path /home/hm-user/.local/state/calendar/http
|
||||
type vdir/icalendar
|
||||
}
|
||||
storage caldav-remote {
|
||||
storage calendar-mine-local {
|
||||
fileext .ics
|
||||
path /home/hm-user/.local/state/calendar/mine
|
||||
type vdir/icalendar
|
||||
}
|
||||
storage calendar-http-remote {
|
||||
type webcal
|
||||
url https://example.com/calendar
|
||||
}
|
||||
storage calendar-mine-remote {
|
||||
type caldav
|
||||
url https://caldav.example.com
|
||||
username alice
|
||||
@@ -16,16 +20,29 @@ storage caldav-remote {
|
||||
cmd pass caldav
|
||||
}
|
||||
}
|
||||
storage http-remote {
|
||||
type webcal
|
||||
url https://example.com/calendar
|
||||
}
|
||||
pair calendar-caldav {
|
||||
storage_a caldav-local
|
||||
storage_b caldav-remote
|
||||
}
|
||||
pair calendar-http {
|
||||
storage_a http-local
|
||||
storage_b http-remote
|
||||
storage_a calendar-http-local
|
||||
storage_b calendar-http-remote
|
||||
}
|
||||
pair calendar-mine {
|
||||
storage_a calendar-mine-local
|
||||
storage_b calendar-mine-remote
|
||||
}
|
||||
storage contacts-mine-local {
|
||||
fileext .vcf
|
||||
path /home/hm-user/.local/state/contact/mine
|
||||
type vdir/vcard
|
||||
}
|
||||
storage contacts-mine-remote {
|
||||
type carddav
|
||||
url https://carddav.example.com
|
||||
username bob
|
||||
password {
|
||||
cmd pass carddav
|
||||
}
|
||||
}
|
||||
pair contacts-mine {
|
||||
storage_a contacts-mine-local
|
||||
storage_b contacts-mine-remote
|
||||
}
|
||||
status_path /test/dir
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ user_pref("mail.smtpserver.smtp_cda3f13b64c1db7d4b58ce07a31304a362d7dcaf14476bfa
|
||||
user_pref("mail.smtpserver.smtp_cda3f13b64c1db7d4b58ce07a31304a362d7dcaf14476bfabcca913ae41ada9f.port", 456);
|
||||
user_pref("mail.smtpserver.smtp_cda3f13b64c1db7d4b58ce07a31304a362d7dcaf14476bfabcca913ae41ada9f.try_ssl", 3);
|
||||
user_pref("mail.smtpserver.smtp_cda3f13b64c1db7d4b58ce07a31304a362d7dcaf14476bfabcca913ae41ada9f.username", "home.manager");
|
||||
user_pref("mail.smtpservers", "smtp_bcd3ace52bed41febb6cdc2fb1303aebaa573e0d993872da503950901bb6c6fc,smtp_cda3f13b64c1db7d4b58ce07a31304a362d7dcaf14476bfabcca913ae41ada9f");
|
||||
user_pref("mail.smtpservers", "smtp_bcd3ace52bed41febb6cdc2fb1303aebaa573e0d993872da503950901bb6c6fc,smtp_cda3f13b64c1db7d4b58ce07a31304a362d7dcaf14476bfabcca913ae41ada9f,smtp_b24ca86ede61ed219e6c87cfec261aae2c72785f812489ea943d114d1f39f55b");
|
||||
user_pref("privacy.donottrackheader.enabled", true);
|
||||
|
||||
user_pref("mail.html_compose", false);
|
||||
|
||||
@@ -120,7 +120,7 @@ user_pref("mail.smtpserver.smtp_cda3f13b64c1db7d4b58ce07a31304a362d7dcaf14476bfa
|
||||
user_pref("mail.smtpserver.smtp_cda3f13b64c1db7d4b58ce07a31304a362d7dcaf14476bfabcca913ae41ada9f.port", 456);
|
||||
user_pref("mail.smtpserver.smtp_cda3f13b64c1db7d4b58ce07a31304a362d7dcaf14476bfabcca913ae41ada9f.try_ssl", 3);
|
||||
user_pref("mail.smtpserver.smtp_cda3f13b64c1db7d4b58ce07a31304a362d7dcaf14476bfabcca913ae41ada9f.username", "home.manager");
|
||||
user_pref("mail.smtpservers", "smtp_bcd3ace52bed41febb6cdc2fb1303aebaa573e0d993872da503950901bb6c6fc,smtp_cda3f13b64c1db7d4b58ce07a31304a362d7dcaf14476bfabcca913ae41ada9f");
|
||||
user_pref("mail.smtpservers", "smtp_bcd3ace52bed41febb6cdc2fb1303aebaa573e0d993872da503950901bb6c6fc,smtp_cda3f13b64c1db7d4b58ce07a31304a362d7dcaf14476bfabcca913ae41ada9f,smtp_b24ca86ede61ed219e6c87cfec261aae2c72785f812489ea943d114d1f39f55b");
|
||||
user_pref("privacy.donottrackheader.enabled", true);
|
||||
|
||||
user_pref("mail.html_compose", false);
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
|
||||
xdg.dataFile."fish/home-manager/generated_completions".source = lib.mkForce (
|
||||
builtins.toFile "empty" ""
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user