{ config, lib, pkgs, ... }: let list-replace = l: e: e': (let i = lib.lists.findFirstIndex (a: a == e) (-1) l; in if (i == (-1)) then builtins.throw "Could not find item in list" else (lib.lists.take i l ++ [e'] ++ lib.lists.drop (i+1) l)); dovecot-mysaa = pkgs.dovecot.overrideAttrs { configureFlags = list-replace (list-replace pkgs.dovecot.configureFlags "--sysconfdir=/etc" "--sysconfdir=/home/mysaa/.local/etc/") "--localstatedir=/var" "--localstatedir=/home/mysaa/.local/var"; }; in { environment.systemPackages = with pkgs; [ discord ]; home-manager.users.mysaa.home.packages = with pkgs; [ firefox vlc (vscode-with-extensions.override { vscode = vscodium; vscodeExtensions = with vscode-marketplace; [ maximedenes.vscoq myriad-dreamin.tinymist vmware.vscode-boot-dev-pack ms-python.python edwinkofler.vscode-hyperupcall-pack-java ]; }) libreoffice #hyphenDicts.fr_FR hyphenDicts.en_US hyphenDicts.de_DE heroic spotify kdiff3 pdfarranger anki-bin # Register addons here (and login to anki-server) ]; programs.steam.enable = true; home-manager.users.mysaa.programs.keepassxc.enable = true; 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; }; virtualisation.virtualbox.host.enable = true; users.extraGroups.vboxusers.members = [ "mysaa" ]; virtualisation.virtualbox.host.enableKvm = true; virtualisation.virtualbox.host.addNetworkInterface = false; home-manager.users.mysaa.systemd.user.services.heroic-launcher = { Unit = { Description = "Launching the heroic game launcher"; After = "network.target"; }; Service = { Type = "simple"; ExecStart = "${pkgs.heroic}/bin/heroic"; }; }; home-manager.users.mysaa.systemd.user.timers.weekly-heroic-launcher = { Unit = { Description = "Run the heroic game launcher weekly for downloading the free game"; }; Timer = { OnCalendar = "Mon *-*-* 08:00:00 Europe/Paris"; Persistent = "true"; Unit = "heroic-launcher.service"; }; Install = { WantedBy = [ "timers.target" ]; }; }; }