Updated to nixos-24.05, lot of small config changes

This commit is contained in:
Samy Avrillon 2025-09-02 14:04:38 +02:00
parent b0d74406fa
commit b69d5e8a45
13 changed files with 461 additions and 74 deletions

22
flake.lock generated
View File

@ -25,16 +25,16 @@
]
},
"locked": {
"lastModified": 1747688870,
"narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=",
"lastModified": 1755928099,
"narHash": "sha256-OILVkfhRCm8u18IZ2DKR8gz8CVZM2ZcJmQBXmjFLIfk=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "d5f1f641b289553927b3801580598d200a501863",
"rev": "4a44fb9f7555da362af9d499817084f4288a957f",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.11",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
@ -47,11 +47,11 @@
]
},
"locked": {
"lastModified": 1755137362,
"narHash": "sha256-3e/S+Q9InEZ+W1YxjrfjkuVz49IsF2vJZx7Id22RCkY=",
"lastModified": 1756001386,
"narHash": "sha256-QGyQ4kbltilt4Jg6LxaVqwyc7OxAjaDAtdusIW7uL/s=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "547b299dd5b8ddccf948ff6728d7ec547eee4e02",
"rev": "b9fcd22d7cf5bb1cf75e32fc7ecb5df6156ec504",
"type": "github"
},
"original": {
@ -62,16 +62,16 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1751274312,
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
"lastModified": 1755922037,
"narHash": "sha256-wY1+2JPH0ZZC4BQefoZw/k+3+DowFyfOxv17CN/idKs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
"rev": "b1b3291469652d5a2edb0becc4ef0246fff97a7c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}

View File

@ -2,9 +2,9 @@
description = "My common nixos system";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.url = "github:nix-community/home-manager/release-25.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";

View File

@ -84,5 +84,12 @@
};
boot.kernelParams = [ "i915.force_probe=7d45" ];
system.stateVersion = "24.11";
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
# Not experimental, show charge of devices
settings.General.Experimental = true;
};
system.stateVersion = "25.05";
}

View File

@ -1,31 +1,25 @@
diff -x __pycache__ -ru thunderbird-128.10.1/comm/mailnews/base/src/nsMsgIncomingServer.cpp thunderbird/thunderbird-128.10.1/comm/mailnews/base/src/nsMsgIncomingServer.cpp
--- thunderbird-128.10.1/comm/mailnews/base/src/nsMsgIncomingServer.cpp 2025-05-13 15:22:25.000000000 +0200
+++ thunderbird/thunderbird-128.10.1/comm/mailnews/base/src/nsMsgIncomingServer.cpp 2025-08-21 03:49:50.217872643 +0200
@@ -41,6 +41,15 @@
#include "mozilla/Unused.h"
#include "nsIUUIDGenerator.h"
#include "nsIArray.h"
diff -rp1 -u a/comm/mailnews/base/src/nsMsgIncomingServer.cpp b/comm/mailnews/base/src/nsMsgIncomingServer.cpp
--- a/comm/mailnews/base/src/nsMsgIncomingServer.cpp 2025-07-21 18:15:26.000000000 +0200
+++ b/comm/mailnews/base/src/nsMsgIncomingServer.cpp 2025-08-24 23:18:34.302163372 +0200
@@ -51,2 +51,11 @@
+#include "mozilla/SpinEventLoopUntil.h"
+#include "nsIProcess.h"
+#include "mozilla/RandomNum.h"
+#include "nsIServerSocket.h"
+#include "nsIAsyncInputStream.h"
+#include "nsISocketTransport.h"
+#include "nsIBinaryInputStream.h"
+#include "nsIObjectInputStream.h"
+#include "nsDirectoryServiceDefs.h"
+
#define PORT_NOT_SET -1
@@ -707,12 +716,241 @@
return NS_OK;
}
@@ -708,2 +717,218 @@ nsresult nsMsgIncomingServer::GetPasswor
+nsresult
+nsMsgIncomingServer::GetPasswordCommand(nsTArray<nsString> &passwordCommand) {
+ nsString serializedCommand;
+ nsAutoCString serializedCommand;
+
+ nsresult rv = GetUnicharValue("passwordCommand", serializedCommand);
+ nsresult rv = GetStringValue("passwordCommand", serializedCommand);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ if (serializedCommand.Length() == 0)
@ -197,7 +191,8 @@ diff -x __pycache__ -ru thunderbird-128.10.1/comm/mailnews/base/src/nsMsgIncomin
+ nsCOMPtr<nsIFile> executableFile =
+ do_CreateInstance("@mozilla.org/file/local;1", &rv);
+ NS_ENSURE_SUCCESS(rv, rv);
+ executableFile->InitWithPath(executable);
+ rv = executableFile->InitWithPath(executable);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ nsCOMPtr<nsIProcess> process =
+ do_CreateInstance("@mozilla.org/process/util;1", &rv);
@ -237,10 +232,7 @@ diff -x __pycache__ -ru thunderbird-128.10.1/comm/mailnews/base/src/nsMsgIncomin
+}
+
NS_IMETHODIMP
nsMsgIncomingServer::GetPasswordWithUI(const nsAString& aPromptMessage,
const nsAString& aPromptTitle,
nsAString& aPassword) {
nsresult rv = NS_OK;
@@ -714,2 +939,16 @@ nsMsgIncomingServer::GetPasswordWithUI(c
+ nsTArray<nsString> passwordCommand;
+ rv = GetPasswordCommand(passwordCommand);
@ -257,18 +249,12 @@ diff -x __pycache__ -ru thunderbird-128.10.1/comm/mailnews/base/src/nsMsgIncomin
+ }
+
if (m_password.IsEmpty()) {
// let's see if we have the password in the password manager and
// can avoid this prompting thing. This makes it easier to get embedders
diff -x __pycache__ -ru thunderbird-128.10.1/comm/mailnews/base/src/nsMsgIncomingServer.h thunderbird/thunderbird-128.10.1/comm/mailnews/base/src/nsMsgIncomingServer.h
--- thunderbird-128.10.1/comm/mailnews/base/src/nsMsgIncomingServer.h 2025-05-13 15:22:25.000000000 +0200
+++ thunderbird/thunderbird-128.10.1/comm/mailnews/base/src/nsMsgIncomingServer.h 2025-08-19 12:39:19.236805257 +0200
@@ -48,6 +48,9 @@
nsCString m_serverKey;
bool m_hasShutDown;
diff -rp1 -u a/comm/mailnews/base/src/nsMsgIncomingServer.h b/comm/mailnews/base/src/nsMsgIncomingServer.h
--- a/comm/mailnews/base/src/nsMsgIncomingServer.h 2025-07-21 18:15:26.000000000 +0200
+++ b/comm/mailnews/base/src/nsMsgIncomingServer.h 2025-08-24 19:21:59.609543392 +0200
@@ -50,2 +50,5 @@ class nsMsgIncomingServer : public nsIMs
+ nsresult GetPasswordCommand(nsTArray<nsString> &passwordCommand);
+ nsresult RunPasswordCommand(nsTArray<nsString> &passwordCommand, nsAString& password);
+
// Sets m_password, if password found. Can return NS_ERROR_ABORT if the
// user cancels the master password dialog.
nsresult GetPasswordWithoutUI();

View File

@ -13,6 +13,7 @@
./locale.nix
./ssh.nix
./email.nix
./email-filters.nix
./git.nix
];
@ -36,6 +37,7 @@
);
# Set your time zone.
#time.timeZone = "Europe/Paris";
time.timeZone = "Europe/Paris";
# Configure network proxy if necessary

View File

@ -0,0 +1,249 @@
{config, pkgs, lib, ...}:
let
filterToString = (f:
if builtins.isString f
then "(all addresses,contains,${f})"
else if builtins.isList f
then "OR "+(lib.strings.concatStringsSep " OR " (builtins.map filterToString f))
else builtins.throw "Wrong filter content"
);
convertFilters = (filz: builtins.map (fil: {
enabled = true;
type = "17";
name = "Moving emails to folder "+fil.folder;
action = "Move to folder";
actionValue = "imap://mysaa%40hadoly.fr@imap.hadoly.fr/"+(fil.folderEscaped or fil.folder);
condition = filterToString fil.email;
}) filz);
restFilter = (out: {
enabled = true;
type = "17";
name = "Moving other emails to "+out;
action = "Move to folder";
actionValue = "imap://mysaa%40hadoly.fr@imap.hadoly.fr/INBOX/"+out;
condition = "ALL";
});
rules = [
{
folder = "Assos/AliENS";
email = [
"aliens.discussion@ens-lyon.fr"
"aliens.discussion@listes.ens-lyon.fr"
];
}
{
folder = "Assos/AliENS/CA";
email = [
"aliens.ca@ens-lyon.fr"
"aliens.ca@listes.ens-lyon.fr"
"aliens.contact@ens-lyon.fr"
"aliens.contact@listes.ens-lyon.fr"
];
}
{
folder = "Assos/BuL/Murders";
email = [
"bul.murder.decouverte@ens-lyon.fr"
"bul.murder.decouverte@listes.ens-lyon.fr"
"bul.murder@ens-lyon.fr"
"bul.murder@listes.ens-lyon.fr"
];
}
{
folder = "Assos/Démesures";
folderEscaped = "Assos/D&AOk-mesures";
email = [
"demesures@ens-lyon.fr"
"demesures@listes.ens-lyon.fr"
];
}
{
folder = "Assos/Diffs";
email = [
"fede.diffusion@ens-lyon.fr"
"fede.diffusion@listes.ens-lyon.fr"
"info.elus.etudiants@ens-lyon.fr"
"info.elus.etudiants@listes.ens-lyon.fr"
"bde.diffusion@ens-lyon.fr"
"bde.diffusion@listes.ens-lyon.fr"
"bul.diffusion@ens-lyon.fr"
"bul.diffusion@listes.ens-lyon.fr"
"enverts.diffusion@ens-lyon.fr"
"enverts.diffusion@listes.ens-lyon.fr"
"trensistor.diffusion@ens-lyon.fr"
"trensistor.diffusion@listes.ens-lyon.fr"
"aliens.diffusion@ens-lyon.fr"
"aliens.diffusion@listes.ens-lyon.fr"
"bde.kfet.diffusion@ens-lyon.fr"
"bde.kfet.diffusion@listes.ens-lyon.fr"
"as-ensl@ens-lyon.fr"
"as-ensl@listes.ens-lyon.fr"
"bde.foyer@ens-lyon.fr"
"bde.foyer@listes.ens-lyon.fr"
"asset.diffusion@ens-lyon.fr"
"asset.diffusion@listes.ens-lyon.fr"
"echarde.diffusion@framalistes.org"
"echarde.membres@framalistes.org"
"enverts.enselle@ens-lyon.fr"
"enverts.enselle@listes.ens-lyon.fr"
"enverts.engraines.descartes@ens-lyon.fr"
"enverts.engraines.monod@listes.ens-lyon.fr"
"discourse+noreply@openstreetmap.fr"
"grrrndzero@grrrndzero.org"
"info@cinefac.fr"
];
}
{
folder = "Assos/ENSeigner";
email = [
"enseigner.tuteurices@ens-lyon.fr"
"enseigner.tuteurices@listes.ens-lyon.fr"
];
}
{
folder = "Assos/ENvertS";
email = [
"enverts.bureau@ens-lyon.fr"
"enverts.bureau@listes.ens-lyon.fr"
];
}
{
folder = "Assos/ENvertS/Framavox";
email = [
"notifications@framavox.org"
];
}
{
folder = "Assos/Fédé";
folderEscaped = "Assos/F&AOk-d&AOk-";
email = [
"fede.ca@ens-lyon.fr"
"fede.ca@listes.ens-lyon.fr"
];
}
{
folder = "Assos/Fédé/Art Total";
folderEscaped = "Assos/F&AOk-d&AOk-/Art Total";
email = [
"fede.art-total@ens-lyon.fr"
"fede.art-total@listes.ens-lyon.fr"
];
}
{
folder = "Assos/Fédé/Bureau";
folderEscaped = "Assos/F&AOk-d&AOk-/Bureau";
email = [
"federation@ens-lyon.fr"
"federation@listes.ens-lyon.fr"
"fede.communications@ens-lyon.fr"
];
}
{
folder = "Assos/Fédé/Informatique";
folderEscaped = "Assos/F&AOk-d&AOk-/Informatique";
email = [
"fede.informatique@ens-lyon.fr"
"fede.informatique@listes.ens-lyon.fr"
];
}
{
folder = "Assos/Fédé/Juridique";
folderEscaped = "Assos/F&AOk-d&AOk-/Juridique";
email = [
"fede.juridique@ens-lyon.fr"
"fede.juridique@listes.ens-lyon.fr"
];
}
{
folder = "Assos/Modération";
folderEscaped = "Assos/Mod&AOk-ration";
email = [
"sympa@listes.ens-lyon.fr"
];
}
{
folder = "Assos/tous-spam";
email = [
"tous.ens@ens-lyon.fr"
"tous.ens@listes.ens-lyon.fr"
"tous.culture@ens-lyon.fr"
"tous.culture@listes.ens-lyon.fr"
"tous.manifestations.scientifiques@ens-lyon.fr"
"tous.manifestations.scientifiques@listes.ens-lyon.fr"
"tous.etudiants@ens-lyon.fr"
"tous.etudiants@listes.ens-lyon.fr"
"tous.normaliens-eleves@ens-lyon.fr"
"tous.normaliens-eleves@listes.ens-lyon.fr"
"culture@ens-lyon.fr"
"culture@listes.ens-lyon.fr"
"information.patrimoine@ens-lyon.fr"
"information.patrimoine@listes.ens-lyon.fr"
"tous.transition.ecologique@ens-lyon.fr"
"tous.transition.ecologique@listes.ens-lyon.fr"
"manifestations.ife@ens-lyon.fr"
"manifestations.ife@listes.ens-lyon.fr"
"cercc@ens-lyon.fr"
"cercc@listes.ens-lyon.fr"
"info.syndicat.cgt@ens-lyon.fr"
"info.syndicat.cgt@listes.ens-lyon.fr"
"info.syndicat.sud@ens-lyon.fr"
"info.syndicat.sud@listes.ens-lyon.fr"
"info.syndicat.cfdt@ens-lyon.fr"
"info.syndicat.cfdt@listes.ens-lyon.fr"
"info.syndicat.snesup-fsu@ens-lyon.fr"
"info.syndicat.snesup-fsu@listes.ens-lyon.fr"
"info.syndicat.sud@ens-lyon.fr"
"info.syndicat.sud@listes.ens-lyon.fr"
"newsletter@national.lescrous.fr"
"infos@national.lescrous.fr"
];
}
{
folder = "Notif";
email = [
"nepasrepondre@credit-cooperatif.coop"
"noreply@github.com"
"no-reply@twitch.tv"
"ne_pas_repondre@sfr.fr"
"expiry@letsencrypt.org"
"info@mail.sncfconnect.com"
"service@paypal.fr"
"purchase-noreply@twitch.tv"
"no-reply@doctolib.fr"
"no-reply@canva.com"
"notifications@transifex.com"
"ne-pas-repondre@inscriptionelectorale.service-public.fr"
"noreply@steampowered.com"
"noreply@connect.sncf"
"no-reply@spotify.com"
"messagerie.leboncoin.fr"
"no.reply@leboncoin.fr"
"nepasrepondre-filesender@renater.fr"
"gitlab@aliens-lyon.fr"
"postman@ulule.com"
"no-reply@accounts.google.com"
"notifications@discord.com"
"help@acct.epicgames.com"
];
}
{
folder = "Etudes";
email = [
"types-announce@lists.seas.upenn.edu"
"categories@mq.edu.au"
"ice@framalistes.org"
"cashreadinggroup@listes.ens-lyon.fr"
];
}
];
in {
home-manager.users.mysaa.accounts.email.accounts = {
personal.thunderbird.messageFilters = convertFilters rules ++ [ (restFilter "s@nc") ];
ens.thunderbird.messageFilters = convertFilters rules ++ [ (restFilter "ENS-Lyon") ];
junk.thunderbird.messageFilters = convertFilters rules ++ [ (restFilter "q@nc") ];
google.thunderbird.messageFilters = convertFilters rules ++ [ (restFilter "Google") ];
ecloud.thunderbird.messageFilters = convertFilters rules ++ [ (restFilter "ECloud") ];
hadoly.thunderbird.messageFilters = [ (restFilter "Hadoly") ];
};
}

View File

@ -29,6 +29,18 @@
ens = {
address = "samy.avrillon@ens-lyon.fr";
realName = "Samy Avrillon";
imap = {
host = "imaps.ens-lyon.fr";
port = 993;
tls.enable = true;
};
smtp = {
host = "smtp.ens-lyon.fr";
port = 587;
tls.enable = true;
};
userName = "savrillo";
};
personal = {
@ -50,11 +62,82 @@
junk = {
address = "qqnavrillon@netcourrier.com";
realName = "Qqn Avrillon";
imap = {
host = "mail.mailo.com";
port = 993;
tls.enable = true;
};
smtp = {
host = "mail.mailo.com";
port = 465;
tls.enable = true;
};
userName = "qqnavrillon@netcourrier.com";
};
google = {
address = "samsouleavr@gmail.com";
realName = "Samsoule Avr";
imap = {
host = "imap.gmail.com";
port = 993;
tls.enable = true;
};
smtp = {
host = "smtp.gmail.com";
port = 587;
tls.enable = true;
};
userName = "samsouleavr@gmail.com";
};
bernard = {
address = "bernard.lafayette63@gmail.com";
realName = "Bernard Lafayette";
imap = {
host = "imap.gmail.com";
port = 993;
tls.enable = true;
};
smtp = {
host = "imap.gmail.com";
port = 465;
tls.enable = true;
};
userName = "bernard.lafayette63@gmail.com";
};
dmesures = {
address = "samy.avrillon@dmesures.eu";
realName = "Samy pour Démesures";
imap = {
host = "mail.deady.space";
port = 993;
tls.enable = true;
};
smtp = {
host = "mail.deady.space";
port = 465;
tls.enable = true;
};
userName = "samy.avrillon@dmesures.eu";
};
ecloud = {
address = "mysaa@e.email";
realName = "Mysaa Java";
imap = {
host = "mail.ecloud.global";
port = 993;
tls.enable = true;
};
smtp = {
host = "mail.ecloud.global";
port = 587;
tls.enable = true;
tls.useStartTls = true;
};
userName = "mysaa@e.email";
};
};

View File

@ -16,6 +16,12 @@
aliases = {
l = "log --oneline --graph";
};
extraConfig = {
init.defaultBranch = "main";
# TODO remove that, as it is a fix of https://github.com/input-output-hk/haskell.nix/issues/2214 but for coq-nix-toolbox
safe.directory = "*";
};
};
}

View File

@ -2,7 +2,7 @@
eduroam-IPv6only = {
"802-1x" = {
anonymous-identity = "anonymous@ens-lyon.fr";
ca-cert = "/usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt";
ca-cert = "/etc/ssl/certs/ca-certificates.crt";
domain-suffix-match = "ens-lyon.fr";
eap = "peap";
identity = "savrillo@ens-lyon.fr";
@ -37,7 +37,7 @@
eduroam = {
"802-1x" = {
anonymous-identity = "anonymous@ens-lyon.fr";
ca-cert = "/etc/ssl/certs/USERTrust_RSA_Certification_Authority.pem";
ca-cert = "/etc/ssl/certs/ca-certificates.crt";
domain-suffix-match = "ens-lyon.fr";
eap = "peap";
identity = "savrillo@ens-lyon.fr";

View File

@ -31,6 +31,11 @@
Port 6962
ConnectTimeout 10
AddressFamily inet
Host gitlab.aliens-lyon.fr
HostName gitlab.aliens-lyon.fr
User savrillo
IdentityFile /run/secrets/ssh/savrillo@gitlab.ens-lyon.fr
'';
};

View File

@ -10,6 +10,7 @@
{
imports = [
../basic
./kde.nix
./packages.nix
];

View File

@ -0,0 +1,31 @@
{
config,
lib,
pkgs,
...
}:
{
environment.plasma6.excludePackages = with pkgs.kdePackages; [
elisa
];
home-manager.users.mysaa.home.file.".config/kdeglobals".text = lib.generators.toINI {} {
KDE = {
SingleClick = true;
};
};
home-manager.users.mysaa.services.kdeconnect.enable = true;
# We open kdeconnect ports
networking.firewall = rec {
allowedTCPPortRanges = [
{
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = allowedTCPPortRanges;
};
}

View File

@ -10,10 +10,6 @@
discord
];
environment.plasma6.excludePackages = with pkgs.kdePackages; [
elisa
];
home-manager.users.mysaa.home.packages = with pkgs; [
firefox
vlc
@ -32,28 +28,37 @@
#hyphenDicts.fr_FR
hyphenDicts.en_US
hyphenDicts.de_DE
heroic
spotify
kdiff3
];
programs.steam.enable = true;
home-manager.users.mysaa.services.kdeconnect.enable = true;
# We open kdeconnect ports
networking.firewall = rec {
allowedTCPPortRanges = [
{
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = allowedTCPPortRanges;
home-manager.users.mysaa.accounts.email.accounts = {
"hadoly".thunderbird.enable = true;
"personal".thunderbird.enable = true;
"ens".thunderbird.enable = true;
"junk".thunderbird.enable = true;
"google".thunderbird.enable = true;
"bernard".thunderbird.enable = true;
"dmesures".thunderbird.enable = true;
"ecloud".thunderbird.enable = true;
};
home-manager.users.mysaa.accounts.email.accounts."hadoly".thunderbird.enable = true;
home-manager.users.mysaa.accounts.email.accounts."personal".thunderbird.enable = true;
home-manager.users.mysaa.programs.thunderbird = {
enable = true;
profiles.default = {
isDefault = true;
accountsOrder = [
"hadoly"
"dmesures"
"bernard"
"ens"
"personal"
"junk"
"ecloud"
"google"
];
settings =
{ }
// lib.attrsets.concatMapAttrs (
@ -63,7 +68,8 @@
id = builtins.hashString "sha256" account.name;
command = lib.concatStringsSep " " account.passwordCommand;
passwordScript = pkgs.writeShellScript "get-password.sh" ''
${command} | tr -d $'\n' | ${pkgs.netcat}/bin/nc -w 0 -U $1
echo "Got command $1" >> /tmp/thunderpasswordget
${command} | ${pkgs.netcat}/bin/nc -w 0 -U $1
'';
in
lib.optionalAttrs (account.smtp != null) {
@ -77,14 +83,25 @@
};
};
home-manager.users.mysaa.nixpkgs.overlays = [
(final: prev: {
thunderbird-unwrapped = prev.thunderbird-unwrapped.overrideAttrs {
patches = (prev.thunderbird-unwrapped.patches or [ ]) ++ [
../../packages/add_passwordcommand_smtp.patch
../../packages/add_passwordcommand_imap.patch
];
};
})
];
# home-manager.users.mysaa.nixpkgs.overlays = [
# (final: prev: {
# thunderbird-unwrapped = prev.thunderbird-unwrapped.overrideAttrs {
# patches = (prev.thunderbird-unwrapped.patches or [ ]) ++ [
# ../../packages/add_passwordcommand_smtp.patch
# ../../packages/add_passwordcommand_imap.patch
# ];
# };
# })
# ];
home-manager.users.mysaa.programs.keepassxc.settings = {
General.NumberOfRememberedLastDatabases = 1;
General.UseAtomicSaves = false;
Browser.Enabled = true;
Browser.AlwaysAllowAccess = true;
Browser.MatchUrlScheme = false;
GUI.MinimizeOnStartup = true;
GUI.ShowExpiredEntriesOnDatabaseUnlock = false;
PasswordGenerator.Length = 24;
};
}