diff --git a/.github/workflows/update-flake.yml b/.github/workflows/update-flake.yml
index 9df8060df..8ba9264d3 100644
--- a/.github/workflows/update-flake.yml
+++ b/.github/workflows/update-flake.yml
@@ -14,7 +14,7 @@ jobs:
- name: Install Nix
uses: cachix/install-nix-action@v27
- name: Update flake.lock
- uses: DeterminateSystems/update-flake-lock@v22
+ uses: DeterminateSystems/update-flake-lock@v23
with:
token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
pr-labels: dependencies
diff --git a/docs/home-manager-manual.nix b/docs/home-manager-manual.nix
index 34196d423..23b2d1e65 100644
--- a/docs/home-manager-manual.nix
+++ b/docs/home-manager-manual.nix
@@ -32,6 +32,8 @@ in stdenv.mkDerivation {
OPTIONS_JSON \
${home-manager-options.nix-darwin}/share/doc/nixos/options.json
+ cp ${./options.html} out/options.html
+
cp ${./static/style.css} out/style.css
cp -r ${./release-notes} release-notes
diff --git a/docs/manual/introduction.md b/docs/manual/introduction.md
new file mode 100644
index 000000000..ebdac5bd6
--- /dev/null
+++ b/docs/manual/introduction.md
@@ -0,0 +1,32 @@
+# Introduction to Home Manager {#ch-introduction}
+
+Home Manager is a [Nix](https://nix.dev/)-powered tool for reproducible management of the contents of users' home directories.
+This includes programs, configuration files, environment variables and, well… arbitrary files.
+The following example snippet of Nix code:
+
+```nix
+programs.git = {
+ enable = true;
+ userEmail = "joe@example.org";
+ userName = "joe";
+};
+```
+
+would make available to a user the `git` executable and man pages and a configuration file `~/.config/git/config`:
+
+```ini
+[user]
+ email = "joe@example.org"
+ name = "joe"
+```
+
+Since Home Manager is implemented in Nix, it provides several benefits:
+
+- Contents are reproducible — a home will be the exact same every time it is built, unless of course, an intentional change is made.
+ This also means you can have the exact same home on different hosts.
+- Significantly faster and more powerful than various backup strategies.
+- Unlike "dotfiles" repositories, Home Manager supports specifying programs, as well as their configurations.
+- Supported by , so that you don't have to build from source.
+- If you do want to build some programs from source, there is hardly a tool more useful than Nix for that, and the build instructions can be neatly integrated in your Home Manager usage.
+- Infinitely composable, so that values in different configuration files and build instructions can share a source of truth.
+- Connects you with the [most extensive](https://repology.org/repositories/statistics/total) and [most up-to-date](https://repology.org/repositories/statistics/newest) software package repository on earth, [Nixpkgs](https://github.com/NixOS/nixpkgs).
diff --git a/docs/manual/manual.md b/docs/manual/manual.md
index a1cfb1a0c..0f81642f7 100644
--- a/docs/manual/manual.md
+++ b/docs/manual/manual.md
@@ -8,6 +8,7 @@ preface.md
```
```{=include=} parts
+introduction.md
installation.md
usage.md
nix-flakes.md
diff --git a/docs/options.html b/docs/options.html
new file mode 100644
index 000000000..66c803fc9
--- /dev/null
+++ b/docs/options.html
@@ -0,0 +1,15 @@
+
+
+
+ Redirecting…
+
+
+
+
+
+
Redirecting…
+
+
+
diff --git a/flake.lock b/flake.lock
index 865072042..7282c6b45 100644
--- a/flake.lock
+++ b/flake.lock
@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
- "lastModified": 1716948383,
- "narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=",
+ "lastModified": 1725103162,
+ "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "ad57eef4ef0659193044870c731987a6df5cf56b",
+ "rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b",
"type": "github"
},
"original": {
diff --git a/home-manager/home-manager b/home-manager/home-manager
index 5bf796b47..ab4de5387 100644
--- a/home-manager/home-manager
+++ b/home-manager/home-manager
@@ -198,9 +198,19 @@ function setFlakeAttribute() {
;;
*)
local name="$USER"
+
+ local hostnameArray=()
+ # FQDN lookup can fail depending on the resolver.
+ local fqdn
+ fqdn="$(hostname -f 2> /dev/null)"
+ if [[ $? -eq 0 ]]; then
+ hostnameArray+=( "$USER@$fqdn" )
+ fi
# Check FQDN, long, and short hostnames; long first to preserve
# pre-existing behaviour in case both happen to be defined.
- for n in "$USER@$(hostname -f)" "$USER@$(hostname)" "$USER@$(hostname -s)"; do
+ hostnameArray+=( "$USER@$(hostname)" "$USER@$(hostname -s)" )
+
+ for n in "${hostnameArray[@]}"; do
if [[ "$(nix eval "$flake#homeConfigurations" --apply "x: x ? \"$n\"")" == "true" ]]; then
name="$n"
if [[ -v VERBOSE ]]; then
diff --git a/home-manager/po/ar.po b/home-manager/po/ar.po
new file mode 100644
index 000000000..ea67fd5ae
--- /dev/null
+++ b/home-manager/po/ar.po
@@ -0,0 +1,217 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Home Manager contributors
+# This file is distributed under the same license as the Home Manager package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Home Manager\n"
+"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
+"POT-Creation-Date: 2024-04-17 23:19+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
+"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
+
+#. translators: For example: "home-manager: missing argument for --cores"
+#: home-manager/home-manager:16
+msgid "%s: missing argument for %s"
+msgstr ""
+
+#: home-manager/home-manager:64
+msgid "No configuration file found at %s"
+msgstr ""
+
+#. translators: The first '%s' specifier will be replaced by either
+#. 'home.nix' or 'flake.nix'.
+#: home-manager/home-manager:81 home-manager/home-manager:85
+#: home-manager/home-manager:184
+msgid ""
+"Keeping your Home Manager %s in %s is deprecated,\n"
+"please move it to %s"
+msgstr ""
+
+#: home-manager/home-manager:92
+msgid "No configuration file found. Please create one at %s"
+msgstr ""
+
+#: home-manager/home-manager:107
+msgid "Home Manager not found at %s."
+msgstr ""
+
+#. translators: This message will be seen by very few users that likely are familiar with English. So feel free to leave this untranslated.
+#: home-manager/home-manager:115
+msgid ""
+"The fallback Home Manager path %s has been deprecated and a file/directory "
+"was found there."
+msgstr ""
+
+#. translators: This message will be seen by very few users that likely are familiar with English. So feel free to leave this untranslated.
+#: home-manager/home-manager:118
+msgid ""
+"To remove this warning, do one of the following.\n"
+"\n"
+"1. Explicitly tell Home Manager to use the path, for example by adding\n"
+"\n"
+" { programs.home-manager.path = \"%s\"; }\n"
+"\n"
+" to your configuration.\n"
+"\n"
+" If you import Home Manager directly, you can use the `path` parameter\n"
+"\n"
+" pkgs.callPackage /path/to/home-manager-package { path = \"%s\"; }\n"
+"\n"
+" when calling the Home Manager package.\n"
+"\n"
+"2. Remove the deprecated path.\n"
+"\n"
+" $ rm -r \"%s\""
+msgstr ""
+
+#: home-manager/home-manager:146
+msgid "Sanity checking Nix"
+msgstr ""
+
+#: home-manager/home-manager:166
+msgid "Could not find suitable profile directory, tried %s and %s"
+msgstr ""
+
+#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
+#: home-manager/home-manager:221
+msgid "Can't inspect options of a flake configuration"
+msgstr ""
+
+#: home-manager/home-manager:296 home-manager/home-manager:319
+#: home-manager/home-manager:1051
+msgid "%s: unknown option '%s'"
+msgstr ""
+
+#: home-manager/home-manager:301 home-manager/home-manager:1052
+msgid "Run '%s --help' for usage help"
+msgstr ""
+
+#: home-manager/home-manager:327 home-manager/home-manager:431
+msgid "The file %s already exists, leaving it unchanged..."
+msgstr ""
+
+#: home-manager/home-manager:329 home-manager/home-manager:433
+msgid "Creating %s..."
+msgstr ""
+
+#: home-manager/home-manager:475
+msgid "Creating initial Home Manager generation..."
+msgstr ""
+
+#. translators: The "%s" specifier will be replaced by a file path.
+#: home-manager/home-manager:480
+msgid ""
+"All done! The home-manager tool should now be installed and you can edit\n"
+"\n"
+" %s\n"
+"\n"
+"to configure Home Manager. Run 'man home-configuration.nix' to\n"
+"see all available options."
+msgstr ""
+
+#. translators: The "%s" specifier will be replaced by a URL.
+#: home-manager/home-manager:485
+msgid ""
+"Uh oh, the installation failed! Please create an issue at\n"
+"\n"
+" %s\n"
+"\n"
+"if the error seems to be the fault of Home Manager."
+msgstr ""
+
+#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
+#: home-manager/home-manager:496
+msgid "Can't instantiate a flake configuration"
+msgstr ""
+
+#: home-manager/home-manager:572
+msgid ""
+"There is %d unread and relevant news item.\n"
+"Read it by running the command \"%s news\"."
+msgid_plural ""
+"There are %d unread and relevant news items.\n"
+"Read them by running the command \"%s news\"."
+msgstr[0] ""
+msgstr[1] ""
+
+#: home-manager/home-manager:586
+msgid "Unknown \"news.display\" setting \"%s\"."
+msgstr ""
+
+#: home-manager/home-manager:594
+#, sh-format
+msgid "Please set the $EDITOR or $VISUAL environment variable"
+msgstr ""
+
+#: home-manager/home-manager:612
+msgid "Cannot run build in read-only directory"
+msgstr ""
+
+#: home-manager/home-manager:693
+msgid "No generation with ID %s"
+msgstr ""
+
+#: home-manager/home-manager:695
+msgid "Cannot remove the current generation %s"
+msgstr ""
+
+#: home-manager/home-manager:697
+msgid "Removing generation %s"
+msgstr ""
+
+#: home-manager/home-manager:718
+msgid "No generations to expire"
+msgstr ""
+
+#: home-manager/home-manager:729
+msgid "No home-manager packages seem to be installed."
+msgstr ""
+
+#: home-manager/home-manager:811
+msgid "Unknown argument %s"
+msgstr ""
+
+#: home-manager/home-manager:835
+msgid "This will remove Home Manager from your system."
+msgstr ""
+
+#: home-manager/home-manager:838
+msgid "This is a dry run, nothing will actually be uninstalled."
+msgstr ""
+
+#: home-manager/home-manager:842
+msgid "Really uninstall Home Manager?"
+msgstr ""
+
+#: home-manager/home-manager:848
+msgid "Switching to empty Home Manager configuration..."
+msgstr ""
+
+#: home-manager/home-manager:863
+msgid "Yay!"
+msgstr ""
+
+#: home-manager/home-manager:868
+msgid "Home Manager is uninstalled but your home.nix is left untouched."
+msgstr ""
+
+#: home-manager/home-manager:1091
+msgid "expire-generations expects one argument, got %d."
+msgstr ""
+
+#: home-manager/home-manager:1113
+msgid "Unknown command: %s"
+msgstr ""
+
+#: home-manager/install.nix:18
+msgid "This derivation is not buildable, please run it using nix-shell."
+msgstr ""
diff --git a/home-manager/po/ca.po b/home-manager/po/ca.po
index 4159c95fc..12992995a 100644
--- a/home-manager/po/ca.po
+++ b/home-manager/po/ca.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2024-04-17 23:19+0200\n"
-"PO-Revision-Date: 2024-04-05 11:01+0000\n"
-"Last-Translator: Leix b \n"
+"PO-Revision-Date: 2024-08-07 17:09+0000\n"
+"Last-Translator: Tomi Ockier \n"
"Language-Team: Catalan \n"
"Language: ca\n"
@@ -17,12 +17,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.5-dev\n"
+"X-Generator: Weblate 5.7-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
msgid "%s: missing argument for %s"
-msgstr ""
+msgstr "%: falta un argument per %s"
#: home-manager/home-manager:64
msgid "No configuration file found at %s"
diff --git a/home-manager/po/hu.po b/home-manager/po/hu.po
new file mode 100644
index 000000000..3cfab2551
--- /dev/null
+++ b/home-manager/po/hu.po
@@ -0,0 +1,258 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Home Manager contributors
+# This file is distributed under the same license as the Home Manager package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Home Manager\n"
+"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
+"POT-Creation-Date: 2024-04-17 23:19+0200\n"
+"PO-Revision-Date: 2024-09-02 17:09+0000\n"
+"Last-Translator: Ferenci Ákos \n"
+"Language-Team: Hungarian \n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 5.8-dev\n"
+
+#. translators: For example: "home-manager: missing argument for --cores"
+#: home-manager/home-manager:16
+msgid "%s: missing argument for %s"
+msgstr "%s: hiányzó érték erre: %s"
+
+#: home-manager/home-manager:64
+msgid "No configuration file found at %s"
+msgstr "Nincs konfigurációs fájl itt: %s"
+
+#. translators: The first '%s' specifier will be replaced by either
+#. 'home.nix' or 'flake.nix'.
+#: home-manager/home-manager:81 home-manager/home-manager:85
+#: home-manager/home-manager:184
+msgid ""
+"Keeping your Home Manager %s in %s is deprecated,\n"
+"please move it to %s"
+msgstr ""
+"A Home Manager %s %s elérési úton való tárolása elavult. Kérem helyezze át a "
+"%s elérési úthoz"
+
+#: home-manager/home-manager:92
+msgid "No configuration file found. Please create one at %s"
+msgstr ""
+"Nem található konfigurációs fájl. Kérem hozza létre a fájlt a %s elérési úton"
+
+#: home-manager/home-manager:107
+msgid "Home Manager not found at %s."
+msgstr "Home Manager nem található a %s elérési úton."
+
+#. translators: This message will be seen by very few users that likely are familiar with English. So feel free to leave this untranslated.
+#: home-manager/home-manager:115
+msgid ""
+"The fallback Home Manager path %s has been deprecated and a file/directory "
+"was found there."
+msgstr ""
+"A tartalék Home Manager fájlútvonal %s elavult és fájl/könyvtár található "
+"itt."
+
+#. translators: This message will be seen by very few users that likely are familiar with English. So feel free to leave this untranslated.
+#: home-manager/home-manager:118
+msgid ""
+"To remove this warning, do one of the following.\n"
+"\n"
+"1. Explicitly tell Home Manager to use the path, for example by adding\n"
+"\n"
+" { programs.home-manager.path = \"%s\"; }\n"
+"\n"
+" to your configuration.\n"
+"\n"
+" If you import Home Manager directly, you can use the `path` parameter\n"
+"\n"
+" pkgs.callPackage /path/to/home-manager-package { path = \"%s\"; }\n"
+"\n"
+" when calling the Home Manager package.\n"
+"\n"
+"2. Remove the deprecated path.\n"
+"\n"
+" $ rm -r \"%s\""
+msgstr ""
+"A felmerült hiba elhárítására a következőket tegye:\n"
+"\n"
+"1. Közvetlen adja át a Home Manager-nek a fájlútvonalat, pl.:\n"
+"\n"
+" { programs.home-manager.path = \"%s\"; }\n"
+"\n"
+" sor konfigurációhoz való hozzáadásával.\n"
+"\n"
+" Amennyiben a Home Manager-t közvetlen importolja, használhatja a 'path' "
+"paramétert\n"
+"\n"
+" pkgs.callPackage/path/tohome-manager-package{path = \"%s\"; }\n"
+" a Home Manager csomag meghívásakor.\n"
+"\n"
+" 2. Távolítsa el az elavult fájlútvonalat.\n"
+"\n"
+" $ rm -r \"$s\""
+
+#: home-manager/home-manager:146
+msgid "Sanity checking Nix"
+msgstr "Nix épségének ellenőrzése"
+
+#: home-manager/home-manager:166
+msgid "Could not find suitable profile directory, tried %s and %s"
+msgstr ""
+"Nem található megfelelő profil mappa, %s és %s útvonalak lettek kipróbálva."
+
+#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
+#: home-manager/home-manager:221
+msgid "Can't inspect options of a flake configuration"
+msgstr "Nem lehet a flake konfiguráció beállításait megtekinteni."
+
+#: home-manager/home-manager:296 home-manager/home-manager:319
+#: home-manager/home-manager:1051
+msgid "%s: unknown option '%s'"
+msgstr "%s: ismeretlen opció '%s'"
+
+#: home-manager/home-manager:301 home-manager/home-manager:1052
+msgid "Run '%s --help' for usage help"
+msgstr "Futtasa a '%s --help' parancsot a használattal kapcsolatos segítségért"
+
+#: home-manager/home-manager:327 home-manager/home-manager:431
+msgid "The file %s already exists, leaving it unchanged..."
+msgstr "A fájl %s már létezik és változatlan marad..."
+
+#: home-manager/home-manager:329 home-manager/home-manager:433
+msgid "Creating %s..."
+msgstr "%s létrehozása..."
+
+#: home-manager/home-manager:475
+msgid "Creating initial Home Manager generation..."
+msgstr "Kezdeti Home Manager generáció létrehozása..."
+
+#. translators: The "%s" specifier will be replaced by a file path.
+#: home-manager/home-manager:480
+msgid ""
+"All done! The home-manager tool should now be installed and you can edit\n"
+"\n"
+" %s\n"
+"\n"
+"to configure Home Manager. Run 'man home-configuration.nix' to\n"
+"see all available options."
+msgstr ""
+"Elkészült! A home-manager eszköz most már installálva van és a \n"
+"\n"
+" %s\n"
+"\n"
+"fájl szerkesztésével konfigurálhatja a Home Manager-t. \n"
+"Futtassa a 'man home-configuration.nix' parancsot az összes opció "
+"áttekintéséhez."
+
+#. translators: The "%s" specifier will be replaced by a URL.
+#: home-manager/home-manager:485
+msgid ""
+"Uh oh, the installation failed! Please create an issue at\n"
+"\n"
+" %s\n"
+"\n"
+"if the error seems to be the fault of Home Manager."
+msgstr ""
+"Uh oh, az installáció nem sikerült! Kérem készítsen egy jelentést erről a \n"
+"\n"
+" %s\n"
+"\n"
+"helyen amennyiben a hiba a Home Manager miatt lépett fel."
+
+#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
+#: home-manager/home-manager:496
+msgid "Can't instantiate a flake configuration"
+msgstr "Flake konfiguráció nem példányosítható"
+
+#: home-manager/home-manager:572
+msgid ""
+"There is %d unread and relevant news item.\n"
+"Read it by running the command \"%s news\"."
+msgid_plural ""
+"There are %d unread and relevant news items.\n"
+"Read them by running the command \"%s news\"."
+msgstr[0] ""
+"%d olvasatlan és releváns hírt kapott.\n"
+"Olvassa el a \"%s news\" futattásával."
+msgstr[1] ""
+"%d olvasatlan és releváns hírt kapott.\n"
+"Olvassa el őket a \"%s news\" futattásával."
+
+#: home-manager/home-manager:586
+msgid "Unknown \"news.display\" setting \"%s\"."
+msgstr "Ismeretlen \"news.display\" opció \"%s\"."
+
+#: home-manager/home-manager:594
+#, sh-format
+msgid "Please set the $EDITOR or $VISUAL environment variable"
+msgstr "Kérem állítása be az $EDITOR vagy a $VISUAL környezeti változókat."
+
+#: home-manager/home-manager:612
+msgid "Cannot run build in read-only directory"
+msgstr "Build futtatása nem lehetséges csak-olvasható könyvtárban"
+
+#: home-manager/home-manager:693
+msgid "No generation with ID %s"
+msgstr "Nem található generáció a következő ID-val: %"
+
+#: home-manager/home-manager:695
+msgid "Cannot remove the current generation %s"
+msgstr "A jelenlegi generáció %s nem eltávolítható"
+
+#: home-manager/home-manager:697
+msgid "Removing generation %s"
+msgstr "%s generáció eltávolítása"
+
+#: home-manager/home-manager:718
+msgid "No generations to expire"
+msgstr "Nincs lejárandó generáció"
+
+#: home-manager/home-manager:729
+msgid "No home-manager packages seem to be installed."
+msgstr "Nem található installált Home Manager csomag"
+
+#: home-manager/home-manager:811
+msgid "Unknown argument %s"
+msgstr "Ismeretlen argumentum %s"
+
+#: home-manager/home-manager:835
+msgid "This will remove Home Manager from your system."
+msgstr "Ez a művelet eltávolítja a Home Manager-t a rendszeréről."
+
+#: home-manager/home-manager:838
+msgid "This is a dry run, nothing will actually be uninstalled."
+msgstr "Ez egy üres járat, semmi nem lesz valójában eltávolítva."
+
+#: home-manager/home-manager:842
+msgid "Really uninstall Home Manager?"
+msgstr "Biztosan eltávolítja a Home Managert-t?"
+
+#: home-manager/home-manager:848
+msgid "Switching to empty Home Manager configuration..."
+msgstr "Átváltás üres Home Manager konfigurációra..."
+
+#: home-manager/home-manager:863
+msgid "Yay!"
+msgstr "Hurrá!"
+
+#: home-manager/home-manager:868
+msgid "Home Manager is uninstalled but your home.nix is left untouched."
+msgstr "Home Manager eltávolítva, de a home.nix fájl érintetlenül maradt."
+
+#: home-manager/home-manager:1091
+msgid "expire-generations expects one argument, got %d."
+msgstr ""
+
+#: home-manager/home-manager:1113
+msgid "Unknown command: %s"
+msgstr "Ismeretlen parancs: %s"
+
+#: home-manager/install.nix:18
+msgid "This derivation is not buildable, please run it using nix-shell."
+msgstr ""
+"Ez a származtatás nem építhető fel, kérlek futtasd nix-shell segítségével."
diff --git a/home-manager/po/pl.po b/home-manager/po/pl.po
index c8fa742f0..63eeed3f0 100644
--- a/home-manager/po/pl.po
+++ b/home-manager/po/pl.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2024-04-17 23:19+0200\n"
-"PO-Revision-Date: 2024-02-16 22:01+0000\n"
-"Last-Translator: Robert Helgesson \n"
+"PO-Revision-Date: 2024-06-17 09:46+0000\n"
+"Last-Translator: Mateusz P \n"
"Language-Team: Polish \n"
"Language: pl\n"
@@ -18,12 +18,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Weblate 5.4\n"
+"X-Generator: Weblate 5.6-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
msgid "%s: missing argument for %s"
-msgstr ""
+msgstr "%s: brakuje wartości dla %s"
#: home-manager/home-manager:64
msgid "No configuration file found at %s"
@@ -194,7 +194,7 @@ msgstr "Nieznane ustawienie „%s” „news.display”."
#: home-manager/home-manager:594
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
-msgstr ""
+msgstr "Proszę ustawić zmienną środowiskową $EDITOR lub $VISUAL"
#: home-manager/home-manager:612
msgid "Cannot run build in read-only directory"
diff --git a/home-manager/po/vi.po b/home-manager/po/vi.po
index 85baac38b..749de0218 100644
--- a/home-manager/po/vi.po
+++ b/home-manager/po/vi.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2024-04-17 23:19+0200\n"
-"PO-Revision-Date: 2024-06-02 08:12+0000\n"
+"PO-Revision-Date: 2024-08-01 04:09+0000\n"
"Last-Translator: goatastronaut0212 \n"
"Language-Team: Vietnamese \n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 5.6-dev\n"
+"X-Generator: Weblate 5.7-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -97,7 +97,7 @@ msgstr ""
#: home-manager/home-manager:146
msgid "Sanity checking Nix"
-msgstr "Kiểm tra độ hợp lệ của Nix"
+msgstr "Kiểm tra hợp lệ của Nix"
#: home-manager/home-manager:166
msgid "Could not find suitable profile directory, tried %s and %s"
@@ -175,11 +175,12 @@ msgid_plural ""
"There are %d unread and relevant news items.\n"
"Read them by running the command \"%s news\"."
msgstr[0] ""
-msgstr[1] ""
+"Có %d tin tức liên quan và chưa được đọc.\n"
+"Để đọc nó hãy chạy lệnh \"%s news\"."
#: home-manager/home-manager:586
msgid "Unknown \"news.display\" setting \"%s\"."
-msgstr ""
+msgstr "Không tồn tại \"news.display\" cấu hình \"%s\"."
#: home-manager/home-manager:594
#, sh-format
@@ -192,19 +193,19 @@ msgstr "Không thể chạy lệnh xây dựng trong thư mục chỉ cho phép
#: home-manager/home-manager:693
msgid "No generation with ID %s"
-msgstr ""
+msgstr "Không có thế hệ với ID %s"
#: home-manager/home-manager:695
msgid "Cannot remove the current generation %s"
-msgstr ""
+msgstr "Không thể xóa thể hệ hiện tại %s"
#: home-manager/home-manager:697
msgid "Removing generation %s"
-msgstr ""
+msgstr "Đang xóa thế hệ %s"
#: home-manager/home-manager:718
msgid "No generations to expire"
-msgstr ""
+msgstr "Không có bất kỳ thế hệ nào hết hạn"
#: home-manager/home-manager:729
msgid "No home-manager packages seem to be installed."
@@ -237,10 +238,12 @@ msgstr "Tuyệt vời!"
#: home-manager/home-manager:868
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
+"Home Manager đã được gỡ cài đặt nhưng home.nix của bạn sẽ được giữ nguyên "
+"vẹn."
#: home-manager/home-manager:1091
msgid "expire-generations expects one argument, got %d."
-msgstr ""
+msgstr "expire-generations kỳ vọng 1 đối số, có %d."
#: home-manager/home-manager:1113
msgid "Unknown command: %s"
diff --git a/modules/config/home-cursor.nix b/modules/config/home-cursor.nix
index c696908d5..cb9a2ab28 100644
--- a/modules/config/home-cursor.nix
+++ b/modules/config/home-cursor.nix
@@ -67,7 +67,7 @@ let
};
in {
- meta.maintainers = [ maintainers.polykernel maintainers.league ];
+ meta.maintainers = [ maintainers.league ];
imports = [
(mkAliasOptionModule [ "xsession" "pointerCursor" "package" ] [
diff --git a/modules/lib/maintainers.nix b/modules/lib/maintainers.nix
index b5175a875..9793d5c3f 100644
--- a/modules/lib/maintainers.nix
+++ b/modules/lib/maintainers.nix
@@ -49,6 +49,12 @@
github = "bertof";
githubId = 9915675;
};
+ bricked = {
+ name = "Bricked";
+ email = "hello@bricked.dev";
+ github = "brckd";
+ githubId = 92804487;
+ };
CarlosLoboxyz = {
name = "Carlos Lobo";
email = "86011416+CarlosLoboxyz@users.noreply.github.com";
@@ -113,6 +119,13 @@
github = "jack5079";
githubId = 29169102;
};
+ janik = {
+ name = "Janik";
+ email = "janik@aq0.de";
+ matrix = "@janik0:matrix.org";
+ github = "Janik-Haag";
+ githubId = 80165193;
+ };
jkarlson = {
email = "jekarlson@gmail.com";
github = "jkarlson";
@@ -173,6 +186,13 @@
github = "iosmanthus";
githubId = 16307070;
};
+ jonringer = {
+ email = "jonringer117@gmail.com";
+ matrix = "@jonringer:matrix.org";
+ github = "jonringer";
+ githubId = 7673602;
+ name = "Jonathan Ringer";
+ };
kalhauge = {
name = "Christian Gram Kalhauge";
email = "kalhauge@users.noreply.github.com";
@@ -201,6 +221,19 @@
github = "kubukoz";
githubId = 894884;
};
+ lheckemann = {
+ name = "Linus Heckemann";
+ email = "git@sphalerite.org";
+ github = "lheckemann";
+ githubId = 341954;
+ };
+ lilyinstarlight = {
+ email = "lily@lily.flowers";
+ matrix = "@lily:lily.flowers";
+ github = "lilyinstarlight";
+ githubId = 298109;
+ name = "Lily Foster";
+ };
loicreynier = {
name = "Loïc Reynier";
email = "loic@loireynier.fr";
diff --git a/modules/misc/gtk.nix b/modules/misc/gtk.nix
index 6454eb2ae..e1ae250fd 100644
--- a/modules/misc/gtk.nix
+++ b/modules/misc/gtk.nix
@@ -221,10 +221,9 @@ in {
config = mkIf cfg.enable (let
gtkIni = optionalAttrs (cfg.font != null) {
- gtk-font-name = let
- fontSize =
- optionalString (cfg.font.size != null) " ${toString cfg.font.size}";
- in "${cfg.font.name}" + fontSize;
+ gtk-font-name =
+ let fontSize = if cfg.font.size != null then cfg.font.size else 10;
+ in "${cfg.font.name} ${toString fontSize}";
} // optionalAttrs (cfg.theme != null) { gtk-theme-name = cfg.theme.name; }
// optionalAttrs (cfg.iconTheme != null) {
gtk-icon-theme-name = cfg.iconTheme.name;
@@ -245,10 +244,9 @@ in {
'' + cfg4.extraCss;
dconfIni = optionalAttrs (cfg.font != null) {
- font-name = let
- fontSize =
- optionalString (cfg.font.size != null) " ${toString cfg.font.size}";
- in "${cfg.font.name}" + fontSize;
+ font-name =
+ let fontSize = if cfg.font.size != null then cfg.font.size else 10;
+ in "${cfg.font.name} ${toString fontSize}";
} // optionalAttrs (cfg.theme != null) { gtk-theme = cfg.theme.name; }
// optionalAttrs (cfg.iconTheme != null) {
icon-theme = cfg.iconTheme.name;
diff --git a/modules/misc/news.nix b/modules/misc/news.nix
index c125db1c8..a71557885 100644
--- a/modules/misc/news.nix
+++ b/modules/misc/news.nix
@@ -1673,6 +1673,53 @@ in {
Please migrate to the new option to suppress the generated warning.
'';
}
+
+ {
+ time = "2024-05-25T14:36:03+00:00";
+ message = ''
+ Multiple new options are available:
+
+ - 'nix.nixPath'
+ - 'nix.keepOldNixPath'
+ - 'nix.channels'
+ '';
+ }
+
+ {
+ time = "2024-06-22T05:49:48+00:00";
+ condition = hostPlatform.isLinux;
+ message = ''
+ A new module is available: 'services.blanket'.
+
+ Blanket is a program you can use to improve your focus and increase
+ your productivity by listening to different sounds. See
+ https://github.com/rafaelmardojai/blanket for more.
+ '';
+ }
+
+ {
+ time = "2024-06-26T07:07:17+00:00";
+ condition = with config.programs.yazi;
+ enable && (enableBashIntegration || enableZshIntegration
+ || enableFishIntegration || enableNushellIntegration);
+ message = ''
+ Yazi's shell integration wrappers have been renamed from 'ya' to 'yy'.
+
+ A new option `programs.yazi.shellWrapperName` is also available that
+ allows you to override this name.
+ '';
+ }
+
+ {
+ time = "2024-06-28T14:18:16+00:00";
+ condition = hostPlatform.isLinux;
+ message = ''
+ A new module is available: 'services.glance'.
+
+ Glance is a self-hosted dashboard that puts all your feeds in
+ one place. See https://github.com/glanceapp/glance for more.
+ '';
+ }
];
};
}
diff --git a/modules/misc/nix.nix b/modules/misc/nix.nix
index a4456946e..652d3eb89 100644
--- a/modules/misc/nix.nix
+++ b/modules/misc/nix.nix
@@ -1,15 +1,40 @@
{ config, lib, pkgs, ... }:
-with lib;
-
let
+ inherit (lib)
+ boolToString concatStringsSep escape floatToString getVersion isBool
+ isConvertibleWithToString isDerivation isFloat isInt isList isString
+ literalExpression maintainers mapAttrsToList mkDefault mkEnableOption mkIf
+ mkMerge mkOption optionalString toPretty types versionAtLeast;
+
cfg = config.nix;
nixPackage = cfg.package;
isNixAtLeast = versionAtLeast (getVersion nixPackage);
+ nixPath = concatStringsSep ":" cfg.nixPath;
+
+ useXdg = config.nix.enable
+ && (config.nix.settings.use-xdg-base-directories or false);
+ defexprDir = if useXdg then
+ "${config.xdg.stateHome}/nix/defexpr"
+ else
+ "${config.home.homeDirectory}/.nix-defexpr";
+
+ # The deploy path for declarative channels. The directory name is prefixed
+ # with a number to make it easier for files in defexprDir to control the order
+ # they'll be read relative to each other.
+ channelPath = "${defexprDir}/50-home-manager";
+
+ channelsDrv = let
+ mkEntry = name: drv: {
+ inherit name;
+ path = toString drv;
+ };
+ in pkgs.linkFarm "channels" (lib.mapAttrsToList mkEntry cfg.channels);
+
nixConf = assert isNixAtLeast "2.2";
let
@@ -102,6 +127,47 @@ in {
'';
};
+ nixPath = mkOption {
+ type = types.listOf types.str;
+ default = [ ];
+ example = [
+ "$HOME/.nix-defexpr/channels"
+ "darwin-config=$HOME/.config/nixpkgs/darwin-configuration.nix"
+ ];
+ description = ''
+ Adds new directories to the Nix expression search path.
+
+ Used by Nix when looking up paths in angular brackets
+ (e.g. ``).
+ '';
+ };
+
+ keepOldNixPath = mkOption {
+ type = types.bool;
+ default = true;
+ example = false;
+ description = ''
+ Whether {option}`nix.nixPath` should keep the previously set values in
+ {env}`NIX_PATH`.
+ '';
+ };
+
+ channels = lib.mkOption {
+ type = with lib.types; attrsOf package;
+ default = { };
+ example = lib.literalExpression "{ inherit nixpkgs; }";
+ description = ''
+ A declarative alternative to Nix channels. Whereas with stock channels,
+ you would register URLs and fetch them into the Nix store with
+ {manpage}`nix-channel(1)`, this option allows you to register the store
+ path directly. One particularly useful example is registering flake
+ inputs as channels.
+
+ This option can coexist with stock Nix channels. If the same channel is
+ defined in both, this option takes precedence.
+ '';
+ };
+
registry = mkOption {
type = types.attrsOf (types.submodule (let
inputAttrs = types.attrsOf
@@ -210,6 +276,19 @@ in {
};
config = mkIf cfg.enable (mkMerge [
+ (mkIf (cfg.nixPath != [ ] && !cfg.keepOldNixPath) {
+ home.sessionVariables.NIX_PATH = "${nixPath}";
+ })
+
+ (mkIf (cfg.nixPath != [ ] && cfg.keepOldNixPath) {
+ home.sessionVariables.NIX_PATH = "${nixPath}\${NIX_PATH:+:$NIX_PATH}";
+ })
+
+ (lib.mkIf (cfg.channels != { }) {
+ nix.nixPath = [ channelPath ];
+ home.file."${channelPath}".source = channelsDrv;
+ })
+
(mkIf (cfg.registry != { }) {
xdg.configFile."nix/registry.json".source =
jsonFormat.generate "registry.json" {
@@ -232,5 +311,5 @@ in {
})
]);
- meta.maintainers = [ maintainers.polykernel ];
+ meta.maintainers = [ ];
}
diff --git a/modules/misc/submodule-support.nix b/modules/misc/submodule-support.nix
index 400e234cb..82fbc0a30 100644
--- a/modules/misc/submodule-support.nix
+++ b/modules/misc/submodule-support.nix
@@ -29,4 +29,19 @@ with lib;
'';
};
};
+
+ config = {
+ # To make it easier for the end user to override the values in the
+ # configuration depending on the installation method, we set default values
+ # for the arguments that are defined in the NixOS/nix-darwin modules.
+ #
+ # Without these defaults, these attributes would simply not exist, and the
+ # module system can not inform modules about their non-existence; see
+ # https://github.com/NixOS/nixpkgs/issues/311709#issuecomment-2110861842
+ _module.args = {
+ osConfig = mkDefault null;
+ nixosConfig = mkDefault null;
+ darwinConfig = mkDefault null;
+ };
+ };
}
diff --git a/modules/misc/xdg-desktop-entries.nix b/modules/misc/xdg-desktop-entries.nix
index 7ec7fa568..1aab6ffe7 100644
--- a/modules/misc/xdg-desktop-entries.nix
+++ b/modules/misc/xdg-desktop-entries.nix
@@ -51,7 +51,7 @@ let
terminal = mkOption {
description = "Whether the program runs in a terminal window.";
- type = types.bool;
+ type = types.nullOr types.bool;
default = false;
};
diff --git a/modules/misc/xdg.nix b/modules/misc/xdg.nix
index 23cbe72a2..a47a33f56 100644
--- a/modules/misc/xdg.nix
+++ b/modules/misc/xdg.nix
@@ -70,6 +70,16 @@ in {
'';
};
+ stateFile = mkOption {
+ type = fileType "xdg.stateFile" "xdg.stateHome"
+ cfg.stateHome;
+ default = { };
+ description = ''
+ Attribute set of files to link into the user's XDG
+ state home.
+ '';
+ };
+
stateHome = mkOption {
type = types.path;
defaultText = "~/.local/state";
@@ -122,6 +132,8 @@ in {
cfg.configFile)
(mapAttrs' (name: file: nameValuePair "${cfg.dataHome}/${name}" file)
cfg.dataFile)
+ (mapAttrs' (name: file: nameValuePair "${cfg.stateHome}/${name}" file)
+ cfg.stateFile)
{ "${cfg.cacheHome}/.keep".text = ""; }
];
}
diff --git a/modules/modules.nix b/modules/modules.nix
index 4e1f0e201..dbeebfbf7 100644
--- a/modules/modules.nix
+++ b/modules/modules.nix
@@ -274,6 +274,7 @@ let
./services/barrier.nix
./services/batsignal.nix
./services/betterlockscreen.nix
+ ./services/blanket.nix
./services/blueman-applet.nix
./services/borgmatic.nix
./services/cachix-agent.nix
@@ -300,6 +301,7 @@ let
./services/fusuma.nix
./services/getmail.nix
./services/git-sync.nix
+ ./services/glance.nix
./services/gnome-keyring.nix
./services/gpg-agent.nix
./services/grobi.nix
diff --git a/modules/po/ar.po b/modules/po/ar.po
new file mode 100644
index 000000000..c2469fa54
--- /dev/null
+++ b/modules/po/ar.po
@@ -0,0 +1,113 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Home Manager contributors
+# This file is distributed under the same license as the Home Manager Modules package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Home Manager Modules\n"
+"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
+"POT-Creation-Date: 2024-04-17 23:19+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: modules/files.nix:191
+msgid "Creating home file links in %s"
+msgstr ""
+
+#: modules/files.nix:204
+msgid "Cleaning up orphan links from %s"
+msgstr ""
+
+#: modules/files.nix:220
+msgid "Creating profile generation %s"
+msgstr ""
+
+#: modules/files.nix:237
+msgid "No change so reusing latest profile generation %s"
+msgstr ""
+
+#: modules/home-environment.nix:634
+msgid ""
+"Oops, Nix failed to install your new Home Manager profile!\n"
+"\n"
+"Perhaps there is a conflict with a package that was installed using\n"
+"\"%s\"? Try running\n"
+"\n"
+" %s\n"
+"\n"
+"and if there is a conflicting package you can remove it with\n"
+"\n"
+" %s\n"
+"\n"
+"Then try activating your Home Manager configuration again."
+msgstr ""
+
+#: modules/home-environment.nix:667
+msgid "Activating %s"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:22
+msgid "Migrating profile from %s to %s"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:54
+msgid "Could not find suitable profile directory, tried %s and %s"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:83
+msgid "Sanity checking oldGenNum and oldGenPath"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:86
+msgid ""
+"The previous generation number and path are in conflict! These\n"
+"must be either both empty or both set but are now set to\n"
+"\n"
+" '%s' and '%s'\n"
+"\n"
+"If you don't mind losing previous profile generations then\n"
+"the easiest solution is probably to run\n"
+"\n"
+" rm %s/home-manager*\n"
+" rm %s/current-home\n"
+"\n"
+"and trying home-manager switch again. Good luck!"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:127
+msgid "Error: USER is set to \"%s\" but we expect \"%s\""
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:136
+msgid "Error: HOME is set to \"%s\" but we expect \"%s\""
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:153
+msgid "Starting Home Manager activation"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:157
+msgid "Sanity checking Nix"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:170
+msgid "This is a dry run"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:174
+msgid "This is a live run"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:180
+msgid "Using Nix version: %s"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:183
+msgid "Activation variables:"
+msgstr ""
diff --git a/modules/po/hu.po b/modules/po/hu.po
new file mode 100644
index 000000000..2b013ccc1
--- /dev/null
+++ b/modules/po/hu.po
@@ -0,0 +1,117 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Home Manager contributors
+# This file is distributed under the same license as the Home Manager Modules package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Home Manager Modules\n"
+"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
+"POT-Creation-Date: 2024-04-17 23:19+0200\n"
+"PO-Revision-Date: 2024-09-02 17:09+0000\n"
+"Last-Translator: Ferenci Ákos \n"
+"Language-Team: Hungarian \n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 5.8-dev\n"
+
+#: modules/files.nix:191
+msgid "Creating home file links in %s"
+msgstr "Hivatkozások létrehozása itt: %s"
+
+#: modules/files.nix:204
+msgid "Cleaning up orphan links from %s"
+msgstr "Árva hivatkozások kitakarítása innen: %s"
+
+#: modules/files.nix:220
+msgid "Creating profile generation %s"
+msgstr "%s. profil generáció létrehozása"
+
+#: modules/files.nix:237
+msgid "No change so reusing latest profile generation %s"
+msgstr "Nincs változás, legutóbbi %s. generáció lesz használva"
+
+#: modules/home-environment.nix:634
+msgid ""
+"Oops, Nix failed to install your new Home Manager profile!\n"
+"\n"
+"Perhaps there is a conflict with a package that was installed using\n"
+"\"%s\"? Try running\n"
+"\n"
+" %s\n"
+"\n"
+"and if there is a conflicting package you can remove it with\n"
+"\n"
+" %s\n"
+"\n"
+"Then try activating your Home Manager configuration again."
+msgstr ""
+
+#: modules/home-environment.nix:667
+msgid "Activating %s"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:22
+msgid "Migrating profile from %s to %s"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:54
+msgid "Could not find suitable profile directory, tried %s and %s"
+msgstr ""
+"Nem található megfelelő profil mappa, %s és %s útvonalak lettek kipróbálva."
+
+#: modules/lib-bash/activation-init.sh:83
+msgid "Sanity checking oldGenNum and oldGenPath"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:86
+msgid ""
+"The previous generation number and path are in conflict! These\n"
+"must be either both empty or both set but are now set to\n"
+"\n"
+" '%s' and '%s'\n"
+"\n"
+"If you don't mind losing previous profile generations then\n"
+"the easiest solution is probably to run\n"
+"\n"
+" rm %s/home-manager*\n"
+" rm %s/current-home\n"
+"\n"
+"and trying home-manager switch again. Good luck!"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:127
+msgid "Error: USER is set to \"%s\" but we expect \"%s\""
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:136
+msgid "Error: HOME is set to \"%s\" but we expect \"%s\""
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:153
+msgid "Starting Home Manager activation"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:157
+msgid "Sanity checking Nix"
+msgstr "Nix épségének ellenőrzése"
+
+#: modules/lib-bash/activation-init.sh:170
+msgid "This is a dry run"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:174
+msgid "This is a live run"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:180
+msgid "Using Nix version: %s"
+msgstr ""
+
+#: modules/lib-bash/activation-init.sh:183
+msgid "Activation variables:"
+msgstr ""
diff --git a/modules/po/pl.po b/modules/po/pl.po
index 0e88a781a..6ce24f50f 100644
--- a/modules/po/pl.po
+++ b/modules/po/pl.po
@@ -8,17 +8,17 @@ msgstr ""
"Project-Id-Version: Home Manager Modules\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2024-04-17 23:19+0200\n"
-"PO-Revision-Date: 2023-05-03 19:48+0000\n"
-"Last-Translator: Eryk Michalak \n"
+"PO-Revision-Date: 2024-06-17 09:46+0000\n"
+"Last-Translator: Mateusz P \n"
"Language-Team: Polish \n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.18-dev\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+"X-Generator: Weblate 5.6-dev\n"
#: modules/files.nix:191
msgid "Creating home file links in %s"
@@ -112,10 +112,14 @@ msgstr ""
#: modules/lib-bash/activation-init.sh:127
msgid "Error: USER is set to \"%s\" but we expect \"%s\""
msgstr ""
+"Błąd: Właściwość USER ma wartość \"%s\" podczas gdy spodziewana wartość to \""
+"%s\""
#: modules/lib-bash/activation-init.sh:136
msgid "Error: HOME is set to \"%s\" but we expect \"%s\""
msgstr ""
+"Błąd: Właściwość HOME ma wartość \"%s\" podczas gdy spodziewana wartość to \""
+"%s\""
#: modules/lib-bash/activation-init.sh:153
msgid "Starting Home Manager activation"
diff --git a/modules/po/vi.po b/modules/po/vi.po
index 09b510df8..827e32066 100644
--- a/modules/po/vi.po
+++ b/modules/po/vi.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Home Manager Modules\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2024-04-17 23:19+0200\n"
-"PO-Revision-Date: 2024-06-02 08:12+0000\n"
+"PO-Revision-Date: 2024-08-01 04:09+0000\n"
"Last-Translator: goatastronaut0212 \n"
"Language-Team: Vietnamese \n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 5.6-dev\n"
+"X-Generator: Weblate 5.7-dev\n"
#: modules/files.nix:191
msgid "Creating home file links in %s"
@@ -53,11 +53,11 @@ msgstr ""
#: modules/home-environment.nix:667
msgid "Activating %s"
-msgstr ""
+msgstr "Đang khởi động %s"
#: modules/lib-bash/activation-init.sh:22
msgid "Migrating profile from %s to %s"
-msgstr ""
+msgstr "Chuyển đổi hồ sơ từ %s tới %s"
#: modules/lib-bash/activation-init.sh:54
msgid "Could not find suitable profile directory, tried %s and %s"
@@ -85,11 +85,11 @@ msgstr ""
#: modules/lib-bash/activation-init.sh:127
msgid "Error: USER is set to \"%s\" but we expect \"%s\""
-msgstr ""
+msgstr "Lỗi: USER được đặt thành \"%s\" nhưng chúng tôi kỳ vọng \"%s\""
#: modules/lib-bash/activation-init.sh:136
msgid "Error: HOME is set to \"%s\" but we expect \"%s\""
-msgstr ""
+msgstr "Lỗi: HOME được đặt thành \"%s\" nhưng chúng tôi kỳ vọng \"%s\""
#: modules/lib-bash/activation-init.sh:153
msgid "Starting Home Manager activation"
@@ -97,7 +97,7 @@ msgstr ""
#: modules/lib-bash/activation-init.sh:157
msgid "Sanity checking Nix"
-msgstr "Kiểm tra độ hợp lệ của Nix"
+msgstr "Kiểm tra hợp lệ của Nix"
#: modules/lib-bash/activation-init.sh:170
msgid "This is a dry run"
diff --git a/modules/programs/atuin.nix b/modules/programs/atuin.nix
index bd907ac03..a27bcf860 100644
--- a/modules/programs/atuin.nix
+++ b/modules/programs/atuin.nix
@@ -110,18 +110,18 @@ in {
programs.bash.initExtra = mkIf cfg.enableBashIntegration ''
if [[ :$SHELLOPTS: =~ :(vi|emacs): ]]; then
source "${pkgs.bash-preexec}/share/bash/bash-preexec.sh"
- eval "$(${cfg.package}/bin/atuin init bash ${flagsStr})"
+ eval "$(${lib.getExe cfg.package} init bash ${flagsStr})"
fi
'';
programs.zsh.initExtra = mkIf cfg.enableZshIntegration ''
if [[ $options[zle] = on ]]; then
- eval "$(${cfg.package}/bin/atuin init zsh ${flagsStr})"
+ eval "$(${lib.getExe cfg.package} init zsh ${flagsStr})"
fi
'';
programs.fish.interactiveShellInit = mkIf cfg.enableFishIntegration ''
- ${cfg.package}/bin/atuin init fish ${flagsStr} | source
+ ${lib.getExe cfg.package} init fish ${flagsStr} | source
'';
programs.nushell = mkIf cfg.enableNushellIntegration {
@@ -130,7 +130,9 @@ in {
if not ($atuin_cache | path exists) {
mkdir $atuin_cache
}
- ${cfg.package}/bin/atuin init nu ${flagsStr} | save --force ${config.xdg.cacheHome}/atuin/init.nu
+ ${
+ lib.getExe cfg.package
+ } init nu ${flagsStr} | save --force ${config.xdg.cacheHome}/atuin/init.nu
'';
extraConfig = ''
source ${config.xdg.cacheHome}/atuin/init.nu
diff --git a/modules/programs/bash.nix b/modules/programs/bash.nix
index 5a328ecda..3a367b9e7 100644
--- a/modules/programs/bash.nix
+++ b/modules/programs/bash.nix
@@ -29,6 +29,8 @@ in {
programs.bash = {
enable = mkEnableOption "GNU Bourne-Again SHell";
+ package = mkPackageOption pkgs "bash" { default = "bashInteractive"; };
+
enableCompletion = mkOption {
type = types.bool;
default = true;
@@ -190,7 +192,7 @@ in {
HISTIGNORE = escapeShellArg (concatStringsSep ":" cfg.historyIgnore);
}));
in mkIf cfg.enable {
- home.packages = [ pkgs.bashInteractive ];
+ home.packages = [ cfg.package ];
home.file.".bash_profile".source = writeBashScript "bash_profile" ''
# include .profile if it exists
diff --git a/modules/programs/bottom.nix b/modules/programs/bottom.nix
index 810307b14..fd18fe0db 100644
--- a/modules/programs/bottom.nix
+++ b/modules/programs/bottom.nix
@@ -56,5 +56,5 @@ in {
};
};
- meta.maintainers = [ maintainers.polykernel ];
+ meta.maintainers = [ ];
}
diff --git a/modules/programs/direnv.nix b/modules/programs/direnv.nix
index add2c8fca..4a7636705 100644
--- a/modules/programs/direnv.nix
+++ b/modules/programs/direnv.nix
@@ -95,6 +95,7 @@ in {
package = mkPackageOption pkgs "nix-direnv" { };
};
+ silent = mkEnableOption "silent mode, that is, disabling direnv logging";
};
config = mkIf cfg.enable {
@@ -163,5 +164,7 @@ in {
}
)
'');
+
+ home.sessionVariables = lib.mkIf cfg.silent { DIRENV_LOG_FORMAT = ""; };
};
}
diff --git a/modules/programs/eww.nix b/modules/programs/eww.nix
index 3d178f942..75a109226 100644
--- a/modules/programs/eww.nix
+++ b/modules/programs/eww.nix
@@ -5,6 +5,7 @@ with lib;
let
cfg = config.programs.eww;
+ ewwCmd = "${cfg.package}/bin/eww";
in {
meta.maintainers = [ hm.maintainers.mainrs ];
@@ -30,10 +31,40 @@ in {
{file}`$XDG_CONFIG_HOME/eww`.
'';
};
+
+ enableBashIntegration = mkEnableOption "Bash integration" // {
+ default = true;
+ };
+
+ enableZshIntegration = mkEnableOption "Zsh integration" // {
+ default = true;
+ };
+
+ enableFishIntegration = mkEnableOption "Fish integration" // {
+ default = true;
+ };
};
config = mkIf cfg.enable {
home.packages = [ cfg.package ];
xdg.configFile."eww".source = cfg.configDir;
+
+ programs.bash.initExtra = mkIf cfg.enableBashIntegration ''
+ if [[ $TERM != "dumb" ]]; then
+ eval "$(${ewwCmd} shell-completions --shell bash)"
+ fi
+ '';
+
+ programs.zsh.initExtra = mkIf cfg.enableZshIntegration ''
+ if [[ $TERM != "dumb" ]]; then
+ eval "$(${ewwCmd} shell-completions --shell zsh)"
+ fi
+ '';
+
+ programs.fish.interactiveShellInit = mkIf cfg.enableFishIntegration ''
+ if test "$TERM" != "dumb"
+ eval "$(${ewwCmd} shell-completions --shell fish)"
+ end
+ '';
};
}
diff --git a/modules/programs/fastfetch.nix b/modules/programs/fastfetch.nix
index 32021611d..55a932f9a 100644
--- a/modules/programs/fastfetch.nix
+++ b/modules/programs/fastfetch.nix
@@ -26,7 +26,9 @@ in {
};
};
display = {
- binaryPrefix = "si";
+ size = {
+ binaryPrefix = "si";
+ };
color = "blue";
separator = " ";
};
diff --git a/modules/programs/firefox.nix b/modules/programs/firefox.nix
index 1370d4c28..ac85990ff 100644
--- a/modules/programs/firefox.nix
+++ b/modules/programs/firefox.nix
@@ -1,945 +1,51 @@
-{ config, lib, pkgs, ... }:
+{ lib, ... }:
with lib;
let
- inherit (pkgs.stdenv.hostPlatform) isDarwin;
+ modulePath = [ "programs" "firefox" ];
- cfg = config.programs.firefox;
+ moduleName = concatStringsSep "." modulePath;
- jsonFormat = pkgs.formats.json { };
-
- mozillaConfigPath =
- if isDarwin then "Library/Application Support/Mozilla" else ".mozilla";
-
- firefoxConfigPath = if isDarwin then
- "Library/Application Support/Firefox"
- else
- "${mozillaConfigPath}/firefox";
-
- profilesPath =
- if isDarwin then "${firefoxConfigPath}/Profiles" else firefoxConfigPath;
-
- nativeMessagingHostsPath = if isDarwin then
- "${mozillaConfigPath}/NativeMessagingHosts"
- else
- "${mozillaConfigPath}/native-messaging-hosts";
-
- nativeMessagingHostsJoined = pkgs.symlinkJoin {
- name = "ff_native-messaging-hosts";
- paths = [
- # Link a .keep file to keep the directory around
- (pkgs.writeTextDir "lib/mozilla/native-messaging-hosts/.keep" "")
- # Link package configured native messaging hosts (entire Firefox actually)
- cfg.finalPackage
- ]
- # Link user configured native messaging hosts
- ++ cfg.nativeMessagingHosts;
- };
-
- # The extensions path shared by all profiles; will not be supported
- # by future Firefox versions.
- extensionPath = "extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}";
-
- profiles = flip mapAttrs' cfg.profiles (_: profile:
- nameValuePair "Profile${toString profile.id}" {
- Name = profile.name;
- Path = if isDarwin then "Profiles/${profile.path}" else profile.path;
- IsRelative = 1;
- Default = if profile.isDefault then 1 else 0;
- }) // {
- General = { StartWithLastProfile = 1; };
- };
-
- profilesIni = generators.toINI { } profiles;
-
- userPrefValue = pref:
- builtins.toJSON (if isBool pref || isInt pref || isString pref then
- pref
- else
- builtins.toJSON pref);
-
- mkUserJs = prefs: extraPrefs: bookmarks:
- let
- prefs' = lib.optionalAttrs ([ ] != bookmarks) {
- "browser.bookmarks.file" = toString (firefoxBookmarksFile bookmarks);
- "browser.places.importBookmarksHTML" = true;
- } // prefs;
- in ''
- // Generated by Home Manager.
-
- ${concatStrings (mapAttrsToList (name: value: ''
- user_pref("${name}", ${userPrefValue value});
- '') prefs')}
-
- ${extraPrefs}
- '';
-
- mkContainersJson = containers:
- let
- containerToIdentity = _: container: {
- userContextId = container.id;
- name = container.name;
- icon = container.icon;
- color = container.color;
- public = true;
- };
- in ''
- ${builtins.toJSON {
- version = 4;
- lastUserContextId =
- elemAt (mapAttrsToList (_: container: container.id) containers) 0;
- identities = mapAttrsToList containerToIdentity containers ++ [
- {
- userContextId = 4294967294; # 2^32 - 2
- name = "userContextIdInternal.thumbnail";
- icon = "";
- color = "";
- accessKey = "";
- public = false;
- }
- {
- userContextId = 4294967295; # 2^32 - 1
- name = "userContextIdInternal.webextStorageLocal";
- icon = "";
- color = "";
- accessKey = "";
- public = false;
- }
- ];
- }}
- '';
-
- firefoxBookmarksFile = bookmarks:
- let
- indent = level:
- lib.concatStringsSep "" (map (lib.const " ") (lib.range 1 level));
-
- bookmarkToHTML = indentLevel: bookmark:
- ''
- ${indent indentLevel}