From cc0cd9c275826379920efd1290b3f3f8ccbd4e5d Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 12 Apr 2023 00:07:51 +0200 Subject: [PATCH 001/120] thrall: Change hashed password of archive@failco.de --- secrets/paperless-mail.age | Bin 502 -> 526 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/secrets/paperless-mail.age b/secrets/paperless-mail.age index ae80b7460133ab66e0bced600e933469f9085351..3921198352769eaa88edebbbc019d9bcb55a265d 100644 GIT binary patch delta 504 zcmeyy+{ZFOp+3*lv$Vq5(bu>zvnK_G!>lOE*gM(Xz}Uq(*V#GA+_Km!Dmx&{ATzkaJv$?^B;4PnBE%pW zWSzI8w~Li-dQoa(aVnRile?d{v16EiaK2$;c%rANf3bU5P?WyEv3Y1tMYu;mPCrewX=p`-w{}@rZlzH~u~U#)hCxLrmw#GlW>A@9c&NEcR8Db_Z&s0kYoVz{ zvbm+BVO4p)7niQCu0m#@X;ejir9oPicacG`ccn{Yxwm_ciAPFGYEfQgvWcf>qI0rI zK$4?xK3CquhmsG?T!MdRH{J4d@KwAm(3Cl&u-)>qeZbL*zZHKnR;?<#<}9iIuy$VL zl9E*$PTskq@$kQI8lNu9ZIE577vnEn-M^%oPvq?l^^9k^HPUvWk4q-@Y^ju7 w`uySaocdxWh9A>PB&TY4RIedyH}*Q zL1{%|xRXynYC&pdx|3mKWJF?Uc3@ggVqPSduCA_vM`l4mcD{R>b6G@HQCLxcduDc- zfp2+5SdgKyZ<$|7x>H7?OK6@;cxW~k?}ot0=1u Date: Wed, 12 Apr 2023 09:26:37 +0200 Subject: [PATCH 002/120] thrall: Document how to create age encrypted files --- hosts/thrall/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index bc3c402..5a3efe7 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -302,6 +302,8 @@ in { loginAccounts = { "me@failco.de" = { + # nix-shell -p mkpasswd --run 'mkpasswd -sm sha512crypt' + # nix run github:ryantm/agenix -- -i -e password.age hashedPasswordFile = config.age.secrets.mailPass.path; aliases = [ "lx@failco.de" "alex@failco.de" ]; -- 2.51.2 From 407d1d2ad064e5bf6eecc3aa927f928b35ff5265 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 15 Apr 2023 07:54:34 +0200 Subject: [PATCH 003/120] thrall: Enable roundcube webmail --- hosts/thrall/default.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 5a3efe7..db3a5b2 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -193,7 +193,7 @@ in { forceSSL = true; enableACME = true; root = "/srv/www/failco.de"; - serverAliases = [ "www.failco.de" "mail.failco.de" ]; + serverAliases = [ "www.failco.de" ]; extraConfig = '' add_header X-Frame-Options 'SAMEORIGIN'; ''; @@ -329,6 +329,20 @@ in { virusScanning = true; }; + services.roundcube = { + enable = true; + hostName = "mail.failco.de"; + dicts = with pkgs.aspellDicts; [ en de ]; + plugins = [ "archive" "attachment_reminder" "managesieve" "markasjunk" ]; + extraConfig = '' + # starttls needed for authentication, so the fqdn required to match + # the certificate + $config['smtp_server'] = "tls://${config.mailserver.fqdn}"; + $config['smtp_user'] = "%u"; + $config['smtp_pass'] = "%p"; + ''; + }; + # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave -- 2.51.2 From df600c917c1fbfbea0e4039cb373cab6576eefb8 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 17 Apr 2023 00:29:44 +0200 Subject: [PATCH 004/120] thrall: Enable hledger web interface --- hosts/thrall/default.nix | 18 +++++++++++++++++- secrets/hledger-web.htaccess.age | 10 ++++++++++ secrets/secrets.nix | 10 ++++++---- 3 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 secrets/hledger-web.htaccess.age diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index db3a5b2..4a4bbfc 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -38,6 +38,12 @@ in { mailPass.file = ../../secrets/mailPass.age; paperless-mail.file = ../../secrets/paperless-mail.age; wireguard-thrall.file = ../../secrets/wireguard-thrall.age; + hledger-web = { + file = ../../secrets/hledger-web.htaccess.age; + mode = "440"; + owner = "nginx"; + group = "nginx"; + }; }; # The global useDHCP flag is deprecated, therefore explicitly set to false here. @@ -228,6 +234,17 @@ in { proxyWebsockets = true; }; }; + + # hledger + "ledger.failco.de" = { + forceSSL = true; + enableACME = true; + basicAuthFile = config.age.secrets.hledger-web.path; + locations."/" = { + proxyPass = "http://127.0.0.1:3003/"; + proxyWebsockets = true; + }; + }; }; services.gitea = { @@ -303,7 +320,6 @@ in { loginAccounts = { "me@failco.de" = { # nix-shell -p mkpasswd --run 'mkpasswd -sm sha512crypt' - # nix run github:ryantm/agenix -- -i -e password.age hashedPasswordFile = config.age.secrets.mailPass.path; aliases = [ "lx@failco.de" "alex@failco.de" ]; diff --git a/secrets/hledger-web.htaccess.age b/secrets/hledger-web.htaccess.age new file mode 100644 index 0000000..13337dc --- /dev/null +++ b/secrets/hledger-web.htaccess.age @@ -0,0 +1,10 @@ +age-encryption.org/v1 +-> X25519 ntNFHjGdIlYJTbloT8Ujpn8Yh+oAaX/m0DHrq9ukLHQ +CTj9AefZLuZ0sBuFatp8/lEL8bUf2IXOHW00XJEdSVY +-> ssh-ed25519 NCz+gA kj420yScWjDD95LtvEb/62uXVzJU/v0ZSuJ+15MRdS8 +vFZNC94TxoXh1vVjHFPwPIV+nta5rWgdYWTokbBitxE +-> 9-grease %8XR5/t } +22U6Glc0+L2vlRnrx1Sd1g9b4sfpt/1d0ihfEk5ZQOgEcy45+eNmbHTLQHYzpkFo +PmIBJrRj07B93Pp1MR4sHmOMtK358D9l1LSURdWQtmtcocOoKdQWmPq+IQ +--- 1F50mU6ZhA2vbJq1Nkae6KWzxGY1DGdPNhlA6S3r2GM +FMѮL~:5v3 ߁d? l~:_ՄZDJR+" \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 794f07e..cb6f600 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -1,12 +1,14 @@ +# nix run github:ryantm/agenix -- -i -e password.age let - thrall = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHNRSYszckbCwKoX/cci8D40DGM/SG/NJ/u/uB361re"; + thrall = + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHNRSYszckbCwKoX/cci8D40DGM/SG/NJ/u/uB361re"; alex = "age13uv5phqjuvd90rr3aa7mg3xsmcmyx8cfz9v52w2a782qecssja9sw9nt8a"; systems = [ thrall ]; users = [ alex ]; -in -{ +in { "mailPass.age".publicKeys = users ++ systems; "paperless-mail.age".publicKeys = users ++ systems; - "wireguard-thrall.age".publicKeys = [thrall]; + "wireguard-thrall.age".publicKeys = [ thrall ]; + "hledger-web.htaccess.age".publicKeys = users ++ systems; } -- 2.51.2 From 1e81cd287ca213c8f35f0785c3735572c3120045 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Fri, 12 May 2023 20:27:03 +0200 Subject: [PATCH 005/120] dregil: Enable gpg-agent with ssh via home-manager --- outputs/homeConfigurations/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index ea49a02..d9f5027 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -63,6 +63,12 @@ in # do not show home-manager notifications news.display = "silent"; + + services.gpg-agent = { + enable = true; + enableSshSupport = true; + sshKeys = [ "9027AB16B9A7C20BD29F30F55CBA054430BF014C" ]; + }; } ]; }; -- 2.51.2 From 421c970ef5f605791afe14f76b3127f4f759e853 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 15 May 2023 14:27:40 +0200 Subject: [PATCH 006/120] cli: Use emacsUnstable instead of bleeding edge --- home/cli.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/home/cli.nix b/home/cli.nix index 9c0d303..913f07f 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -102,9 +102,8 @@ in { emacs = { enable = true; - package = pkgs.emacsGit; + package = pkgs.emacsUnstable; extraPackages = epkgs: with epkgs; [ vterm ]; - #package = pkgs.emacsUnstable; }; gh = { -- 2.51.2 From 48efb92bd234b155bbeb7d9e1ae931cabfc296fe Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 15 May 2023 14:28:29 +0200 Subject: [PATCH 007/120] thrall: Handle kobjolke.de --- hosts/thrall/default.nix | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 4a4bbfc..58d05f8 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -215,6 +215,16 @@ in { ''; }; + "kobjolke.de" = { + forceSSL = true; + enableACME = true; + root = "/srv/www/kobjolke.de"; + serverAliases = [ "www.kobjolke.de" ]; + extraConfig = '' + add_header X-Frame-Options 'SAMEORIGIN'; + ''; + }; + # gitea "git.failco.de" = { forceSSL = true; @@ -315,7 +325,7 @@ in { mailserver = { enable = true; fqdn = "thrall.failco.de"; - domains = [ "failco.de" "jakalx.net" ]; + domains = [ "failco.de" "jakalx.net" "kobjolke.de" ]; loginAccounts = { "me@failco.de" = { @@ -324,7 +334,7 @@ in { aliases = [ "lx@failco.de" "alex@failco.de" ]; - catchAll = [ "failco.de" ]; + catchAll = [ "failco.de" "kobjolke.de" ]; }; "alex@jakalx.net" = { @@ -338,6 +348,11 @@ in { }; }; + forwards = { + "anne@kobjolke.de" = "anne.kobjolke@gmail.cem"; + "alex@kobjolke.de" = "me@failco.de"; + }; + certificateScheme = 3; enableImapSsl = true; -- 2.51.2 From 074ab567822facb2e5be840c2cbb26884e425827 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 22 Jun 2023 01:26:08 +0200 Subject: [PATCH 008/120] cli: Add tools needed by emacs --- home/cli.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/home/cli.nix b/home/cli.nix index 913f07f..92c751a 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -37,6 +37,13 @@ in { pijul sqlite.dev sqlite + + gcc + cmake + graphviz + plantuml + gnuplot + # pass pandoc hledger -- 2.51.2 From e2f20f0278b21a78841ca2bc7848f43948bb8b26 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Fri, 23 Jun 2023 11:25:01 +0200 Subject: [PATCH 009/120] Update to 23.05 --- flake.lock | 219 +++++++++++++++++++------ flake.nix | 37 +++-- home/cli.nix | 4 +- hosts/thrall/default.nix | 14 +- modules/security.nix | 4 +- outputs/homeConfigurations/default.nix | 114 ++++++------- 6 files changed, 253 insertions(+), 139 deletions(-) diff --git a/flake.lock b/flake.lock index cd9faaf..986a9f8 100644 --- a/flake.lock +++ b/flake.lock @@ -3,16 +3,17 @@ "agenix": { "inputs": { "darwin": "darwin", + "home-manager": "home-manager", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1677969766, - "narHash": "sha256-AIp/ZYZMNLDZR/H7iiAlaGpu4lcXsVt9JQpBlf43HRY=", + "lastModified": 1684153753, + "narHash": "sha256-PVbWt3qrjYAK+T5KplFcO+h7aZWfEj1UtyoKlvcDxh0=", "owner": "ryantm", "repo": "agenix", - "rev": "03b51fe8e459a946c4b88dcfb6446e45efb2c24e", + "rev": "db5637d10f797bb251b94ef9040b237f4702cde3", "type": "github" }, "original": { @@ -64,14 +65,15 @@ "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs-unstable" - ] + ], + "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1680257010, - "narHash": "sha256-pNMB9sdoZOXEsszLD5TS0WG5Ysj2rVRmf92uxsxH/9A=", + "lastModified": 1687494897, + "narHash": "sha256-JnNX/aW8arJew41JYDs1JuZYQqW1C7kXXjo3Sblb3y8=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "cfec7f9501cc0e001f49d725a7cd733af7deb2ed", + "rev": "1ceb43ef790d7676fa50c0085438e51c0b67e657", "type": "github" }, "original": { @@ -80,13 +82,32 @@ "type": "github" } }, - "flake-utils": { + "flake-compat": { + "flake": false, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1668681692, + "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "009399224d5e398d03b22badca40a37ac85412a1", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1687171271, + "narHash": "sha256-BJlq+ozK2B1sJDQXS3tzJM5a+oVZmi1q0FlBK/Xqv7M=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c", "type": "github" }, "original": { @@ -98,16 +119,36 @@ "home-manager": { "inputs": { "nixpkgs": [ - "nixpkgs-unstable" - ], - "utils": "utils" + "agenix", + "nixpkgs" + ] }, "locked": { - "lastModified": 1678831854, - "narHash": "sha256-7HBmLFNVD2KjovSzypIN9NfyzpWelMe8sNbUVZIRsS0=", + "lastModified": 1682203081, + "narHash": "sha256-kRL4ejWDhi0zph/FpebFYhzqlOBrk0Pl3dzGEKSAlEw=", "owner": "nix-community", "repo": "home-manager", - "rev": "cae54dc45c0d61c99c1dc8b04bc42f36c76f9771", + "rev": "32d3e39c491e2f91152c84f8ad8b003420eab0a1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager-unstable": { + "inputs": { + "nixpkgs": [ + "nixpkgs-unstable" + ] + }, + "locked": { + "lastModified": 1687473300, + "narHash": "sha256-4LflQpktYFiub8xVhEN9EZf1cYsr09md01rBJZRCGCc=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "70ac18872a5f1a57a4546ff58888bf67a8bbb5b3", "type": "github" }, "original": { @@ -117,12 +158,33 @@ } }, "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1687163790, + "narHash": "sha256-CmG/ZdswJrWM0CMgJiVyWfO6LqaI4SKEAx9IrnYDrpI=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "ac53777f52929bc82efcd2830bfc5aa60bcb4337", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-23.05", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_3": { "inputs": { "nixpkgs": [ "nix-on-droid", "nixpkgs" ], - "utils": "utils_2" + "utils": "utils" }, "locked": { "lastModified": 1663932797, @@ -163,10 +225,10 @@ }, "nix-on-droid": { "inputs": { - "home-manager": "home-manager_2", + "home-manager": "home-manager_3", "nix-formatter-pack": "nix-formatter-pack", "nixpkgs": [ - "nixpkgs" + "nixpkgs-droid" ], "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", "nmd": "nmd_2" @@ -188,11 +250,42 @@ }, "nixpkgs": { "locked": { - "lastModified": 1678703398, - "narHash": "sha256-Y1mW3dBsoWLHpYm+UIHb5VZ7rx024NNHaF16oZBx++o=", + "lastModified": 1687379288, + "narHash": "sha256-cSuwfiqYfeVyqzCRkU9AvLTysmEuSal8nh6CYr+xWog=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "67f26c1cfc5d5783628231e776a81c1ade623e0b", + "rev": "ef0bc3976340dab9a4e087a0bcff661a8b2e87f3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-22_11": { + "locked": { + "lastModified": 1669558522, + "narHash": "sha256-yqxn+wOiPqe6cxzOo4leeJOp1bXE/fjPEi/3F/bBHv8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ce5fe99df1f15a09a91a86be9738d68fadfbad82", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-22.11", + "type": "indirect" + } + }, + "nixpkgs-droid": { + "locked": { + "lastModified": 1687376262, + "narHash": "sha256-xtenf0Nc6So/5uaQqe8u3GVoAs/YdMUFsysPUuK8w1s=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7859e9c101fabbd62551b8f4260124a6e2f01a46", "type": "github" }, "original": { @@ -218,13 +311,29 @@ "type": "github" } }, - "nixpkgs-unstable": { + "nixpkgs-stable": { "locked": { - "lastModified": 1678654296, - "narHash": "sha256-aVfw3ThpY7vkUeF1rFy10NAkpKDS2imj3IakrzT0Occ=", + "lastModified": 1687379288, + "narHash": "sha256-cSuwfiqYfeVyqzCRkU9AvLTysmEuSal8nh6CYr+xWog=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5a1dc8acd977ff3dccd1328b7c4a6995429a656b", + "rev": "ef0bc3976340dab9a4e087a0bcff661a8b2e87f3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1687412861, + "narHash": "sha256-Z/g0wbL68C+mSGerYS2quv9FXQ1RRP082cAC0Bh4vcs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e603dc5f061ca1d8a19b3ede6a8cf9c9fcba6cdc", "type": "github" }, "original": { @@ -236,11 +345,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1669542132, - "narHash": "sha256-DRlg++NJAwPh8io3ExBJdNW7Djs3plVI5jgYQ+iXAZQ=", + "lastModified": 1670751203, + "narHash": "sha256-XdoH1v3shKDGlrwjgrNX/EN8s3c+kQV7xY6cLCE8vcI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a115bb9bd56831941be3776c8a94005867f316a7", + "rev": "64e0bf055f9d25928c31fb12924e59ff8ce71e60", "type": "github" }, "original": { @@ -301,9 +410,11 @@ "inputs": { "agenix": "agenix", "emacs": "emacs", - "home-manager": "home-manager", + "home-manager": "home-manager_2", + "home-manager-unstable": "home-manager-unstable", "nix-on-droid": "nix-on-droid", "nixpkgs": "nixpkgs", + "nixpkgs-droid": "nixpkgs-droid", "nixpkgs-unstable": "nixpkgs-unstable", "snm": "snm" } @@ -311,43 +422,45 @@ "snm": { "inputs": { "blobs": "blobs", + "flake-compat": "flake-compat", "nixpkgs": "nixpkgs_2", - "nixpkgs-22_11": [ + "nixpkgs-22_11": "nixpkgs-22_11", + "nixpkgs-23_05": [ "nixpkgs" ], - "utils": "utils_3" + "utils": "utils_2" }, "locked": { - "lastModified": 1671659164, - "narHash": "sha256-DbpT+v1POwFOInbrDL+vMbYV3mVbTkMxmJ5j50QnOcA=", + "lastModified": 1687462267, + "narHash": "sha256-rNSputjn/0HEHHnsKfQ8mQVEPVchcBw7DsbND7Wg8dk=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "bc667fb6afc45f6cc2d118ab77658faf2227cffd", + "rev": "24128c3052090311688b09a400aa408ba61c6ee5", "type": "gitlab" }, "original": { "owner": "simple-nixos-mailserver", - "ref": "nixos-22.11", + "ref": "nixos-23.05", "repo": "nixos-mailserver", "type": "gitlab" } }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "utils": { - "locked": { - "lastModified": 1676283394, - "narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "utils_2": { "locked": { "lastModified": 1659877975, "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", @@ -362,7 +475,7 @@ "type": "github" } }, - "utils_3": { + "utils_2": { "locked": { "lastModified": 1605370193, "narHash": "sha256-YyMTf3URDL/otKdKgtoMChu4vfVL3vCMkRqpGifhUn0=", diff --git a/flake.nix b/flake.nix index c1bf290..0d868da 100644 --- a/flake.nix +++ b/flake.nix @@ -1,22 +1,28 @@ { inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05"; + nixpkgs-droid.url = "github:NixOS/nixpkgs/nixos-22.11"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { + url = "github:nix-community/home-manager/release-23.05"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + home-manager-unstable = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; # simple mailserver snm = { - url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-22.11"; - inputs.nixpkgs-22_11.follows = "nixpkgs"; + url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-23.05"; + inputs.nixpkgs-23_05.follows = "nixpkgs"; }; nix-on-droid = { url = "github:t184256/nix-on-droid/release-22.11"; - inputs.nixpkgs.follows = "nixpkgs"; + inputs.nixpkgs.follows = "nixpkgs-droid"; }; emacs = { @@ -24,10 +30,10 @@ inputs.nixpkgs.follows = "nixpkgs-unstable"; }; -# simplex-chat = { -# url = "github:simplex-chat/simplex-chat"; -# inputs.nixpkgs.follows = "nixpkgs"; -# }; + # simplex-chat = { + # url = "github:simplex-chat/simplex-chat"; + # inputs.nixpkgs.follows = "nixpkgs"; + # }; # age for nix to store encrypted passwords conveniently agenix = { @@ -62,12 +68,13 @@ nixosConfigurations."dregil" = import ./hosts/dregil { inherit inputs; }; homeConfigurations = import ./outputs/homeConfigurations inputs; - nixOnDroidConfigurations.default = inputs.nix-on-droid.lib.nixOnDroidConfiguration { - modules = [ - ./hosts/redmi - { nix.registry.nixpkgs.flake = nixpkgs; } - { nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; } - ]; - }; + nixOnDroidConfigurations.default = + inputs.nix-on-droid.lib.nixOnDroidConfiguration { + modules = [ + ./hosts/redmi + { nix.registry.nixpkgs.flake = nixpkgs; } + { nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; } + ]; + }; }; } diff --git a/home/cli.nix b/home/cli.nix index 92c751a..c5ebb9f 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -48,7 +48,7 @@ in { pandoc hledger hledger-web - hledger-iadd + #hledger-iadd hledger-ui #smos #haskellPackages.patat # terminal based presentations using pandoc @@ -109,7 +109,7 @@ in { emacs = { enable = true; - package = pkgs.emacsUnstable; + package = pkgs.emacs-unstable; extraPackages = epkgs: with epkgs; [ vterm ]; }; diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 58d05f8..f77811a 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -23,7 +23,6 @@ in { # Use the GRUB 2 boot loader. boot.loader.grub.enable = true; - boot.loader.grub.version = 2; # boot.loader.grub.efiSupport = true; # boot.loader.grub.efiInstallAsRemovable = true; # boot.loader.efi.efiSysMountPoint = "/boot/efi"; @@ -261,14 +260,17 @@ in { enable = true; database.type = "sqlite3"; lfs.enable = true; - domain = "git.failco.de"; - rootUrl = "https://git.failco.de"; - httpAddress = "127.0.0.1"; - httpPort = 3001; settings = { service.DISABLE_REGISTRATION = true; + server = { + DOMAIN = "git.failco.de"; + ROOT_URL = "https://git.failco.de"; + HTTP_ADDR = "127.0.0.1"; + HTTP_PORT = 3001; + }; + mailer = { ENABLED = true; MAILER_TYPE = "smtp"; @@ -353,7 +355,7 @@ in { "alex@kobjolke.de" = "me@failco.de"; }; - certificateScheme = 3; + certificateScheme = "acme-nginx"; enableImapSsl = true; enableManageSieve = true; diff --git a/modules/security.nix b/modules/security.nix index 3482c16..15d365b 100644 --- a/modules/security.nix +++ b/modules/security.nix @@ -9,10 +9,10 @@ # tmpfs = /tmp is mounted in ram. Doing so makes temp file management speedy # on ssd systems, and volatile! Because it's wiped on reboot. -# boot.tmpOnTmpfs = lib.mkDefault true; + # boot.tmpOnTmpfs = lib.mkDefault true; # If not using tmpfs, which is naturally purged on reboot, we must clean it # /tmp ourselves. /tmp should be volatile storage! - boot.cleanTmpDir = lib.mkDefault (!config.boot.tmpOnTmpfs); + boot.tmp.cleanOnBoot = lib.mkDefault (!config.boot.tmp.useTmpfs); # Fix a security hole in place for backwards compatibility. See desc in # nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index d9f5027..a9bd3cc 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -1,75 +1,67 @@ -inputs: with inputs; +inputs: +with inputs; let pkgs = import nixpkgs-unstable { - system = "x86_64-linux"; - config.allowUnfree = true; - overlays = []; + system = "x86_64-linux"; + config.allowUnfree = true; + overlays = [ ]; }; -in -{ - "alex@dregil" = home-manager.lib.homeManagerConfiguration { - inherit pkgs; - modules = [ - { - programs.home-manager.enable = true; - - home = { - username = "alex"; - homeDirectory = "/home/alex"; - stateVersion = "22.11"; - packages = with pkgs; [ - alacritty # fast terminal - firefox # the browser with the fox +in { + "alex@dregil" = home-manager-unstable.lib.homeManagerConfiguration { + inherit pkgs; + modules = [{ + programs.home-manager.enable = true; - # social - jitsi-meet-electron # jitsi as a stand-alone app - discord # talk to other people - #inputs.simplex-chat.packages."x86_64-linux"."exe:simplex-chat" + home = { + username = "alex"; + homeDirectory = "/home/alex"; + stateVersion = "22.11"; + packages = with pkgs; [ + alacritty # fast terminal + firefox # the browser with the fox - # editing - helix # vim like editor - nil # nix language server + # social + jitsi-meet-electron # jitsi as a stand-alone app + discord # talk to other people + #inputs.simplex-chat.packages."x86_64-linux"."exe:simplex-chat" - # system tools - htop-vim # htop with vim bindings - erdtree # du+tree had sex - dua # ncdu but better - bat # better cat - uhk-agent # my keyboard - mosh # ssh via udp + # editing + helix # vim like editor + nil # nix language server - # gaming support - lutris - ]; - }; + # system tools + htop-vim # htop with vim bindings + erdtree # du+tree had sex + dua # ncdu but better + bat # better cat + uhk-agent # my keyboard + mosh # ssh via udp - programs.bash = { - enable = true; - }; + # gaming support + lutris + ]; + }; - programs.zsh = { - enable = true; - }; + programs.bash = { enable = true; }; - programs.git = { - enable = true; - userName = "Alexander Kobjolke"; - userEmail = "me@failco.de"; - }; + programs.zsh = { enable = true; }; - programs.password-store = { - enable = true; - }; + programs.git = { + enable = true; + userName = "Alexander Kobjolke"; + userEmail = "me@failco.de"; + }; - # do not show home-manager notifications - news.display = "silent"; + programs.password-store = { enable = true; }; - services.gpg-agent = { - enable = true; - enableSshSupport = true; - sshKeys = [ "9027AB16B9A7C20BD29F30F55CBA054430BF014C" ]; - }; - } - ]; - }; + # do not show home-manager notifications + news.display = "silent"; + + services.gpg-agent = { + enable = true; + enableSshSupport = true; + sshKeys = [ "9027AB16B9A7C20BD29F30F55CBA054430BF014C" ]; + }; + }]; + }; } -- 2.51.2 From a88b91a78e715fd7c5c87b9844628d1a77de478d Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 20 May 2023 00:41:45 +0200 Subject: [PATCH 010/120] dregil: Use gopass as password-store backend --- outputs/homeConfigurations/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index a9bd3cc..366e89b 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -52,7 +52,10 @@ in { userEmail = "me@failco.de"; }; - programs.password-store = { enable = true; }; + programs.password-store = { + enable = true; + package = pkgs.gopass; + }; # do not show home-manager notifications news.display = "silent"; -- 2.51.2 From 525a4665e758a9163bd2c0826e71beb0d3af9ea1 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 24 Jun 2023 02:15:33 +0200 Subject: [PATCH 011/120] dregil: Update to 23.05 --- hosts/dregil/hardware-configuration.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/hosts/dregil/hardware-configuration.nix b/hosts/dregil/hardware-configuration.nix index 198484c..c21e13f 100644 --- a/hosts/dregil/hardware-configuration.nix +++ b/hosts/dregil/hardware-configuration.nix @@ -64,8 +64,6 @@ powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; - hardware.video.hidpi.enable = true; - hardware.nvidia = { nvidiaSettings = true; nvidiaPersistenced = true; -- 2.51.2 From 6fe9ad8c6efec3dabb71aff9f1ba8c20f7084851 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 1 Jul 2023 00:12:06 +0200 Subject: [PATCH 012/120] dregil: Import cli.nix --- home/cli.nix | 8 ++- outputs/homeConfigurations/default.nix | 86 ++++++++++---------------- 2 files changed, 40 insertions(+), 54 deletions(-) diff --git a/home/cli.nix b/home/cli.nix index c5ebb9f..0c6b37f 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -19,6 +19,9 @@ in { sessionPath = [ "$HOME/.local/bin" "$HOME/.emacs.d/bin" ]; }; + # do not show home-manager notifications + news.display = "silent"; + home.packages = with pkgs; [ # archives #p7zip @@ -85,6 +88,8 @@ in { }; programs = { + bash = { enable = true; }; + zsh = { enable = true; enableAutosuggestions = true; @@ -139,7 +144,8 @@ in { password-store = { enable = true; - package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]); + # package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]); + package = pkgs.gopass; settings = { PASSWORD_STORE_DIR = "$HOME/.local/share/password-store"; }; }; diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index 366e89b..3cf9ce5 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -4,67 +4,47 @@ let pkgs = import nixpkgs-unstable { system = "x86_64-linux"; config.allowUnfree = true; - overlays = [ ]; + overlays = [ emacs.overlay ]; }; in { "alex@dregil" = home-manager-unstable.lib.homeManagerConfiguration { inherit pkgs; - modules = [{ - programs.home-manager.enable = true; + modules = [ + ../../home/cli.nix + { + home = { + packages = with pkgs; [ + alacritty # fast terminal + firefox # the browser with the fox - home = { - username = "alex"; - homeDirectory = "/home/alex"; - stateVersion = "22.11"; - packages = with pkgs; [ - alacritty # fast terminal - firefox # the browser with the fox + # social + jitsi-meet-electron # jitsi as a stand-alone app + discord # talk to other people + #inputs.simplex-chat.packages."x86_64-linux"."exe:simplex-chat" - # social - jitsi-meet-electron # jitsi as a stand-alone app - discord # talk to other people - #inputs.simplex-chat.packages."x86_64-linux"."exe:simplex-chat" + # editing + helix # vim like editor + nil # nix language server - # editing - helix # vim like editor - nil # nix language server + # system tools + htop-vim # htop with vim bindings + erdtree # du+tree had sex + dua # ncdu but better + bat # better cat + uhk-agent # my keyboard + mosh # ssh via udp - # system tools - htop-vim # htop with vim bindings - erdtree # du+tree had sex - dua # ncdu but better - bat # better cat - uhk-agent # my keyboard - mosh # ssh via udp + # gaming support + lutris + ]; + }; - # gaming support - lutris - ]; - }; - - programs.bash = { enable = true; }; - - programs.zsh = { enable = true; }; - - programs.git = { - enable = true; - userName = "Alexander Kobjolke"; - userEmail = "me@failco.de"; - }; - - programs.password-store = { - enable = true; - package = pkgs.gopass; - }; - - # do not show home-manager notifications - news.display = "silent"; - - services.gpg-agent = { - enable = true; - enableSshSupport = true; - sshKeys = [ "9027AB16B9A7C20BD29F30F55CBA054430BF014C" ]; - }; - }]; + services.gpg-agent = { + enable = true; + enableSshSupport = true; + sshKeys = [ "9027AB16B9A7C20BD29F30F55CBA054430BF014C" ]; + }; + } + ]; }; } -- 2.51.2 From 266ff4a36249fe7d56bab83cd47e0b17ff2dd830 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 1 Jul 2023 00:23:25 +0200 Subject: [PATCH 013/120] cli: Move some tools from dregils config to cli --- home/cli.nix | 10 ++++++++++ outputs/homeConfigurations/default.nix | 6 ------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/home/cli.nix b/home/cli.nix index 0c6b37f..c6460ee 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -41,6 +41,16 @@ in { sqlite.dev sqlite + # editing + nil # nix language server + + # system tools + htop-vim # htop with vim bindings + erdtree # du+tree had sex + dua # ncdu but better + bat # better cat + exa # better ls + gcc cmake graphviz diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index 3cf9ce5..8b9ac20 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -23,14 +23,8 @@ in { #inputs.simplex-chat.packages."x86_64-linux"."exe:simplex-chat" # editing - helix # vim like editor - nil # nix language server # system tools - htop-vim # htop with vim bindings - erdtree # du+tree had sex - dua # ncdu but better - bat # better cat uhk-agent # my keyboard mosh # ssh via udp -- 2.51.2 From 980f6c0e696b59963ea45ad79fa6d1b177b8badc Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 2 Jul 2023 22:18:59 +0200 Subject: [PATCH 014/120] emacs: Do not use overlay, but version from nixos-unstable (28.2) --- home/cli.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/cli.nix b/home/cli.nix index c6460ee..60dad03 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -124,7 +124,7 @@ in { emacs = { enable = true; - package = pkgs.emacs-unstable; + #package = pkgs.emacs-unstable; extraPackages = epkgs: with epkgs; [ vterm ]; }; -- 2.51.2 From 3649a2228749dfb97f93015ef6ed84f862f438fc Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 2 Jul 2023 10:49:15 +0200 Subject: [PATCH 015/120] cli: Enable zsh plugins fzf, z and fd --- home/cli.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/home/cli.nix b/home/cli.nix index 60dad03..3395faa 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -50,6 +50,7 @@ in { dua # ncdu but better bat # better cat exa # better ls + fzf gcc cmake @@ -107,7 +108,7 @@ in { shellAliases = { e = "emacsclient -c $@"; }; oh-my-zsh = { enable = true; - plugins = [ "git" ]; + plugins = [ "git" "fzf" "fd" "z" ]; theme = "simple"; }; }; -- 2.51.2 From cbbc252230f82edb38c3ac927d6d13b01144bb63 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 2 Jul 2023 10:49:58 +0200 Subject: [PATCH 016/120] cli: Define some usefull shell aliases --- home/cli.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/home/cli.nix b/home/cli.nix index 3395faa..c49d362 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -105,7 +105,11 @@ in { enable = true; enableAutosuggestions = true; # enableSyntaxHighlighting = true; - shellAliases = { e = "emacsclient -c $@"; }; + shellAliases = { + e = "emacsclient -c $@"; + ls = "exa $@"; + t = "exa -T $@"; + }; oh-my-zsh = { enable = true; plugins = [ "git" "fzf" "fd" "z" ]; -- 2.51.2 From c34946321f9519b3f6faa06573db989611b0358a Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 2 Jul 2023 10:50:36 +0200 Subject: [PATCH 017/120] cli: Enable starship shell prompt --- home/cli.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home/cli.nix b/home/cli.nix index c49d362..6510e2c 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -117,6 +117,10 @@ in { }; }; + starship = { + enable = true; + }; + # better cat bat.enable = true; -- 2.51.2 From 737d5a5877510d36ec88e6385a4b3df8952a77f2 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 2 Jul 2023 22:22:12 +0200 Subject: [PATCH 018/120] cli: Move shellAlias to environment config --- home/cli.nix | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/home/cli.nix b/home/cli.nix index 6510e2c..0b74e4c 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -58,23 +58,16 @@ in { plantuml gnuplot - # pass pandoc hledger hledger-web - #hledger-iadd hledger-ui - #smos - #haskellPackages.patat # terminal based presentations using pandoc nix-prefetch-git ]; home.extraOutputsToInstall = [ "doc" "info" "devdoc" ]; xdg.enable = true; - # xdg.configFile = { - # "emacs".source = ./emacs.d; - # }; xdg.configFile.tmux = { target = "tmux/tmux.conf"; @@ -98,18 +91,18 @@ in { ''; }; + environment.shellAliases = { + e = "emacsclient -c $@"; + ls = "exa $@"; + t = "exa -T $@"; + }; + programs = { bash = { enable = true; }; zsh = { enable = true; enableAutosuggestions = true; - # enableSyntaxHighlighting = true; - shellAliases = { - e = "emacsclient -c $@"; - ls = "exa $@"; - t = "exa -T $@"; - }; oh-my-zsh = { enable = true; plugins = [ "git" "fzf" "fd" "z" ]; @@ -163,7 +156,6 @@ in { password-store = { enable = true; - # package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]); package = pkgs.gopass; settings = { PASSWORD_STORE_DIR = "$HOME/.local/share/password-store"; }; }; -- 2.51.2 From 6c4a99eb78849ab75ed338d2455091ab3fbeafe6 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 2 Jul 2023 22:31:44 +0200 Subject: [PATCH 019/120] cli: Move common shellAliases to home-manager equivalent config --- home/cli.nix | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/home/cli.nix b/home/cli.nix index 0b74e4c..a018128 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -17,6 +17,11 @@ in { homeDirectory = "/home/${myUser}"; stateVersion = "21.05"; sessionPath = [ "$HOME/.local/bin" "$HOME/.emacs.d/bin" ]; + shellAliases = { + e = "emacsclient -c $@"; + ls = "exa $@"; + t = "exa -T $@"; + }; }; # do not show home-manager notifications @@ -91,12 +96,6 @@ in { ''; }; - environment.shellAliases = { - e = "emacsclient -c $@"; - ls = "exa $@"; - t = "exa -T $@"; - }; - programs = { bash = { enable = true; }; -- 2.51.2 From 28604f4053e9430599079edc30741ea871010aee Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 3 Jul 2023 21:37:59 +0200 Subject: [PATCH 020/120] thrall: Reuse nginx user and group for hledger-web secret --- hosts/thrall/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index f77811a..88fb3e7 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -40,8 +40,8 @@ in { hledger-web = { file = ../../secrets/hledger-web.htaccess.age; mode = "440"; - owner = "nginx"; - group = "nginx"; + owner = config.services.nginx.user; + group = config.services.nginx.group; }; }; -- 2.51.2 From e3de8dcd0a083ccc74507368d97a2b1a2c55ea68 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 5 Jul 2023 19:30:37 +0200 Subject: [PATCH 021/120] home: Remove doom emacs submodule --- .gitmodules | 3 --- home/emacs.d | 1 - 2 files changed, 4 deletions(-) delete mode 160000 home/emacs.d diff --git a/.gitmodules b/.gitmodules index 0f15da1..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "home/emacs.d"] - path = home/emacs.d - url = https://github.com/hlissner/doom-emacs diff --git a/home/emacs.d b/home/emacs.d deleted file mode 160000 index bf8495b..0000000 --- a/home/emacs.d +++ /dev/null @@ -1 +0,0 @@ -Subproject commit bf8495b4122701fb30cb6cea37281dc8f3bedcd0 -- 2.51.2 From 54cc1aa25e0c01f8dd70818e222686534222586e Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 5 Jul 2023 19:34:48 +0200 Subject: [PATCH 022/120] cli: Cleanup format --- home/cli.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/home/cli.nix b/home/cli.nix index a018128..acd547b 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -48,6 +48,10 @@ in { # editing nil # nix language server + shellcheck + editorconfig-core-c + shfmt + (aspellWithDicts (dicts: with dicts; [ en en-computers en-science de ])) # system tools htop-vim # htop with vim bindings @@ -109,9 +113,7 @@ in { }; }; - starship = { - enable = true; - }; + starship = { enable = true; }; # better cat bat.enable = true; @@ -125,7 +127,6 @@ in { emacs = { enable = true; - #package = pkgs.emacs-unstable; extraPackages = epkgs: with epkgs; [ vterm ]; }; -- 2.51.2 From 3891b6c2cd3a3fc39272e79e2c0660d87ab00992 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 5 Jul 2023 19:37:34 +0200 Subject: [PATCH 023/120] tmux: Provide key binding to swap windows --- home/cli.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/home/cli.nix b/home/cli.nix index acd547b..70d0e48 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -87,6 +87,8 @@ in { set -g escape-time 0 bind-key C-z send-prefix set -g renumber-windows on + + bind-key T swap-window -t 0 ''; }; -- 2.51.2 From 92bf748a71cb57a1e822eb6497f68ba41f678886 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 5 Jul 2023 21:09:55 +0200 Subject: [PATCH 024/120] emacs: Set as default editor --- home/cli.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/home/cli.nix b/home/cli.nix index 70d0e48..ffeb20c 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -176,7 +176,11 @@ in { defaultCacheTtlSsh = 300; }; - services.emacs = { enable = true; }; + services.emacs = { + enable = true; + defaultEditor = true; + startWithUserSession = true; + }; home.file.".local" = { recursive = true; -- 2.51.2 From 3a2f7149438007a7f5909b052329bdc2c6caaf13 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 5 Jul 2023 22:34:20 +0200 Subject: [PATCH 025/120] cli: Put name and email into a record --- home/cli.nix | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/home/cli.nix b/home/cli.nix index ffeb20c..0969589 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -2,9 +2,11 @@ # minimal config, suitable for servers let - myUser = "alex"; - myName = "Alexander Kobjolke"; - myMail = "me@failco.de"; + user = { + name = "alex"; + fullName = "Alexander Kobjolke"; + mail = "me@failco.de"; + }; in { imports = [ # shell config @@ -13,8 +15,8 @@ in { programs.home-manager.enable = true; home = { - username = myUser; - homeDirectory = "/home/${myUser}"; + username = user.name; + homeDirectory = "/home/${config.home.username}"; stateVersion = "21.05"; sessionPath = [ "$HOME/.local/bin" "$HOME/.emacs.d/bin" ]; shellAliases = { @@ -96,9 +98,9 @@ in { target = "pijul/config.toml"; text = '' [author] - name = "${myUser}" - full_name = "${myName}" - email = "${myMail}" + name = "${user.name}" + full_name = "${user.fullName}" + email = "${user.mail}" ''; }; @@ -140,8 +142,8 @@ in { git = { enable = true; ignores = [ "*~" "*.swp" "result" "dist-newstyle" ]; - userEmail = myMail; - userName = myName; + userEmail = user.mail; + userName = user.fullName; aliases = { st = "status"; }; extraConfig = { init.defaultBranch = "main"; }; }; -- 2.51.2 From ba2ef103fa16cf5ac381497130f6a3c787d56aff Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 5 Jul 2023 22:35:01 +0200 Subject: [PATCH 026/120] cli: Configure exa to replace ls --- home/cli.nix | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/home/cli.nix b/home/cli.nix index 0969589..f2f2d15 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -19,11 +19,7 @@ in { homeDirectory = "/home/${config.home.username}"; stateVersion = "21.05"; sessionPath = [ "$HOME/.local/bin" "$HOME/.emacs.d/bin" ]; - shellAliases = { - e = "emacsclient -c $@"; - ls = "exa $@"; - t = "exa -T $@"; - }; + shellAliases = { e = "emacsclient -c $@"; }; }; # do not show home-manager notifications @@ -59,8 +55,6 @@ in { htop-vim # htop with vim bindings erdtree # du+tree had sex dua # ncdu but better - bat # better cat - exa # better ls fzf gcc @@ -107,6 +101,9 @@ in { programs = { bash = { enable = true; }; + # better cat + bat.enable = true; + zsh = { enable = true; enableAutosuggestions = true; @@ -117,10 +114,14 @@ in { }; }; - starship = { enable = true; }; + # better ls with icons and stuff, maybe also try lsd + exa = { + enable = true; + icons = true; + enableAliases = true; + }; - # better cat - bat.enable = true; + starship = { enable = true; }; direnv = { enable = true; -- 2.51.2 From d2c9c51070320e8dfc0fae7ffd40b1735aeedb73 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 8 Jul 2023 16:38:59 +0200 Subject: [PATCH 027/120] cli: Move git-annex to user packages (from thrall) --- home/cli.nix | 3 +++ hosts/thrall/default.nix | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/home/cli.nix b/home/cli.nix index f2f2d15..a28e0ac 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -29,6 +29,9 @@ in { # archives #p7zip #unrar + git-annex + git-annex-remote-rclone + # nix tools nix-index nixfmt diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 88fb3e7..7549326 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -140,7 +140,6 @@ in { htop tmux git - git-annex #agenix.defaultPackage.x86_64-linux restic # fast and secure backup rclone -- 2.51.2 From c2fb887f348af5202f6e48d6292bff8a5f981841 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 9 Jul 2023 20:37:31 +0200 Subject: [PATCH 028/120] thrall: Make all inputs available as channels --- flake.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/flake.nix b/flake.nix index 0d868da..5be9f33 100644 --- a/flake.nix +++ b/flake.nix @@ -52,6 +52,10 @@ overlays = with inputs; [ emacs.overlay ]; }; }) + { + nix.registry = + nixpkgs.lib.mapAttrs (_: value: { flake = value; }) inputs; + } snm.nixosModule ./modules/security.nix ./hosts/thrall -- 2.51.2 From 4dc23264c1c3f1545a1f8db4c370f7e59b97ec69 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Fri, 7 Jul 2023 16:03:56 +0200 Subject: [PATCH 029/120] dregil: Install wine explicitly --- outputs/homeConfigurations/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index 8b9ac20..df82bdf 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -30,6 +30,7 @@ in { # gaming support lutris + wine ]; }; -- 2.51.2 From 12ea6444b96c0d35b6fc8041b8eff0f813dd6972 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Tue, 11 Jul 2023 22:34:46 +0200 Subject: [PATCH 030/120] redmi: Add git-annex --- hosts/redmi/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/redmi/default.nix b/hosts/redmi/default.nix index 9f607a0..2cd0cd2 100644 --- a/hosts/redmi/default.nix +++ b/hosts/redmi/default.nix @@ -7,6 +7,7 @@ vim # or some other editor, e.g. nano or neovim git + git-annex mosh openssh wget -- 2.51.2 From 22defe7f45c79d4ec079c2fea8eeeefac8534304 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 12 Jul 2023 00:37:41 +0200 Subject: [PATCH 031/120] redmi: Install helix --- hosts/redmi/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/redmi/default.nix b/hosts/redmi/default.nix index 2cd0cd2..9de9508 100644 --- a/hosts/redmi/default.nix +++ b/hosts/redmi/default.nix @@ -11,6 +11,7 @@ mosh openssh wget + helix # Some common stuff that people expect to have #diffutils -- 2.51.2 From 4a9405948731bd96d3970bd9ef8f79b59bcd917e Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Fri, 7 Jul 2023 16:03:56 +0200 Subject: [PATCH 032/120] dregil: Install wine explicitly --- outputs/homeConfigurations/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index df82bdf..da6f561 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -30,7 +30,7 @@ in { # gaming support lutris - wine + winePackages.stagingFull ]; }; -- 2.51.2 From 3addce8fc55f3b9f8996612f0d77ec5cff6a55be Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 17 Jul 2023 13:30:46 +0200 Subject: [PATCH 033/120] dregil: Install calibre ebook reader --- outputs/homeConfigurations/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index da6f561..29afa6b 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -31,6 +31,9 @@ in { # gaming support lutris winePackages.stagingFull + + # reading + calibre ]; }; -- 2.51.2 From c0b95af1bf984e872ccbfbc047dd901fa2b419f8 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 23 Jul 2023 11:52:37 +0200 Subject: [PATCH 034/120] thrall: Use htpasswd from apacheHttpd to generate htaccess --- secrets/hledger-web.htaccess.age | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/secrets/hledger-web.htaccess.age b/secrets/hledger-web.htaccess.age index 13337dc..c22f639 100644 --- a/secrets/hledger-web.htaccess.age +++ b/secrets/hledger-web.htaccess.age @@ -1,10 +1,10 @@ age-encryption.org/v1 --> X25519 ntNFHjGdIlYJTbloT8Ujpn8Yh+oAaX/m0DHrq9ukLHQ -CTj9AefZLuZ0sBuFatp8/lEL8bUf2IXOHW00XJEdSVY --> ssh-ed25519 NCz+gA kj420yScWjDD95LtvEb/62uXVzJU/v0ZSuJ+15MRdS8 -vFZNC94TxoXh1vVjHFPwPIV+nta5rWgdYWTokbBitxE --> 9-grease %8XR5/t } -22U6Glc0+L2vlRnrx1Sd1g9b4sfpt/1d0ihfEk5ZQOgEcy45+eNmbHTLQHYzpkFo -PmIBJrRj07B93Pp1MR4sHmOMtK358D9l1LSURdWQtmtcocOoKdQWmPq+IQ ---- 1F50mU6ZhA2vbJq1Nkae6KWzxGY1DGdPNhlA6S3r2GM -FMѮL~:5v3 ߁d? l~:_ՄZDJR+" \ No newline at end of file +-> X25519 FrE3cLVPZshP6+VgS5aRSggS/3XEjLZW2/yCcxQT6z0 +xlPC1bF0NqiDVEk/xU+7GPGpwbTPZk+iSZ4QvvJzCcU +-> ssh-ed25519 NCz+gA Ag6jD9h0FTR+jVR2K3wpQgGqyLJzQZyNvU2+AJPz+Xc +3QJhYsIl23/ve++5r9X/a2YUPSUgIBHJ8srPmeSnpKw +-> BaPA]-grease A\OcT5| +L4Nk5eiaKq72ELBFQemUGlXJXpmUt5aN++g9ljz+DBG8XL3bQ9RbPMhbEy/gzKf6 +8WbY +--- hVjNjD1o1TI5B+CZqTdcoHjx3rRJCgrd4f13Vbhazmw +ؾt,AĬ[w3Lؒb`4?6 Ьޮժ1q?.'KjeidUdfeJJ=pŗ?o \ No newline at end of file -- 2.51.2 From 3385a2362bf5d356007bd28b122a389c423d72ff Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 24 Jul 2023 20:19:22 +0200 Subject: [PATCH 035/120] thrall: configure hledger-web service --- hosts/thrall/default.nix | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 7549326..6b6ba7a 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -3,7 +3,9 @@ # and in the NixOS manual (accessible by running ‘nixos-help’). { config, pkgs, ... }: -let extIface = "ens3"; +let + extIface = "ens3"; + ledgerVHost = "ledger.failco.de"; in { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix @@ -244,12 +246,14 @@ in { }; # hledger - "ledger.failco.de" = { + "${ledgerVHost}" = { forceSSL = true; enableACME = true; basicAuthFile = config.age.secrets.hledger-web.path; locations."/" = { - proxyPass = "http://127.0.0.1:3003/"; + proxyPass = "http://${config.services.hledger-web.host}:${ + toString config.services.hledger-web.port + }/"; proxyWebsockets = true; }; }; @@ -291,6 +295,19 @@ in { }; }; + services.hledger-web = { + enable = true; + baseUrl = "https://${ledgerVHost}"; + port = 3003; + capabilities = { + view = true; + add = true; + manage = true; + }; + journalFiles = [ "current.journal" ]; + extraOptions = [ "-B" "--value=then" ]; + }; + services.fail2ban = { enable = true; maxretry = 5; -- 2.51.2 From ef5cad79297bb735a4069f322bca500422b9ee84 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 24 Jul 2023 22:14:28 +0200 Subject: [PATCH 036/120] cli: Add gopass-jsonapi and gopass-hibp gopass-jsonapi is required for the firefox extension Gopass-Bridge, gopass-hibp integrates Have I Been Pwned into gopass. --- home/cli.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home/cli.nix b/home/cli.nix index a28e0ac..89602bf 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -60,6 +60,10 @@ in { dua # ncdu but better fzf + gopass + gopass-jsonapi + gopass-hibp + gcc cmake graphviz -- 2.51.2 From e58abd38d34efee67ccff73d662471667727ddbe Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Fri, 28 Jul 2023 20:57:52 +0200 Subject: [PATCH 037/120] redmi: update to nixos 23.05 --- flake.lock | 24 ++++++++++++------------ flake.nix | 12 ++++++------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index 986a9f8..ed20e3d 100644 --- a/flake.lock +++ b/flake.lock @@ -234,16 +234,16 @@ "nmd": "nmd_2" }, "locked": { - "lastModified": 1670198918, - "narHash": "sha256-oNlUhAM0/a3pDdCMmBWA+CLrDAIYJqAAMyrDp8fNSM4=", + "lastModified": 1688144254, + "narHash": "sha256-8KL1l/7eP2Zm1aJjdVaSOk0W5kTnJo9kcgW03gqWuiI=", "owner": "t184256", "repo": "nix-on-droid", - "rev": "b00cb5e7e2a47d85a019119069b153cda4002d0a", + "rev": "2301e01d48c90b60751005317de7a84a51a87eb6", "type": "github" }, "original": { "owner": "t184256", - "ref": "release-22.11", + "ref": "release-23.05", "repo": "nix-on-droid", "type": "github" } @@ -281,33 +281,33 @@ }, "nixpkgs-droid": { "locked": { - "lastModified": 1687376262, - "narHash": "sha256-xtenf0Nc6So/5uaQqe8u3GVoAs/YdMUFsysPUuK8w1s=", + "lastModified": 1690470004, + "narHash": "sha256-l57RmPhPz9r1LGDg/0v8bYgJO8R+GGTQZtkIxE7negU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7859e9c101fabbd62551b8f4260124a6e2f01a46", + "rev": "9462344318b376e157c94fa60c20a25b913b2381", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.11", + "ref": "nixos-23.05", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-for-bootstrap": { "locked": { - "lastModified": 1669834992, - "narHash": "sha256-YnhZGHgb4C3Q7DSGisO/stc50jFb9F/MzHeKS4giotg=", + "lastModified": 1686921029, + "narHash": "sha256-J1bX9plPCFhTSh6E3TWn9XSxggBh/zDD4xigyaIQBy8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "596a8e828c5dfa504f91918d0fa4152db3ab5502", + "rev": "c7ff1b9b95620ce8728c0d7bd501c458e6da9e04", "type": "github" }, "original": { "owner": "NixOS", "repo": "nixpkgs", - "rev": "596a8e828c5dfa504f91918d0fa4152db3ab5502", + "rev": "c7ff1b9b95620ce8728c0d7bd501c458e6da9e04", "type": "github" } }, diff --git a/flake.nix b/flake.nix index 5be9f33..81be2fc 100644 --- a/flake.nix +++ b/flake.nix @@ -1,7 +1,7 @@ { inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05"; - nixpkgs-droid.url = "github:NixOS/nixpkgs/nixos-22.11"; + nixpkgs-droid.url = "github:NixOS/nixpkgs/nixos-23.05"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { @@ -21,7 +21,7 @@ }; nix-on-droid = { - url = "github:t184256/nix-on-droid/release-22.11"; + url = "github:t184256/nix-on-droid/release-23.05"; inputs.nixpkgs.follows = "nixpkgs-droid"; }; @@ -72,12 +72,12 @@ nixosConfigurations."dregil" = import ./hosts/dregil { inherit inputs; }; homeConfigurations = import ./outputs/homeConfigurations inputs; - nixOnDroidConfigurations.default = - inputs.nix-on-droid.lib.nixOnDroidConfiguration { + nixOnDroidConfigurations.default = with inputs; + nix-on-droid.lib.nixOnDroidConfiguration { modules = [ ./hosts/redmi - { nix.registry.nixpkgs.flake = nixpkgs; } - { nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; } + { nix.registry.nixpkgs.flake = nixpkgs-droid; } + { nix.nixPath = [ "nixpkgs=${nixpkgs-droid}" ]; } ]; }; }; -- 2.51.2 From 40843d93380d7974eb315a23a89d3750eb3a8b05 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Tue, 25 Jul 2023 22:23:31 +0200 Subject: [PATCH 038/120] thrall: Fix typo in comment --- hosts/thrall/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 6b6ba7a..391c744 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -120,7 +120,7 @@ in { }]; }; - # Select internationalisation properties. + # Select internationalization properties. i18n.defaultLocale = "en_US.UTF-8"; console = { font = "Lat2-Terminus16"; -- 2.51.2 From a8cbaa1647d0d0ed2e7b42f62384fc69b6582557 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 29 Jul 2023 19:55:19 +0200 Subject: [PATCH 039/120] flake: pass inputs as special argument to modules --- flake.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 81be2fc..633ac3e 100644 --- a/flake.nix +++ b/flake.nix @@ -45,8 +45,9 @@ outputs = { home-manager, nixpkgs, agenix, snm, ... }@inputs: { nixosConfigurations."thrall" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; + specialArgs = { inherit inputs; }; modules = [ - ({ + ({ inputs, ... }: { nixpkgs = { config.allowUnfree = true; overlays = with inputs; [ emacs.overlay ]; -- 2.51.2 From f8411ac7e9b65c5e45947ef98bb94467cf5da2ac Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Tue, 1 Aug 2023 15:34:19 +0200 Subject: [PATCH 040/120] thrall: Combine two inlined modules --- flake.nix | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/flake.nix b/flake.nix index 633ac3e..02cdac8 100644 --- a/flake.nix +++ b/flake.nix @@ -47,16 +47,13 @@ system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = [ - ({ inputs, ... }: { + ({ inputs, lib, ... }: { nixpkgs = { config.allowUnfree = true; overlays = with inputs; [ emacs.overlay ]; }; + nix.registry = lib.mapAttrs (_: value: { flake = value; }) inputs; }) - { - nix.registry = - nixpkgs.lib.mapAttrs (_: value: { flake = value; }) inputs; - } snm.nixosModule ./modules/security.nix ./hosts/thrall -- 2.51.2 From 53b6e8d5b4373ad2c362db4dda3e494df2f5b13d Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Tue, 1 Aug 2023 16:03:32 +0200 Subject: [PATCH 041/120] dregil: Use home-manager to set keyboard --- hosts/dregil/configuration.nix | 79 ++++++++++++-------------- hosts/dregil/default.nix | 7 +-- outputs/homeConfigurations/default.nix | 5 ++ 3 files changed, 44 insertions(+), 47 deletions(-) diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index 0c532fd..6a2defc 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -11,14 +11,12 @@ let export __VK_LAYER_NV_optimus=NVIDIA_only exec "$@" ''; -in -{ - imports = - [ - # Include the results of the hardware scan. - ./hardware-configuration.nix - # - ]; +in { + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + # + ]; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; @@ -30,7 +28,8 @@ in networking.hostName = "dregil"; # Define your hostname. # Pick only one of the below networking options. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + networking.networkmanager.enable = + true; # Easiest to use and most distros use this by default. # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; @@ -38,7 +37,8 @@ in console = { font = "Lat2-Terminus16"; - useXkbConfig = true; # use xkbOptions in tty. + #useXkbConfig = true; # use xkbOptions in tty. + keyMap = "dvorak"; }; # Enable the X11 windowing system. @@ -47,36 +47,36 @@ in exportConfiguration = true; # Configure keymap in X11 - layout = "dvorak"; + layout = "us"; xkbOptions = "terminate:ctrl_alt_bksp,caps:escape,compose:ralt"; videoDrivers = [ "nvidia" ]; # "modesetting" ]; - displayManager.lightdm = { - enable = true; - }; + displayManager.lightdm = { enable = true; }; desktopManager.xfce.enable = true; - + desktopManager.plasma5.enable = true; + # Enable touchpad support (enabled default in most desktopManager). libinput = { enable = true; touchpad.disableWhileTyping = true; touchpad.naturalScrolling = true; - mouse.naturalScrolling = config.services.xserver.libinput.touchpad.naturalScrolling; + mouse.naturalScrolling = + config.services.xserver.libinput.touchpad.naturalScrolling; }; }; fonts = { enableDefaultFonts = true; fonts = with pkgs; [ - corefonts - noto-fonts - noto-fonts-emoji - fira-code - fira-code-symbols - nerdfonts + corefonts + noto-fonts + noto-fonts-emoji + fira-code + fira-code-symbols + nerdfonts ]; }; @@ -90,42 +90,37 @@ in # Define a user account. Don't forget to set a password with ‘passwd’. users.users.alex = { isNormalUser = true; - extraGroups = [ "wheel" # Enable ‘sudo’ for the user. - "input" - ]; - }; + extraGroups = [ + "wheel" # Enable ‘sudo’ for the user. + "input" + ]; + }; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ - wget - ripgrep - git - nvidia-offload - pinentry + wget + ripgrep + git + nvidia-offload + pinentry ]; # adjust channels to nixpkgs used on this system via this flake environment.etc."nix/inputs/nixpkgs".source = inputs.nixpkgs-unstable.outPath; - nix.nixPath = [ - "nixpkgs=${inputs.nixpkgs-unstable}" - ]; + nix.nixPath = [ "nixpkgs=${inputs.nixpkgs-unstable}" ]; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.mtr.enable = true; programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; + enable = true; + enableSSHSupport = true; }; - programs.neovim = { - enable = true; - }; + programs.neovim = { enable = true; }; - programs.steam = { - enable = true; - }; + programs.steam = { enable = true; }; # List services that you want to enable: diff --git a/hosts/dregil/default.nix b/hosts/dregil/default.nix index 678c04d..e834431 100644 --- a/hosts/dregil/default.nix +++ b/hosts/dregil/default.nix @@ -6,12 +6,9 @@ let pkgs = import inputs.nixpkgs-unstable { inherit system; - config = { - allowUnfree = true; - }; + config = { allowUnfree = true; }; }; -in -nixosSystem { +in nixosSystem { inherit system pkgs; specialArgs = { inherit inputs; }; modules = [ diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index 29afa6b..60102c2 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -13,6 +13,11 @@ in { ../../home/cli.nix { home = { + language.base = "en_US@UTF-8"; + + keyboard.type = "us"; + keyboard.variant = "dvorak"; + packages = with pkgs; [ alacritty # fast terminal firefox # the browser with the fox -- 2.51.2 From 343ac3757e984a69be36377e8d61f250b9182642 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Tue, 1 Aug 2023 16:04:06 +0200 Subject: [PATCH 042/120] dregil: Add an account for Anne --- home/anne/default.nix | 26 ++++++++++++++++++++++++++ hosts/dregil/default.nix | 2 ++ outputs/homeConfigurations/default.nix | 4 ++-- 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 home/anne/default.nix diff --git a/home/anne/default.nix b/home/anne/default.nix new file mode 100644 index 0000000..978da66 --- /dev/null +++ b/home/anne/default.nix @@ -0,0 +1,26 @@ +{ config, lib, pkgs, ... }: + +{ + users.users.anne = { + isNormalUser = true; + extraGroups = [ "input" ]; + description = "Anne Kobjolke"; + home = "/home/anne"; + hashedPassword = + "$6$Lq3kAyI7Oh3uvf9T$lxE1V9adw1lqjRT0tvCdj17zUz.nJkqkMSA8Y6ipuBIHoZqJKJcQPLby/BWdDvzcmCbyEOtA7grToclNnbV49/"; + }; + + home-manager.users.anne = { + home = { + username = "anne"; + homeDirectory = config.users.users.anne.home; + language.base = "de_DE.UTF-8"; + language.messages = "de_DE.UTF-8"; + language.time = "de_DE.UTF-8"; + language.paper = "de_DE.UTF-8"; + stateVersion = "23.05"; + packages = with pkgs; [ firefox alacritty ]; + keyboard.type = "de"; + }; + }; +} diff --git a/hosts/dregil/default.nix b/hosts/dregil/default.nix index e834431..f76b4f6 100644 --- a/hosts/dregil/default.nix +++ b/hosts/dregil/default.nix @@ -15,5 +15,7 @@ in nixosSystem { ../../modules/security.nix ../../modules/common-system.nix ./configuration.nix + inputs.home-manager-unstable.nixosModules.home-manager + ../../home/anne ]; } diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index 60102c2..4221120 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -13,10 +13,10 @@ in { ../../home/cli.nix { home = { - language.base = "en_US@UTF-8"; + language.base = "en_US.UTF-8"; keyboard.type = "us"; - keyboard.variant = "dvorak"; + keyboard.variant = "dv"; packages = with pkgs; [ alacritty # fast terminal -- 2.51.2 From b86f21d565d51bdab284e8cdb73dec8335ed54a1 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 3 Aug 2023 08:15:38 +0200 Subject: [PATCH 043/120] dregil: Add german to list of locales Also set TIME_STYLE to iso. --- hosts/dregil/configuration.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index 6a2defc..7761133 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -35,6 +35,11 @@ in { # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + i18n = { + extraLocaleSettings = { TIME_STYLE = "iso"; }; + supportedLocales = [ "C.UTF-8" "en_US.UTF-8" "de_DE.UTF8" ]; + }; + console = { font = "Lat2-Terminus16"; #useXkbConfig = true; # use xkbOptions in tty. -- 2.51.2 From f911d46279e9bf196a939eb277e49337f7663473 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 3 Aug 2023 08:17:03 +0200 Subject: [PATCH 044/120] dregil: Use a fancier greeter for lightdm --- hosts/dregil/configuration.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index 7761133..849449f 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -58,7 +58,10 @@ in { videoDrivers = [ "nvidia" ]; # "modesetting" ]; - displayManager.lightdm = { enable = true; }; + displayManager.lightdm = { + enable = true; + greeters.slick.enable = true; + }; desktopManager.xfce.enable = true; desktopManager.plasma5.enable = true; -- 2.51.2 From 160313f4f51b48d56171c4d1894dee23c17f6974 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 3 Aug 2023 08:17:45 +0200 Subject: [PATCH 045/120] dregil: Switch from plasma to gnome --- hosts/dregil/configuration.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index 849449f..93a7b31 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -64,7 +64,7 @@ in { }; desktopManager.xfce.enable = true; - desktopManager.plasma5.enable = true; + desktopManager.gnome.enable = true; # Enable touchpad support (enabled default in most desktopManager). libinput = { -- 2.51.2 From 91fac86331edc1df8c310cb9b84932b237158991 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 3 Aug 2023 23:10:51 +0200 Subject: [PATCH 046/120] dregil: Set default locales --- hosts/dregil/configuration.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index 93a7b31..979de8f 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -37,7 +37,8 @@ in { i18n = { extraLocaleSettings = { TIME_STYLE = "iso"; }; - supportedLocales = [ "C.UTF-8" "en_US.UTF-8" "de_DE.UTF8" ]; + supportedLocales = + [ "C.UTF-8/UTF-8" "en_US.UTF-8/UTF-8" "de_DE.UTF-8/UTF-8" ]; }; console = { -- 2.51.2 From 654cbbde52c51681ffa480c66385c473fb8d000c Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 3 Aug 2023 23:11:41 +0200 Subject: [PATCH 047/120] dregil: Set my default keyboard to us/dvorak --- outputs/homeConfigurations/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index 4221120..de7154b 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -16,7 +16,7 @@ in { language.base = "en_US.UTF-8"; keyboard.type = "us"; - keyboard.variant = "dv"; + keyboard.variant = "dvorak"; packages = with pkgs; [ alacritty # fast terminal -- 2.51.2 From 79ac67ecc5de62db368baf7d094319b78a622595 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Fri, 4 Aug 2023 00:21:25 +0200 Subject: [PATCH 048/120] dregil: Install some more ui tools --- outputs/homeConfigurations/default.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index de7154b..c885524 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -19,9 +19,6 @@ in { keyboard.variant = "dvorak"; packages = with pkgs; [ - alacritty # fast terminal - firefox # the browser with the fox - # social jitsi-meet-electron # jitsi as a stand-alone app discord # talk to other people @@ -42,6 +39,17 @@ in { ]; }; + programs = { + alacritty.enable = true; + autorandr.enable = true; + feh.enable = true; + firefox.enable = true; + mpv.enable = true; + rofi.enable = true; + rofi.pass.enable = true; + zathura.enable = true; + }; + services.gpg-agent = { enable = true; enableSshSupport = true; -- 2.51.2 From b407c5820558eaabae560f36eba42109bdff947c Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 5 Aug 2023 23:15:05 +0200 Subject: [PATCH 049/120] dregil: Enable autorandr service --- outputs/homeConfigurations/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index c885524..01ad36a 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -55,6 +55,8 @@ in { enableSshSupport = true; sshKeys = [ "9027AB16B9A7C20BD29F30F55CBA054430BF014C" ]; }; + + services.autorandr = { enable = true; }; } ]; }; -- 2.51.2 From d325715e33f4b4ac297af5c2468bfbcee22d09e4 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 5 Aug 2023 23:15:20 +0200 Subject: [PATCH 050/120] Remove commented code --- outputs/homeConfigurations/default.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index 01ad36a..0119318 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -22,9 +22,6 @@ in { # social jitsi-meet-electron # jitsi as a stand-alone app discord # talk to other people - #inputs.simplex-chat.packages."x86_64-linux"."exe:simplex-chat" - - # editing # system tools uhk-agent # my keyboard -- 2.51.2 From ea06ca77c0fa4203608d872d5b59b6e7b4ff7359 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 5 Aug 2023 23:27:13 +0200 Subject: [PATCH 051/120] dregil: Fix typo in keyboard configuration --- outputs/homeConfigurations/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index 0119318..f6da811 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -15,7 +15,7 @@ in { home = { language.base = "en_US.UTF-8"; - keyboard.type = "us"; + keyboard.layout = "us"; keyboard.variant = "dvorak"; packages = with pkgs; [ -- 2.51.2 From 20856e1c65a57c64183c4fc14238f99a706e39ef Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 5 Aug 2023 23:27:33 +0200 Subject: [PATCH 052/120] dregil: Activate xsession for alex --- outputs/homeConfigurations/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index f6da811..abc3e3d 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -54,6 +54,8 @@ in { }; services.autorandr = { enable = true; }; + + xsession.enable = true; } ]; }; -- 2.51.2 From e30fe7eef8e69eb19609470126fc32529f337fcb Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 6 Aug 2023 00:01:07 +0200 Subject: [PATCH 053/120] dregil: Activote xsession for anne --- home/anne/default.nix | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/home/anne/default.nix b/home/anne/default.nix index 978da66..929ce06 100644 --- a/home/anne/default.nix +++ b/home/anne/default.nix @@ -1,26 +1,32 @@ { config, lib, pkgs, ... }: - -{ - users.users.anne = { +let username = "anne"; +in { + users.users.${username} = { isNormalUser = true; extraGroups = [ "input" ]; description = "Anne Kobjolke"; - home = "/home/anne"; + home = "/home/${username}"; hashedPassword = "$6$Lq3kAyI7Oh3uvf9T$lxE1V9adw1lqjRT0tvCdj17zUz.nJkqkMSA8Y6ipuBIHoZqJKJcQPLby/BWdDvzcmCbyEOtA7grToclNnbV49/"; }; - home-manager.users.anne = { + home-manager.users.${username} = { home = { - username = "anne"; - homeDirectory = config.users.users.anne.home; + username = "${username}"; + homeDirectory = config.users.users.${username}.home; language.base = "de_DE.UTF-8"; language.messages = "de_DE.UTF-8"; language.time = "de_DE.UTF-8"; language.paper = "de_DE.UTF-8"; stateVersion = "23.05"; packages = with pkgs; [ firefox alacritty ]; - keyboard.type = "de"; + keyboard.layout = "de"; + keyboard.variant = "nodeadkeys"; + }; + + xsession = { + enable = true; + windowManager.command = "${pkgs.gnome.gnome-session}/bin/gnome-session"; }; }; } -- 2.51.2 From 11879ff5ef25c7c74196a3b1ff59bd295d262414 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 6 Aug 2023 08:46:31 +0200 Subject: [PATCH 054/120] dregil: Remove superfluous language settings --- home/anne/default.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/home/anne/default.nix b/home/anne/default.nix index 929ce06..2bed7de 100644 --- a/home/anne/default.nix +++ b/home/anne/default.nix @@ -15,9 +15,6 @@ in { username = "${username}"; homeDirectory = config.users.users.${username}.home; language.base = "de_DE.UTF-8"; - language.messages = "de_DE.UTF-8"; - language.time = "de_DE.UTF-8"; - language.paper = "de_DE.UTF-8"; stateVersion = "23.05"; packages = with pkgs; [ firefox alacritty ]; keyboard.layout = "de"; -- 2.51.2 From c662e3354d546cdb5b1ddcb66f7187b20054f44a Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 6 Aug 2023 08:49:31 +0200 Subject: [PATCH 055/120] dregil: Install gnome for Anne --- home/anne/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/home/anne/default.nix b/home/anne/default.nix index 2bed7de..6f12d26 100644 --- a/home/anne/default.nix +++ b/home/anne/default.nix @@ -16,7 +16,12 @@ in { homeDirectory = config.users.users.${username}.home; language.base = "de_DE.UTF-8"; stateVersion = "23.05"; - packages = with pkgs; [ firefox alacritty ]; + packages = with pkgs; [ + firefox + alacritty + gnome.gnome-session + gnome.gnome-control-center + ]; keyboard.layout = "de"; keyboard.variant = "nodeadkeys"; }; -- 2.51.2 From fc62e3d62f1157bafbaf96edcbdbc6d361615931 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 6 Aug 2023 14:24:51 +0200 Subject: [PATCH 056/120] dregil: Explicitly set boot loader timeout --- hosts/dregil/configuration.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index 979de8f..c37fc54 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -21,6 +21,7 @@ in { # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; + boot.loader.timeout = 5; # do not protect the kernel image to allow hibernation security.protectKernelImage = lib.mkForce false; -- 2.51.2 From 1644897563ca29492d336e3dbfc26dbf140a035f Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 6 Aug 2023 21:47:55 +0200 Subject: [PATCH 057/120] nixpkgs: Update nixpkgs-unstable and home-manager --- flake.lock | 12 ++++++------ hosts/dregil/configuration.nix | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/flake.lock b/flake.lock index ed20e3d..995ec9e 100644 --- a/flake.lock +++ b/flake.lock @@ -144,11 +144,11 @@ ] }, "locked": { - "lastModified": 1687473300, - "narHash": "sha256-4LflQpktYFiub8xVhEN9EZf1cYsr09md01rBJZRCGCc=", + "lastModified": 1691312444, + "narHash": "sha256-J9e9dGwAPTX+UlAn8jehoyaEq6fwK+L+gunfx0cYT4E=", "owner": "nix-community", "repo": "home-manager", - "rev": "70ac18872a5f1a57a4546ff58888bf67a8bbb5b3", + "rev": "903e06d734bcae48efb79b9afd51b406d2744179", "type": "github" }, "original": { @@ -329,11 +329,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1687412861, - "narHash": "sha256-Z/g0wbL68C+mSGerYS2quv9FXQ1RRP082cAC0Bh4vcs=", + "lastModified": 1691186842, + "narHash": "sha256-wxBVCvZUwq+XS4N4t9NqsHV4E64cPVqQ2fdDISpjcw0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e603dc5f061ca1d8a19b3ede6a8cf9c9fcba6cdc", + "rev": "18036c0be90f4e308ae3ebcab0e14aae0336fe42", "type": "github" }, "original": { diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index c37fc54..ad00bf8 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -79,8 +79,8 @@ in { }; fonts = { - enableDefaultFonts = true; - fonts = with pkgs; [ + enableDefaultPackages = true; + packages = with pkgs; [ corefonts noto-fonts noto-fonts-emoji -- 2.51.2 From 319d66e512a7d82c20e9bf2fa0fd40469d22080b Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 7 Aug 2023 23:20:21 +0200 Subject: [PATCH 058/120] dregil: Repeat system-wide xkb options --- outputs/homeConfigurations/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index abc3e3d..32b1e48 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -17,6 +17,8 @@ in { keyboard.layout = "us"; keyboard.variant = "dvorak"; + keyboard.options = + [ "terminate:ctrl_alt_bksp" "caps:escape" "compose:ralt" ]; packages = with pkgs; [ # social -- 2.51.2 From bbd734d9b61c183248fdd0b58642cb598c4cc7f8 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 7 Aug 2023 23:21:56 +0200 Subject: [PATCH 059/120] dregil: Enable browserpass firefox extension --- outputs/homeConfigurations/default.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index 32b1e48..b12e670 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -41,8 +41,23 @@ in { programs = { alacritty.enable = true; autorandr.enable = true; + + browserpass = { + enable = true; + browsers = [ "firefox" ]; + }; + feh.enable = true; - firefox.enable = true; + firefox = { + enable = true; + package = pkgs.firefox.override { + cfg = { + enableGnomeExtensions = true; + enableTridactylNative = true; + enableBrowserpass = true; + }; + }; + }; mpv.enable = true; rofi.enable = true; rofi.pass.enable = true; -- 2.51.2 From 9333f62fcdc72d36a43bfbb95df6f5e2ecd3f093 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 16 Aug 2023 13:28:38 +0200 Subject: [PATCH 060/120] cli: Add git absorb git-absorb is similar to `hq absorb`. --- home/cli.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/cli.nix b/home/cli.nix index 89602bf..d211003 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -29,6 +29,7 @@ in { # archives #p7zip #unrar + git-absorb git-annex git-annex-remote-rclone -- 2.51.2 From a42932d6f01db95d91e2b1a0bc25bf61b6270c74 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 3 Sep 2023 22:44:05 +0200 Subject: [PATCH 061/120] dregil: Set zsh as default shell --- hosts/dregil/configuration.nix | 3 +++ outputs/homeConfigurations/default.nix | 11 +++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index ad00bf8..1a54eaa 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -104,6 +104,7 @@ in { "wheel" # Enable ‘sudo’ for the user. "input" ]; + shell = pkgs.zsh; }; # List packages installed in system profile. To search, run: @@ -132,6 +133,8 @@ in { programs.steam = { enable = true; }; + programs.zsh = { enable = true; }; + # List services that you want to enable: # Enable the OpenSSH daemon. diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index b12e670..ec43ba4 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -40,7 +40,7 @@ in { programs = { alacritty.enable = true; - autorandr.enable = true; + # autorandr.enable = true; browserpass = { enable = true; @@ -62,6 +62,13 @@ in { rofi.enable = true; rofi.pass.enable = true; zathura.enable = true; + + zsh = { + enable = true; + loginExtra = '' + export SSH_AUTH_SOCK="$(${pkgs.gnupg}/bin/gpgconf -L agent-ssh-socket)" + ''; + }; }; services.gpg-agent = { @@ -70,7 +77,7 @@ in { sshKeys = [ "9027AB16B9A7C20BD29F30F55CBA054430BF014C" ]; }; - services.autorandr = { enable = true; }; + # services.autorandr = { enable = true; }; xsession.enable = true; } -- 2.51.2 From 2816335e2b0894211a18e79210d6d779a3f530fb Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 4 Sep 2023 06:38:40 +0200 Subject: [PATCH 062/120] flake: Update inputs --- flake.lock | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/flake.lock b/flake.lock index 995ec9e..e7cb7de 100644 --- a/flake.lock +++ b/flake.lock @@ -9,11 +9,11 @@ ] }, "locked": { - "lastModified": 1684153753, - "narHash": "sha256-PVbWt3qrjYAK+T5KplFcO+h7aZWfEj1UtyoKlvcDxh0=", + "lastModified": 1690228878, + "narHash": "sha256-9Xe7JV0krp4RJC9W9W9WutZVlw6BlHTFMiUP/k48LQY=", "owner": "ryantm", "repo": "agenix", - "rev": "db5637d10f797bb251b94ef9040b237f4702cde3", + "rev": "d8c973fd228949736dedf61b7f8cc1ece3236792", "type": "github" }, "original": { @@ -69,11 +69,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1687494897, - "narHash": "sha256-JnNX/aW8arJew41JYDs1JuZYQqW1C7kXXjo3Sblb3y8=", + "lastModified": 1693937894, + "narHash": "sha256-LTCjxonSnCCUIyYBKN3jlGL9lc/PktKYAtOKIzvQ0Hc=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "1ceb43ef790d7676fa50c0085438e51c0b67e657", + "rev": "6feb20284f9c670836d9ffb1c074f7d347a3458a", "type": "github" }, "original": { @@ -103,11 +103,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1687171271, - "narHash": "sha256-BJlq+ozK2B1sJDQXS3tzJM5a+oVZmi1q0FlBK/Xqv7M=", + "lastModified": 1692799911, + "narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=", "owner": "numtide", "repo": "flake-utils", - "rev": "abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c", + "rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44", "type": "github" }, "original": { @@ -144,11 +144,11 @@ ] }, "locked": { - "lastModified": 1691312444, - "narHash": "sha256-J9e9dGwAPTX+UlAn8jehoyaEq6fwK+L+gunfx0cYT4E=", + "lastModified": 1693895999, + "narHash": "sha256-yN1XVFltQxiwle833KCqWkZNfBuRLWkXyEnOD+ljoYY=", "owner": "nix-community", "repo": "home-manager", - "rev": "903e06d734bcae48efb79b9afd51b406d2744179", + "rev": "3c0e381fef63e4fbc6c3292c9e9cbcf479c01794", "type": "github" }, "original": { @@ -164,11 +164,11 @@ ] }, "locked": { - "lastModified": 1687163790, - "narHash": "sha256-CmG/ZdswJrWM0CMgJiVyWfO6LqaI4SKEAx9IrnYDrpI=", + "lastModified": 1693208669, + "narHash": "sha256-hHFaaUsZ860wvppPeiu7nJn/nXZjJfnqAQEu9SPFE9I=", "owner": "nix-community", "repo": "home-manager", - "rev": "ac53777f52929bc82efcd2830bfc5aa60bcb4337", + "rev": "5bac4a1c06cd77cf8fc35a658ccb035a6c50cd2c", "type": "github" }, "original": { @@ -250,11 +250,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1687379288, - "narHash": "sha256-cSuwfiqYfeVyqzCRkU9AvLTysmEuSal8nh6CYr+xWog=", + "lastModified": 1693771906, + "narHash": "sha256-32EnPCaVjOiEERZ+o/2Ir7JH9pkfwJZJ27SKHNvt4yk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ef0bc3976340dab9a4e087a0bcff661a8b2e87f3", + "rev": "da5adce0ffaff10f6d0fee72a02a5ed9d01b52fc", "type": "github" }, "original": { @@ -281,11 +281,11 @@ }, "nixpkgs-droid": { "locked": { - "lastModified": 1690470004, - "narHash": "sha256-l57RmPhPz9r1LGDg/0v8bYgJO8R+GGTQZtkIxE7negU=", + "lastModified": 1693771906, + "narHash": "sha256-32EnPCaVjOiEERZ+o/2Ir7JH9pkfwJZJ27SKHNvt4yk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9462344318b376e157c94fa60c20a25b913b2381", + "rev": "da5adce0ffaff10f6d0fee72a02a5ed9d01b52fc", "type": "github" }, "original": { @@ -313,11 +313,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1687379288, - "narHash": "sha256-cSuwfiqYfeVyqzCRkU9AvLTysmEuSal8nh6CYr+xWog=", + "lastModified": 1693771906, + "narHash": "sha256-32EnPCaVjOiEERZ+o/2Ir7JH9pkfwJZJ27SKHNvt4yk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ef0bc3976340dab9a4e087a0bcff661a8b2e87f3", + "rev": "da5adce0ffaff10f6d0fee72a02a5ed9d01b52fc", "type": "github" }, "original": { @@ -329,11 +329,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1691186842, - "narHash": "sha256-wxBVCvZUwq+XS4N4t9NqsHV4E64cPVqQ2fdDISpjcw0=", + "lastModified": 1693663421, + "narHash": "sha256-ImMIlWE/idjcZAfxKK8sQA7A1Gi/O58u5/CJA+mxvl8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "18036c0be90f4e308ae3ebcab0e14aae0336fe42", + "rev": "e56990880811a451abd32515698c712788be5720", "type": "github" }, "original": { -- 2.51.2 From fd4d6b369f234fe0deaf050b18096b41bb7618fc Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 16 Sep 2023 01:03:36 +0200 Subject: [PATCH 063/120] flake: Update inputs --- flake.lock | 54 +++++++++++++------------- home/cli.nix | 2 +- modules/common-system.nix | 2 +- outputs/homeConfigurations/default.nix | 3 +- 4 files changed, 31 insertions(+), 30 deletions(-) diff --git a/flake.lock b/flake.lock index e7cb7de..5a617f7 100644 --- a/flake.lock +++ b/flake.lock @@ -9,11 +9,11 @@ ] }, "locked": { - "lastModified": 1690228878, - "narHash": "sha256-9Xe7JV0krp4RJC9W9W9WutZVlw6BlHTFMiUP/k48LQY=", + "lastModified": 1694793763, + "narHash": "sha256-y6gTE1C9mIoSkymRYyzCmv62PFgy+hbZ5j8fuiQK5KI=", "owner": "ryantm", "repo": "agenix", - "rev": "d8c973fd228949736dedf61b7f8cc1ece3236792", + "rev": "572baca9b0c592f71982fca0790db4ce311e3c75", "type": "github" }, "original": { @@ -69,11 +69,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1693937894, - "narHash": "sha256-LTCjxonSnCCUIyYBKN3jlGL9lc/PktKYAtOKIzvQ0Hc=", + "lastModified": 1694801846, + "narHash": "sha256-+mYOCAuqDR4+4lPLiwGSN8fYhvmNyfUBbWpDHnBWGtM=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "6feb20284f9c670836d9ffb1c074f7d347a3458a", + "rev": "90182afcb4fdb564a653959a8a2d818714e115fb", "type": "github" }, "original": { @@ -103,11 +103,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1692799911, - "narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=", + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", "owner": "numtide", "repo": "flake-utils", - "rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", "type": "github" }, "original": { @@ -144,11 +144,11 @@ ] }, "locked": { - "lastModified": 1693895999, - "narHash": "sha256-yN1XVFltQxiwle833KCqWkZNfBuRLWkXyEnOD+ljoYY=", + "lastModified": 1694643239, + "narHash": "sha256-pv2k/5FvyirDE8g4TNehzwZ0T4UOMMmqWSQnM/luRtE=", "owner": "nix-community", "repo": "home-manager", - "rev": "3c0e381fef63e4fbc6c3292c9e9cbcf479c01794", + "rev": "d9b88b43524db1591fb3d9410a21428198d75d49", "type": "github" }, "original": { @@ -164,11 +164,11 @@ ] }, "locked": { - "lastModified": 1693208669, - "narHash": "sha256-hHFaaUsZ860wvppPeiu7nJn/nXZjJfnqAQEu9SPFE9I=", + "lastModified": 1694465129, + "narHash": "sha256-8BQiuobMrCfCbGM7w6Snx+OBYdtTIm0+cGVaKwQ5BFg=", "owner": "nix-community", "repo": "home-manager", - "rev": "5bac4a1c06cd77cf8fc35a658ccb035a6c50cd2c", + "rev": "9787dffff5d315c9593d3f9fb0f9bf2097e1b57b", "type": "github" }, "original": { @@ -250,11 +250,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1693771906, - "narHash": "sha256-32EnPCaVjOiEERZ+o/2Ir7JH9pkfwJZJ27SKHNvt4yk=", + "lastModified": 1694753796, + "narHash": "sha256-QPE7dqcicQH/nq9aywVXJWWtci4FvxHaM+BSIEbGBvA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "da5adce0ffaff10f6d0fee72a02a5ed9d01b52fc", + "rev": "360a7d31c30abefdc490d203f80e3221b7a24af2", "type": "github" }, "original": { @@ -281,11 +281,11 @@ }, "nixpkgs-droid": { "locked": { - "lastModified": 1693771906, - "narHash": "sha256-32EnPCaVjOiEERZ+o/2Ir7JH9pkfwJZJ27SKHNvt4yk=", + "lastModified": 1694753796, + "narHash": "sha256-QPE7dqcicQH/nq9aywVXJWWtci4FvxHaM+BSIEbGBvA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "da5adce0ffaff10f6d0fee72a02a5ed9d01b52fc", + "rev": "360a7d31c30abefdc490d203f80e3221b7a24af2", "type": "github" }, "original": { @@ -313,11 +313,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1693771906, - "narHash": "sha256-32EnPCaVjOiEERZ+o/2Ir7JH9pkfwJZJ27SKHNvt4yk=", + "lastModified": 1694499547, + "narHash": "sha256-R7xMz1Iia6JthWRHDn36s/E248WB1/je62ovC/dUVKI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "da5adce0ffaff10f6d0fee72a02a5ed9d01b52fc", + "rev": "e5f018cf150e29aac26c61dac0790ea023c46b24", "type": "github" }, "original": { @@ -329,11 +329,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1693663421, - "narHash": "sha256-ImMIlWE/idjcZAfxKK8sQA7A1Gi/O58u5/CJA+mxvl8=", + "lastModified": 1694767346, + "narHash": "sha256-5uH27SiVFUwsTsqC5rs3kS7pBoNhtoy9QfTP9BmknGk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e56990880811a451abd32515698c712788be5720", + "rev": "ace5093e36ab1e95cb9463863491bee90d5a4183", "type": "github" }, "original": { diff --git a/home/cli.nix b/home/cli.nix index d211003..8edbca6 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -123,7 +123,7 @@ in { }; # better ls with icons and stuff, maybe also try lsd - exa = { + eza = { enable = true; icons = true; enableAliases = true; diff --git a/modules/common-system.nix b/modules/common-system.nix index a640d0f..3e053fd 100644 --- a/modules/common-system.nix +++ b/modules/common-system.nix @@ -10,7 +10,7 @@ git dua erdtree - exa + eza fd fzf bat diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index ec43ba4..fbefc5b 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -31,7 +31,8 @@ in { # gaming support lutris - winePackages.stagingFull + #winePackages.stagingFull + wine64Packages.stagingFull # reading calibre -- 2.51.2 From 147ee0a4e15e710ae02d415412ff40e9d2bedf24 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 16 Sep 2023 10:29:32 +0200 Subject: [PATCH 064/120] cli: Add tea - gitea frontend --- home/cli.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/home/cli.nix b/home/cli.nix index 8edbca6..95c65cb 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -33,6 +33,8 @@ in { git-annex git-annex-remote-rclone + tea # command-line frontend for gitea + # nix tools nix-index nixfmt -- 2.51.2 From 0c04e3c4684a0d2267025de6c4c748c908847fc4 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 23 Sep 2023 00:21:31 +0200 Subject: [PATCH 065/120] dregil: Install wine32 packages --- outputs/homeConfigurations/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index fbefc5b..ec43ba4 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -31,8 +31,7 @@ in { # gaming support lutris - #winePackages.stagingFull - wine64Packages.stagingFull + winePackages.stagingFull # reading calibre -- 2.51.2 From 14ab93bea2939ad370fc43a03404e3aa71f0dc5e Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 4 Oct 2023 00:42:32 +0200 Subject: [PATCH 066/120] dregil: Add home-manager to programs --- outputs/homeConfigurations/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index ec43ba4..ddea550 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -39,6 +39,8 @@ in { }; programs = { + home-manager.enable = true; + alacritty.enable = true; # autorandr.enable = true; -- 2.51.2 From 7ec3be7624c242c3b93ac8094c0c636dea601d58 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 4 Oct 2023 00:42:59 +0200 Subject: [PATCH 067/120] flake: Update inputs --- flake.lock | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/flake.lock b/flake.lock index 5a617f7..4e8ef96 100644 --- a/flake.lock +++ b/flake.lock @@ -9,11 +9,11 @@ ] }, "locked": { - "lastModified": 1694793763, - "narHash": "sha256-y6gTE1C9mIoSkymRYyzCmv62PFgy+hbZ5j8fuiQK5KI=", + "lastModified": 1695384796, + "narHash": "sha256-TYlE4B0ktPtlJJF9IFxTWrEeq+XKG8Ny0gc2FGEAdj0=", "owner": "ryantm", "repo": "agenix", - "rev": "572baca9b0c592f71982fca0790db4ce311e3c75", + "rev": "1f677b3e161d3bdbfd08a939e8f25de2568e0ef4", "type": "github" }, "original": { @@ -69,11 +69,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1694801846, - "narHash": "sha256-+mYOCAuqDR4+4lPLiwGSN8fYhvmNyfUBbWpDHnBWGtM=", + "lastModified": 1695921859, + "narHash": "sha256-9QUM3d1TxCwCMhunV7VvtV4+BOe9vynlwks8TByhFfA=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "90182afcb4fdb564a653959a8a2d818714e115fb", + "rev": "ef992bca01ef97e8bbd1136693d24665390f39ce", "type": "github" }, "original": { @@ -144,11 +144,11 @@ ] }, "locked": { - "lastModified": 1694643239, - "narHash": "sha256-pv2k/5FvyirDE8g4TNehzwZ0T4UOMMmqWSQnM/luRtE=", + "lastModified": 1695738267, + "narHash": "sha256-LTNAbTQ96xSj17xBfsFrFS9i56U2BMLpD0BduhrsVkU=", "owner": "nix-community", "repo": "home-manager", - "rev": "d9b88b43524db1591fb3d9410a21428198d75d49", + "rev": "0f4e5b4999fd6a42ece5da8a3a2439a50e48e486", "type": "github" }, "original": { @@ -164,11 +164,11 @@ ] }, "locked": { - "lastModified": 1694465129, - "narHash": "sha256-8BQiuobMrCfCbGM7w6Snx+OBYdtTIm0+cGVaKwQ5BFg=", + "lastModified": 1695108154, + "narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=", "owner": "nix-community", "repo": "home-manager", - "rev": "9787dffff5d315c9593d3f9fb0f9bf2097e1b57b", + "rev": "07682fff75d41f18327a871088d20af2710d4744", "type": "github" }, "original": { @@ -250,11 +250,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1694753796, - "narHash": "sha256-QPE7dqcicQH/nq9aywVXJWWtci4FvxHaM+BSIEbGBvA=", + "lastModified": 1695825837, + "narHash": "sha256-4Ne11kNRnQsmSJCRSSNkFRSnHC4Y5gPDBIQGjjPfJiU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "360a7d31c30abefdc490d203f80e3221b7a24af2", + "rev": "5cfafa12d57374f48bcc36fda3274ada276cf69e", "type": "github" }, "original": { @@ -281,11 +281,11 @@ }, "nixpkgs-droid": { "locked": { - "lastModified": 1694753796, - "narHash": "sha256-QPE7dqcicQH/nq9aywVXJWWtci4FvxHaM+BSIEbGBvA=", + "lastModified": 1695825837, + "narHash": "sha256-4Ne11kNRnQsmSJCRSSNkFRSnHC4Y5gPDBIQGjjPfJiU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "360a7d31c30abefdc490d203f80e3221b7a24af2", + "rev": "5cfafa12d57374f48bcc36fda3274ada276cf69e", "type": "github" }, "original": { @@ -313,11 +313,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1694499547, - "narHash": "sha256-R7xMz1Iia6JthWRHDn36s/E248WB1/je62ovC/dUVKI=", + "lastModified": 1695825837, + "narHash": "sha256-4Ne11kNRnQsmSJCRSSNkFRSnHC4Y5gPDBIQGjjPfJiU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e5f018cf150e29aac26c61dac0790ea023c46b24", + "rev": "5cfafa12d57374f48bcc36fda3274ada276cf69e", "type": "github" }, "original": { @@ -329,11 +329,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1694767346, - "narHash": "sha256-5uH27SiVFUwsTsqC5rs3kS7pBoNhtoy9QfTP9BmknGk=", + "lastModified": 1695830400, + "narHash": "sha256-gToZXQVr0G/1WriO83olnqrLSHF2Jb8BPcmCt497ro0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ace5093e36ab1e95cb9463863491bee90d5a4183", + "rev": "8a86b98f0ba1c405358f1b71ff8b5e1d317f5db2", "type": "github" }, "original": { -- 2.51.2 From 0b92a67c7739f69039bcc6709d73b9304e179441 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 4 Oct 2023 00:43:19 +0200 Subject: [PATCH 068/120] dregil: Downgrade electron to electron-25 electron-26 has a bug so that applications stop working after a couple of seconds. --- outputs/homeConfigurations/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index ddea550..23153b2 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -1,10 +1,11 @@ inputs: with inputs; let + electron-overlay = final: prev: { electron = final.electron_25; }; pkgs = import nixpkgs-unstable { system = "x86_64-linux"; config.allowUnfree = true; - overlays = [ emacs.overlay ]; + overlays = [ emacs.overlay electron-overlay ]; }; in { "alex@dregil" = home-manager-unstable.lib.homeManagerConfiguration { -- 2.51.2 From a9f347a3ebbeb8b4329080c23848754763688d8d Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 4 Oct 2023 00:44:28 +0200 Subject: [PATCH 069/120] dregil: Upgrade jitsi-meet-electron Use the current release 2023.10.0. --- outputs/homeConfigurations/default.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index 23153b2..e8a71bb 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -23,7 +23,15 @@ in { packages = with pkgs; [ # social - jitsi-meet-electron # jitsi as a stand-alone app + (jitsi-meet-electron.overrideAttrs (prev: rec { + version = "2023.10.0"; + src = fetchurl { + url = + "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage"; + sha256 = "sha256-zhOx/gdsiQMuOCCE5sn+JNu0WJrH36XfvqqNvE24St8="; + name = "jitsi-meet-electron-${version}.AppImage"; + }; + })) # jitsi as a stand-alone app discord # talk to other people # system tools -- 2.51.2 From bc9b0edffabd58c921a58cdb139d6e0e9eb08cfb Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 12 Oct 2023 05:46:45 +0200 Subject: [PATCH 070/120] cli: Install btop as a top/htop replacement --- home/cli.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/cli.nix b/home/cli.nix index 95c65cb..4da6676 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -58,6 +58,7 @@ in { (aspellWithDicts (dicts: with dicts; [ en en-computers en-science de ])) # system tools + btop htop-vim # htop with vim bindings erdtree # du+tree had sex dua # ncdu but better -- 2.51.2 From 714ab61371e1c8c22733ba36618dd55694210fbb Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Tue, 17 Oct 2023 21:01:42 +0200 Subject: [PATCH 071/120] dregil: Override SSH_AUTH_SOCKET in zsh init --- outputs/homeConfigurations/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index e8a71bb..cd94af9 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -74,11 +74,14 @@ in { rofi.pass.enable = true; zathura.enable = true; - zsh = { - enable = true; - loginExtra = '' + zsh = let + auth-socket-env = '' export SSH_AUTH_SOCK="$(${pkgs.gnupg}/bin/gpgconf -L agent-ssh-socket)" ''; + in { + enable = true; + loginExtra = auth-socket-env; + initExtra = auth-socket-env; }; }; -- 2.51.2 From c03c0a03488bb1d25275452929d3c3138992b567 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 21 Oct 2023 11:18:21 +0200 Subject: [PATCH 072/120] dregil: Disable home-manager news --- outputs/homeConfigurations/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix index cd94af9..cf5c210 100644 --- a/outputs/homeConfigurations/default.nix +++ b/outputs/homeConfigurations/default.nix @@ -47,6 +47,8 @@ in { ]; }; + news.display = "silent"; + programs = { home-manager.enable = true; -- 2.51.2 From 06984f9d3f3872a85af60ddba42fc7506fbefc61 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 14 Dec 2023 15:18:56 +0100 Subject: [PATCH 073/120] thrall: Add wireguard config for homematic --- hosts/thrall/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 391c744..b254020 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -98,6 +98,11 @@ in { publicKey = "NG9y+0RMDTjiG65yC4Z0ymJ0G5fe1mOhl4GyC3xAh1k="; allowedIPs = [ "10.0.0.3/32" ]; } + { + # homematic + publicKey = "slqWgVksOCav0bASxupaFGqfr6vajxDRNIlZYocONQ4="; + allowedIPs = [ "10.0.0.4/32" ]; + } ]; }; }; -- 2.51.2 From f99a81bc9b5571d2700f8a5d26b7522bd43d3815 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 14 Dec 2023 15:19:47 +0100 Subject: [PATCH 074/120] thrall: Configure reverse proxy for photo-groove --- hosts/thrall/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index b254020..033e2b3 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -208,6 +208,11 @@ in { extraConfig = '' add_header X-Frame-Options 'SAMEORIGIN'; ''; + + locations."/photo-groove" = { + proxyPass = "http://127.0.0.1:8000/"; + proxyWebsockets = true; + }; }; "www.jakalx.net" = { -- 2.51.2 From f3adc3a8d573d4977656460b7a7edbb07c17c48f Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 14 Dec 2023 19:39:37 +0100 Subject: [PATCH 075/120] thrall: Provide update script for postgresql see: https://nixos.org/manual/nixos/stable/#module-services-postgres-upgrading for details --- hosts/thrall/default.nix | 1 + modules/upgrade-pg-cluster.nix | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 modules/upgrade-pg-cluster.nix diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 033e2b3..3edc688 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -9,6 +9,7 @@ let in { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix + ../../modules/upgrade-pg-cluster.nix ]; nix.package = pkgs.nixUnstable; diff --git a/modules/upgrade-pg-cluster.nix b/modules/upgrade-pg-cluster.nix new file mode 100644 index 0000000..89feedb --- /dev/null +++ b/modules/upgrade-pg-cluster.nix @@ -0,0 +1,32 @@ +{ config, pkgs, ... }: +{ + environment.systemPackages = [ + (let + # XXX specify the postgresql package you'd like to upgrade to. + # Do not forget to list the extensions you need. + newPostgres = pkgs.postgresql_15.withPackages (pp: [ + # pp.plv8 + ]); + in pkgs.writeScriptBin "upgrade-pg-cluster" '' + set -eux + # XXX it's perhaps advisable to stop all services that depend on postgresql + systemctl stop postgresql + + export NEWDATA="/var/lib/postgresql/${newPostgres.psqlSchema}" + + export NEWBIN="${newPostgres}/bin" + + export OLDDATA="${config.services.postgresql.dataDir}" + export OLDBIN="${config.services.postgresql.package}/bin" + + install -d -m 0700 -o postgres -g postgres "$NEWDATA" + cd "$NEWDATA" + sudo -u postgres $NEWBIN/initdb -D "$NEWDATA" + + sudo -u postgres $NEWBIN/pg_upgrade \ + --old-datadir "$OLDDATA" --new-datadir "$NEWDATA" \ + --old-bindir $OLDBIN --new-bindir $NEWBIN \ + "$@" + '') + ]; +} -- 2.51.2 From 4b3ed182189088de581a3d6a082c6bda65647d0a Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 14 Dec 2023 21:44:37 +0100 Subject: [PATCH 076/120] cli: Use either eza or exa depending on home-manager version --- home/cli.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/home/cli.nix b/home/cli.nix index 4da6676..44777d0 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -7,6 +7,8 @@ let fullName = "Alexander Kobjolke"; mail = "me@failco.de"; }; + + myEza = if builtins.hasAttr "eza" pkgs then "eza" else "exa"; in { imports = [ # shell config @@ -126,7 +128,7 @@ in { }; # better ls with icons and stuff, maybe also try lsd - eza = { + ${myEza} = { enable = true; icons = true; enableAliases = true; -- 2.51.2 From 6261d8bf97b934d335cb7fd4a3c03e82c9b5976c Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 14 Dec 2023 21:45:52 +0100 Subject: [PATCH 077/120] thrall: Upgrade postgres to v15.5 --- hosts/thrall/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 3edc688..abdb103 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -389,6 +389,7 @@ in { virusScanning = true; }; + services.postgresql = { package = pkgs.postgresql_15; }; services.roundcube = { enable = true; hostName = "mail.failco.de"; -- 2.51.2 From 55c210b8a65e894bb05f7d389cf007a41aa1463b Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Thu, 14 Dec 2023 22:32:16 +0100 Subject: [PATCH 078/120] thrall: Update from 23.05 to 23.11 --- flake.lock | 58 ++++++++++++++++++++-------------------- flake.nix | 4 +-- hosts/thrall/default.nix | 27 ++++++++++--------- 3 files changed, 46 insertions(+), 43 deletions(-) diff --git a/flake.lock b/flake.lock index 4e8ef96..bf57302 100644 --- a/flake.lock +++ b/flake.lock @@ -9,11 +9,11 @@ ] }, "locked": { - "lastModified": 1695384796, - "narHash": "sha256-TYlE4B0ktPtlJJF9IFxTWrEeq+XKG8Ny0gc2FGEAdj0=", + "lastModified": 1701216516, + "narHash": "sha256-jKSeJn+7hZ1dZdiH1L+NWUGT2i/BGomKAJ54B9kT06Q=", "owner": "ryantm", "repo": "agenix", - "rev": "1f677b3e161d3bdbfd08a939e8f25de2568e0ef4", + "rev": "13ac9ac6d68b9a0896e3d43a082947233189e247", "type": "github" }, "original": { @@ -69,11 +69,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1695921859, - "narHash": "sha256-9QUM3d1TxCwCMhunV7VvtV4+BOe9vynlwks8TByhFfA=", + "lastModified": 1702399955, + "narHash": "sha256-FnB5O1RVFzj3h7Ayf7UxFnOL1gsJuG6gn1LCTd9dKFs=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "ef992bca01ef97e8bbd1136693d24665390f39ce", + "rev": "47798c4ab07d5f055bb2625010cf6d8e3f384923", "type": "github" }, "original": { @@ -103,11 +103,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -144,11 +144,11 @@ ] }, "locked": { - "lastModified": 1695738267, - "narHash": "sha256-LTNAbTQ96xSj17xBfsFrFS9i56U2BMLpD0BduhrsVkU=", + "lastModified": 1702538064, + "narHash": "sha256-At5GwJPu2tzvS9dllhBoZmqK6lkkh/sOp2YefWRlaL8=", "owner": "nix-community", "repo": "home-manager", - "rev": "0f4e5b4999fd6a42ece5da8a3a2439a50e48e486", + "rev": "0e2e443ff24f9d75925e91b89d1da44b863734af", "type": "github" }, "original": { @@ -164,16 +164,16 @@ ] }, "locked": { - "lastModified": 1695108154, - "narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=", + "lastModified": 1702195709, + "narHash": "sha256-+zRjWkm5rKqQ57PuLZ3JF3xi3vPMiOJzItb1m/43Cq4=", "owner": "nix-community", "repo": "home-manager", - "rev": "07682fff75d41f18327a871088d20af2710d4744", + "rev": "6761b8188b860f374b457eddfdb05c82eef9752f", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-23.05", + "ref": "release-23.11", "repo": "home-manager", "type": "github" } @@ -250,16 +250,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1695825837, - "narHash": "sha256-4Ne11kNRnQsmSJCRSSNkFRSnHC4Y5gPDBIQGjjPfJiU=", + "lastModified": 1702346276, + "narHash": "sha256-eAQgwIWApFQ40ipeOjVSoK4TEHVd6nbSd9fApiHIw5A=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5cfafa12d57374f48bcc36fda3274ada276cf69e", + "rev": "cf28ee258fd5f9a52de6b9865cdb93a1f96d09b7", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.05", + "ref": "nixos-23.11", "repo": "nixpkgs", "type": "github" } @@ -281,11 +281,11 @@ }, "nixpkgs-droid": { "locked": { - "lastModified": 1695825837, - "narHash": "sha256-4Ne11kNRnQsmSJCRSSNkFRSnHC4Y5gPDBIQGjjPfJiU=", + "lastModified": 1702350026, + "narHash": "sha256-A+GNZFZdfl4JdDphYKBJ5Ef1HOiFsP18vQe9mqjmUis=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5cfafa12d57374f48bcc36fda3274ada276cf69e", + "rev": "9463103069725474698139ab10f17a9d125da859", "type": "github" }, "original": { @@ -313,11 +313,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1695825837, - "narHash": "sha256-4Ne11kNRnQsmSJCRSSNkFRSnHC4Y5gPDBIQGjjPfJiU=", + "lastModified": 1702221085, + "narHash": "sha256-Br3GCSkkvkmw46cT6wCz6ro2H1WgDMWbKE0qctbdtL0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5cfafa12d57374f48bcc36fda3274ada276cf69e", + "rev": "c2786e7084cbad90b4f9472d5b5e35ecb57958af", "type": "github" }, "original": { @@ -329,11 +329,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1695830400, - "narHash": "sha256-gToZXQVr0G/1WriO83olnqrLSHF2Jb8BPcmCt497ro0=", + "lastModified": 1702312524, + "narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8a86b98f0ba1c405358f1b71ff8b5e1d317f5db2", + "rev": "a9bf124c46ef298113270b1f84a164865987a91c", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 02cdac8..e717092 100644 --- a/flake.nix +++ b/flake.nix @@ -1,11 +1,11 @@ { inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; nixpkgs-droid.url = "github:NixOS/nixpkgs/nixos-23.05"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { - url = "github:nix-community/home-manager/release-23.05"; + url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; }; diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index abdb103..ddd9fe2 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -334,19 +334,22 @@ in { true; # overrides any devices added or deleted through the WebUI overrideFolders = true; # overrides any folders added or deleted through the WebUI - folders = { - "org" = { - path = "/home/alex/org"; - devices = [ "redmi" ]; + settings = { + folders = { + "org" = { + path = "/home/alex/org"; + devices = [ "redmi" ]; + }; + "scan" = { + path = "/home/alex/media/scan"; + devices = [ "redmi" ]; + }; }; - "scan" = { - path = "/home/alex/media/scan"; - devices = [ "redmi" ]; - }; - }; - devices = { - "redmi" = { - id = "C43WITF-2HS2UCD-X6QFM4H-SC7XQJ7-X5F73EB-7FZHMII-KQNSH5D-NMICIAW"; + devices = { + "redmi" = { + id = + "C43WITF-2HS2UCD-X6QFM4H-SC7XQJ7-X5F73EB-7FZHMII-KQNSH5D-NMICIAW"; + }; }; }; }; -- 2.51.2 From 2873640cbf34cd180878f941a19f6c2e3ffd53f6 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Fri, 19 Jan 2024 19:36:33 +0100 Subject: [PATCH 079/120] thrall: Upgrade postfix to prevent SMTP smuggling --- flake.lock | 33 ++++++++++++++++------- flake.nix | 77 +++++++++++++++++++++++++++++------------------------- 2 files changed, 64 insertions(+), 46 deletions(-) diff --git a/flake.lock b/flake.lock index bf57302..7609277 100644 --- a/flake.lock +++ b/flake.lock @@ -279,6 +279,21 @@ "type": "indirect" } }, + "nixpkgs-23_05": { + "locked": { + "lastModified": 1704290814, + "narHash": "sha256-LWvKHp7kGxk/GEtlrGYV68qIvPHkU9iToomNFGagixU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "70bdadeb94ffc8806c0570eb5c2695ad29f0e421", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-23.05", + "type": "indirect" + } + }, "nixpkgs-droid": { "locked": { "lastModified": 1702350026, @@ -329,11 +344,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1702312524, - "narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=", + "lastModified": 1705316053, + "narHash": "sha256-J2Ey5mPFT8gdfL2XC0JTZvKaBw/b2pnyudEXFvl+dQM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a9bf124c46ef298113270b1f84a164865987a91c", + "rev": "c3e128f3c0ecc1fb04aef9f72b3dcc2f6cecf370", "type": "github" }, "original": { @@ -425,22 +440,20 @@ "flake-compat": "flake-compat", "nixpkgs": "nixpkgs_2", "nixpkgs-22_11": "nixpkgs-22_11", - "nixpkgs-23_05": [ - "nixpkgs" - ], + "nixpkgs-23_05": "nixpkgs-23_05", "utils": "utils_2" }, "locked": { - "lastModified": 1687462267, - "narHash": "sha256-rNSputjn/0HEHHnsKfQ8mQVEPVchcBw7DsbND7Wg8dk=", + "lastModified": 1703666786, + "narHash": "sha256-SLPNpM/rI8XPyVJAxMYAe+n6NiYSpuXvdwPILHP4yZI=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "24128c3052090311688b09a400aa408ba61c6ee5", + "rev": "b5023b36a1f6628865cb42b4353bd2ddde0ea9f4", "type": "gitlab" }, "original": { "owner": "simple-nixos-mailserver", - "ref": "nixos-23.05", + "ref": "master", "repo": "nixos-mailserver", "type": "gitlab" } diff --git a/flake.nix b/flake.nix index e717092..1b9ab49 100644 --- a/flake.nix +++ b/flake.nix @@ -16,8 +16,8 @@ # simple mailserver snm = { - url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-23.05"; - inputs.nixpkgs-23_05.follows = "nixpkgs"; + url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master"; + # inputs.nixpkgs-23_05.follows = "nixpkgs"; }; nix-on-droid = { @@ -42,41 +42,46 @@ }; }; - outputs = { home-manager, nixpkgs, agenix, snm, ... }@inputs: { - nixosConfigurations."thrall" = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = { inherit inputs; }; - modules = [ - ({ inputs, lib, ... }: { - nixpkgs = { - config.allowUnfree = true; - overlays = with inputs; [ emacs.overlay ]; + outputs = + { home-manager, nixpkgs, nixpkgs-unstable, agenix, snm, ... }@inputs: { + nixosConfigurations."thrall" = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = let + postfix-overlay = final: prev: { + postfix = nixpkgs-unstable.legacyPackages."x86_64-linux".postfix; }; - nix.registry = lib.mapAttrs (_: value: { flake = value; }) inputs; - }) - snm.nixosModule - ./modules/security.nix - ./hosts/thrall - agenix.nixosModules.age - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.alex = import ./home/cli.nix; - } - ]; - }; - - nixosConfigurations."dregil" = import ./hosts/dregil { inherit inputs; }; - homeConfigurations = import ./outputs/homeConfigurations inputs; - - nixOnDroidConfigurations.default = with inputs; - nix-on-droid.lib.nixOnDroidConfiguration { - modules = [ - ./hosts/redmi - { nix.registry.nixpkgs.flake = nixpkgs-droid; } - { nix.nixPath = [ "nixpkgs=${nixpkgs-droid}" ]; } + in [ + ({ inputs, lib, ... }: { + nixpkgs = { + config.allowUnfree = true; + overlays = with inputs; [ emacs.overlay postfix-overlay ]; + }; + nix.registry = lib.mapAttrs (_: value: { flake = value; }) inputs; + }) + snm.nixosModule + ./modules/security.nix + ./hosts/thrall + agenix.nixosModules.age + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.alex = import ./home/cli.nix; + } ]; }; - }; + + nixosConfigurations."dregil" = import ./hosts/dregil { inherit inputs; }; + homeConfigurations = import ./outputs/homeConfigurations inputs; + + nixOnDroidConfigurations.default = with inputs; + nix-on-droid.lib.nixOnDroidConfiguration { + modules = [ + ./hosts/redmi + { nix.registry.nixpkgs.flake = nixpkgs-droid; } + { nix.nixPath = [ "nixpkgs=${nixpkgs-droid}" ]; } + ]; + }; + }; } -- 2.51.2 From 07177629bc2da4496aa3126a9089d712d0ff59e3 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Fri, 19 Jan 2024 20:38:34 +0100 Subject: [PATCH 080/120] thrall: Activate fail2ban for postfix --- hosts/thrall/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index ddd9fe2..8ef9c36 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -324,6 +324,13 @@ in { maxretry = 5; ignoreIP = [ "127.0.0.0/8" "195.90.211.228/22" "10.0.0.0/8" "192.168.0.0/16" ]; + + jails.postfix = '' + filter = postfix + maxretry = 3 + action = iptables[name=postfix, port=smtp, protocol=tcp] + enabled = true + ''; }; services.syncthing = { -- 2.51.2 From 4d863f6a06355c318aa35aa81848684768f9df0c Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Fri, 19 Jan 2024 20:39:02 +0100 Subject: [PATCH 081/120] thrall: Increase fail2ban bantime --- hosts/thrall/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 8ef9c36..40d72b6 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -322,6 +322,10 @@ in { services.fail2ban = { enable = true; maxretry = 5; + + bantime = "1h"; + bantime-increment.enable = true; + ignoreIP = [ "127.0.0.0/8" "195.90.211.228/22" "10.0.0.0/8" "192.168.0.0/16" ]; -- 2.51.2 From 26e5a0e217e6418190851a1489608e6d2b61f062 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Fri, 19 Jan 2024 20:39:39 +0100 Subject: [PATCH 082/120] thrall: Activate repl for flakes --- hosts/thrall/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 40d72b6..0d6b3ad 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -14,7 +14,7 @@ in { nix.package = pkgs.nixUnstable; nix.extraOptions = '' - experimental-features = nix-command flakes ca-derivations + experimental-features = nix-command flakes repl-flake ca-derivations ''; # nix.registry.nixpkgs.flake = nixpkgs; -- 2.51.2 From 9ce6478c7b3cd75b0d1d3febe840a27e87a41b15 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 20 Jan 2024 10:50:48 +0100 Subject: [PATCH 083/120] thrall: Reformat ip configuration --- hosts/thrall/default.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 0d6b3ad..9722408 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -57,10 +57,12 @@ in { wireless.enable = false; useDHCP = false; enableIPv6 = false; - interfaces.${extIface}.ipv4.addresses = [{ - address = "195.90.211.228"; - prefixLength = 22; - }]; + interfaces.${extIface} = { + ipv4.addresses = [{ + address = "195.90.211.228"; + prefixLength = 22; + }]; + }; defaultGateway = "195.90.208.1"; nameservers = [ "1.1.1.1" "8.8.8.8" ]; firewall = { -- 2.51.2 From fbb85bc1da748526302fcaad33382404eb7b80fd Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 20 Jan 2024 17:41:14 +0100 Subject: [PATCH 084/120] Extract configuration to own module --- hosts/thrall/default.nix | 9 ++------- modules/common-system.nix | 29 +++++++---------------------- modules/nix-config.nix | 22 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 29 deletions(-) create mode 100644 modules/nix-config.nix diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 9722408..db917a5 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -7,17 +7,12 @@ let extIface = "ens3"; ledgerVHost = "ledger.failco.de"; in { - imports = [ # Include the results of the hardware scan. + imports = [ ./hardware-configuration.nix ../../modules/upgrade-pg-cluster.nix + ../../modules/nix-config.nix ]; - nix.package = pkgs.nixUnstable; - nix.extraOptions = '' - experimental-features = nix-command flakes repl-flake ca-derivations - ''; - # nix.registry.nixpkgs.flake = nixpkgs; - # Binary Cache for Haskell.nix nix.settings.trusted-public-keys = [ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" ]; diff --git a/modules/common-system.nix b/modules/common-system.nix index 3e053fd..b8de7d7 100644 --- a/modules/common-system.nix +++ b/modules/common-system.nix @@ -1,5 +1,6 @@ -{config, pkgs, inputs, ...}: -{ +{ config, pkgs, inputs, ... }: { + imports = [ ./nix-config.nix ]; + i18n.defaultLocale = "en_US.UTF-8"; time.timeZone = "Europe/Berlin"; @@ -21,25 +22,9 @@ networking.firewall.enable = true; nix = { - gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 30d"; - }; - - registry = { - nixpkgs.flake = inputs.nixpkgs; - nixpkgs-unstable.flake = inputs.nixpkgs-unstable; - }; - - settings = { - auto-optimise-store = true; - experimental-features = [ "nix-command" "flakes" ]; - warn-dirty = false; - - # avoid unwanted garbage collection when using direnv - keep-outputs = true; - keep-derivations = true; - }; + registry = { + nixpkgs.flake = inputs.nixpkgs; + nixpkgs-unstable.flake = inputs.nixpkgs-unstable; + }; }; } diff --git a/modules/nix-config.nix b/modules/nix-config.nix new file mode 100644 index 0000000..716d4e7 --- /dev/null +++ b/modules/nix-config.nix @@ -0,0 +1,22 @@ +{ config, lib, pkgs, ... }: + +{ + nix = { + package = pkgs.nixUnstable; + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 30d"; + }; + + settings = { + auto-optimise-store = true; + experimental-features = [ "nix-command" "flakes" "repl-flake" ]; + warn-dirty = false; + + # avoid unwanted garbage collection when using direnv + keep-outputs = true; + keep-derivations = true; + }; + }; +} -- 2.51.2 From 10843c1efc1547a4474a35a9f98dd86141b0e4a5 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 20 Jan 2024 19:51:48 +0100 Subject: [PATCH 085/120] thrall: Extract haskell.nix config - iohk public key and cache --- hosts/thrall/default.nix | 7 +------ modules/iohk.nix | 9 +++++++++ 2 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 modules/iohk.nix diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index db917a5..1151964 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -11,14 +11,9 @@ in { ./hardware-configuration.nix ../../modules/upgrade-pg-cluster.nix ../../modules/nix-config.nix + ../../modules/iohk.nix ]; - # Binary Cache for Haskell.nix - nix.settings.trusted-public-keys = - [ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" ]; - - #nix.binaryCaches = [ "https://hydra.iohk.io" ]; - # Use the GRUB 2 boot loader. boot.loader.grub.enable = true; # boot.loader.grub.efiSupport = true; diff --git a/modules/iohk.nix b/modules/iohk.nix new file mode 100644 index 0000000..b4215c9 --- /dev/null +++ b/modules/iohk.nix @@ -0,0 +1,9 @@ +{ config, lib, pkgs, ... }: + +{ + # Binary Cache for Haskell.nix + nix.settings.trusted-public-keys = + [ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" ]; + + nix.settings.substituters = lib.mkAfter [ "https://hydra.iohk.io" ]; +} -- 2.51.2 From 5c1e8ea969e6a3becf64985e8b6db04d00a62987 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 21 Jan 2024 10:52:56 +0100 Subject: [PATCH 086/120] thrall: Extract timezone configuration --- hosts/thrall/default.nix | 11 ++++------- modules/timezone.nix | 5 +++++ 2 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 modules/timezone.nix diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 1151964..2b1df41 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -3,15 +3,14 @@ # and in the NixOS manual (accessible by running ‘nixos-help’). { config, pkgs, ... }: -let - extIface = "ens3"; - ledgerVHost = "ledger.failco.de"; +let ledgerVHost = "ledger.failco.de"; in { imports = [ ./hardware-configuration.nix ../../modules/upgrade-pg-cluster.nix ../../modules/nix-config.nix ../../modules/iohk.nix + ../../modules/timezone.nix ]; # Use the GRUB 2 boot loader. @@ -23,9 +22,6 @@ in { boot.loader.grub.device = "/dev/vda"; # or "nodev" for efi only # boot.loader.systemd-boot.enable = true; - # Set your time zone. - time.timeZone = "Europe/Berlin"; - age.secrets = { mailPass.file = ../../secrets/mailPass.age; paperless-mail.file = ../../secrets/paperless-mail.age; @@ -41,7 +37,8 @@ in { # The global useDHCP flag is deprecated, therefore explicitly set to false here. # Per-interface useDHCP will be mandatory in the future, so this generated config # replicates the default behaviour. - networking = { + networking = let extIface = "ens3"; + in { hostName = "thrall"; domain = "failco.de"; wireless.enable = false; diff --git a/modules/timezone.nix b/modules/timezone.nix new file mode 100644 index 0000000..8323310 --- /dev/null +++ b/modules/timezone.nix @@ -0,0 +1,5 @@ +{ config, lib, pkgs, ... }: + +{ + time.timeZone = lib.mkDefault "Europe/Berlin"; +} -- 2.51.2 From a951a1e3fbaebf7c2ea66b4ecbc6a47aab91c55c Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 22 Jan 2024 21:19:09 +0100 Subject: [PATCH 087/120] thrall: Extract modules --- hosts/thrall/default.nix | 39 ++++++++++++++++++++------------------- modules/keybase.nix | 5 +++++ modules/ssh.nix | 5 +++++ 3 files changed, 30 insertions(+), 19 deletions(-) create mode 100644 modules/keybase.nix create mode 100644 modules/ssh.nix diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 2b1df41..29f0322 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -3,7 +3,9 @@ # and in the NixOS manual (accessible by running ‘nixos-help’). { config, pkgs, ... }: -let ledgerVHost = "ledger.failco.de"; +let + authorityFromUrl = url: + builtins.head (pkgs.lib.drop 1 (pkgs.lib.splitString "://" url)); in { imports = [ ./hardware-configuration.nix @@ -11,6 +13,8 @@ in { ../../modules/nix-config.nix ../../modules/iohk.nix ../../modules/timezone.nix + ../../modules/keybase.nix + ../../modules/ssh.nix ]; # Use the GRUB 2 boot loader. @@ -137,14 +141,12 @@ in { htop tmux git - #agenix.defaultPackage.x86_64-linux restic # fast and secure backup rclone ]; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. - # programs.mtr.enable = true; programs.gnupg.agent = { enable = true; enableSSHSupport = true; @@ -163,20 +165,15 @@ in { # List services that you want to enable: - # depending on wireguard services.kresd = { enable = true; listenPlain = [ "[::1]:53" "127.0.0.1:53" "10.0.0.1:53" ]; }; - # Enable the OpenSSH daemon. - services.openssh.enable = true; - services.lorri.enable = true; # configure backup via restic to gdrive services.restic.backups = { }; - services.keybase = { enable = true; }; services.nginx = { enable = true; @@ -226,27 +223,31 @@ in { }; # gitea - "git.failco.de" = { + "${config.services.gitea.settings.server.DOMAIN}" = { forceSSL = true; enableACME = true; locations."/" = { - proxyPass = "http://127.0.0.1:3001/"; + proxyPass = "http://127.0.0.1:${ + toString config.services.gitea.settings.server.HTTP_PORT + }/"; proxyWebsockets = true; }; }; # paperless - "docs.failco.de" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://127.0.0.1:3002/"; - proxyWebsockets = true; + "${authorityFromUrl config.services.paperless.extraConfig.PAPERLESS_URL}" = + { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = + "http://127.0.0.1:${toString config.services.paperless.port}/"; + proxyWebsockets = true; + }; }; - }; # hledger - "${ledgerVHost}" = { + "${authorityFromUrl config.services.hledger-web.baseUrl}" = { forceSSL = true; enableACME = true; basicAuthFile = config.age.secrets.hledger-web.path; @@ -297,7 +298,7 @@ in { services.hledger-web = { enable = true; - baseUrl = "https://${ledgerVHost}"; + baseUrl = "https://ledger.failco.de"; port = 3003; capabilities = { view = true; diff --git a/modules/keybase.nix b/modules/keybase.nix new file mode 100644 index 0000000..c652d72 --- /dev/null +++ b/modules/keybase.nix @@ -0,0 +1,5 @@ +{ config, lib, pkgs, ... }: + +{ + services.keybase.enable = true; +} diff --git a/modules/ssh.nix b/modules/ssh.nix new file mode 100644 index 0000000..3ae6158 --- /dev/null +++ b/modules/ssh.nix @@ -0,0 +1,5 @@ +{ config, lib, pkgs, ... }: + +{ + services.openssh.enable = true; +} -- 2.51.2 From 2d8e1a873abe4d453781fa6634944c0d229fc438 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 22 Jan 2024 21:41:35 +0100 Subject: [PATCH 088/120] thrall: Move ssh keys into ssh config module --- modules/ssh.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/ssh.nix b/modules/ssh.nix index 3ae6158..a93eb68 100644 --- a/modules/ssh.nix +++ b/modules/ssh.nix @@ -2,4 +2,13 @@ { services.openssh.enable = true; + users.users.alex.openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC/aaVGcys7ZJ3chImea/8jTGtIVYKzDxXBGIeZMiLm/ u0_a204@localhost" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrPC2OMHYJX41vedlsgQeLobapDOZ8StPVwmTTp0Qc83OeXGXiaJ2P0wA65NoIjh+I7OZjc/kRCO+mC4BZs2Em3pmWOZNTvW4YA8lvhpkwFNrvmx+G+HKKG7F04lOgo9zAJltY8ENj0T5jddbWWuSRDNPrHCwet2jdiTWc2Ri5QNAdxXSmp+XG9rTPF6JfuH3kjU7UYgMG0c9dJAy7KzCj4p6GhlfvZlFndhmT+PMkJbn5liv8ldFIuHAqA0Hyo3UYfAieeUDBloevbZKpbsp7wVdtmySfJCgwRaOqVPyB+5QK6sY32s2L8sHHdKgnJ1czeLaX11ZEGQIb4wMd6VYD (none)" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIScA09BrNhQjUzoKhU8xl0Giq4o+eN4tOhdRrS3AHg9QtDd+cZ/6gx5iuVguwVPwCBSGlyilIhtTvUHBft7vEqdoSWDzsIv4nAq5+m4wBAV1WtNuzdIjgDBVtYqIKI+KHasIuj5ol8tDbMmNUfG4kvPgaIudGo9G+ynWSVR1mZyk+W0sAKJAeWmcv5EDxMaSS/4WWXZ7GeLy5t0RJlyO4Pspm69hb63Urz5N2YJHUwgXLZbirsTK0cKRGLKvyEwUOQDvnj13VvnSt5mjfYNGr0g770PLNRPno2PeS5ux2+/4dx03+enh6CA70a+Ialu1Z7qMsaZhLPwuUDTGJJX4F ads-1700w" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDOlzj6jMbFgBeNIq1u6ixwtfsjcTV/S5VUchpH2GskodrAuWTE6G+eIj40nVO3JbaErderhfosIhN8HnZTP9uhXvDcAgqE98rVKLC1Pm0bDST4H+Qc358h4BRWamkojF7ub1RdMKVsIX9xQFAPCv+6iyLKBU5F8lNu70Wr9cNSPaMS1zvKdJzUzq34kdjKf6Jsc+64ux254MUbkoD9VgJpNq9cCbkI6JHDLL+6fer/66dvsEggEEoCgbupJljsHo+4SGDqiFFT8l81gfgsV6CwAib7gkSiR9ZgCDgwjd5QPMqPBFytIc5F8Gz4sbsB2TMlLraaD+vcTt7p3HlWCsDpW0QBeeDvmupZoWpQuT8R/4G3FnGAf5sJgccffO8R/na8/TpSrRdfj0GlGYvxasMKDJnbrVig+zi7JpdH9hvAXmpv6c8QHhjr191I15PV2m4Z2bPPo5BXDt1YEqSgAaFHpTlkIUheEpbKRJI28YwOWOv3r1CcaGM64KxFXSZIIIk= nix-on-droid@localhost" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC0itMeWUBtvAjNUzU0iCNHvRo2DUewlGjmHgy8qk7QyYvrFO0DhadDUrkqGK3RjfPue5eM+L/4sib+fr4OIAjzTxvSBpZWfMZtU41/iWiT2bvz7mNvi9j/TDBl/+PfFt0VBUgSPk1cO00P4sExVvseF9hXq5h4NNR4iSuC9P9u6mbaUeg9X6ydlld9+W300erxEToK54alZ0+YOwEMypjytjCBSPFG2QfmFoeU8bCqJvSotOw5nu974LKHOxZgxluBKprlusrRjCxZim9XwTS07I9gZhiDKIdvThSzEWZX4nwLrTyIh19DlZTO2vPUwwqBZyGlwMPCjfFazeViBKuQXCEAmifFHc/4f5Ae1zRA+ombJQveigomlcMXdV9E7HsD0I976ErJbYmfH+QwI78HbwFvbOX3yazdrw02ltdjvasO30dH7wdckoC7fYEXOij3M2pKlLOUojKUF589uPjiBiGNtxGKGpg0TKG9Nj1rvYHljfzQNwqgHKKrRdZo5pOHwzhvl4/fQubu5S/eAppstDuVHTZwIzpd9sHez1JNYS7SKNxT1cIW8NfW41RUe/8rVF678FvIDzuqkcYLsmPd+tg+w78stMEJHaTLHYOCbfYqEdBnvcNRPUFY30MwCVkG7s9X3cEuOwMx8KbTlH5AFZj9IBVUNeJ4p4aMUw3Pbw== /home/alex/.ssh/id_rsa" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDG4BlH07+a+U3i89U11Oz81X1lZnMnzu5d0Em2zlQJYiIqnwj7uRUl7TerXxmum9vOYsDGLGP8RwQRzySM5xfIIEmn5wHb6zPzD8jC8sJQws9d7q84PJMDVUfUeTHR/xZ9QbzG3NHTNnGdbtQptkDwxzLnr/kL5rvGrudgYa0RwHHZbz0WK15iVcsRIHglhsf9gLlXhZZ8Hn2r2qS7jj32InH58KAtawRBd8/WE56h/QY5vUt2F4M8ZvvIJHndynOn71iPJY0tr+b/VIG5JSK89aIQyVRk222TlTn3BrYW2VudrKkkLtssDEIfTmQeALN/LYev4+bJNGDI7bmg7TD4L6AlgrkTJGvXoup410oeiOWP2vrbK2OLB8lcs4lH9iauFg6fMAQuboJjUisicj6tD2SyjELCP2Hvf625k1H2vyp5366dUROBRaUX/AKIZwkIstNgcaLkF7gmeAc1Atr3DK4Jtxc9CHTO7Dv0os+p2q4LJm+mnJy8H7PnfPiRB3thTfULUAWQ2H8RpAn1r0Txur/3D/Jde6PPzL41CefmF6z+UOd4gwMONns7FLjru5z6HG/egaXlJPJkfYbgB+253VDDOga2Y+1W99rgvX0UsF//dhYCqa/XWvmk3htjRTgz80B7tm/eKQwaM7Cm7YZzWq5mjfgxPptkB9SDS8HORw== joyeuse" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDad0tKjdZluogJz9Tir9szwd3olnmY+XqrZtaabgAv9M1V3+ktjZxb11fqbhxpspEW889fG0PrdDsKrYrp6Adm6mVcFXb2Rx8uEIcQ4XQfMqzTBLgNipBcU+7DiWHrejLf9hcrH6HL4o6py59CrX5lnAf1Elt9HxUXTVl9rbMp0SHif6EbYumrCwipWWmcLJWKWVJrJ6rf4YBsmLNtxhf7myjCJxECetQeWyAJodguJa8T7hDJSiE6rfPLanU673T/CU1IBgexriUxcSk09PmjLGB3fFbZnGJlIOAua7ctXtwVjzat5WAWoNo5JdC3cnEUoNkyx7krLbQ2oOzNJi9YgYneTR0KWHYG/v/WVoI+VtW0RQIS+QzVW+ox8Y2j209BZGBFN1d+/ZarUsizg5OEyO7ntiL/UhL/YbI9jknBiw08mzUwIHLpNrpz17duIFNaNkmaN1FAt3b5HBVyq9h4x9FXmp/zaiVzN//Md4GD8xnGmiR3fd+l51mz+WjHIQM= alex@dregil" + ]; } -- 2.51.2 From a12c6266ccb6d4427f0711668c186d68a7c90a15 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 24 Jan 2024 21:50:18 +0100 Subject: [PATCH 089/120] thrall: Move most modules from flake to thrall --- flake.nix | 74 +++++++++++++++++++--------------------- hosts/thrall/default.nix | 15 +++----- 2 files changed, 40 insertions(+), 49 deletions(-) diff --git a/flake.nix b/flake.nix index 1b9ab49..32a274f 100644 --- a/flake.nix +++ b/flake.nix @@ -42,46 +42,42 @@ }; }; - outputs = - { home-manager, nixpkgs, nixpkgs-unstable, agenix, snm, ... }@inputs: { - nixosConfigurations."thrall" = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = { inherit inputs; }; - modules = let - postfix-overlay = final: prev: { - postfix = nixpkgs-unstable.legacyPackages."x86_64-linux".postfix; + outputs = { home-manager, nixpkgs, nixpkgs-unstable, ... }@inputs: { + nixosConfigurations."thrall" = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = let + postfix-overlay = final: prev: { + postfix = nixpkgs-unstable.legacyPackages."x86_64-linux".postfix; + }; + in [ + ({ inputs, lib, ... }: { + nixpkgs = { + config.allowUnfree = true; + overlays = with inputs; [ emacs.overlay postfix-overlay ]; }; - in [ - ({ inputs, lib, ... }: { - nixpkgs = { - config.allowUnfree = true; - overlays = with inputs; [ emacs.overlay postfix-overlay ]; - }; - nix.registry = lib.mapAttrs (_: value: { flake = value; }) inputs; - }) - snm.nixosModule - ./modules/security.nix - ./hosts/thrall - agenix.nixosModules.age - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.alex = import ./home/cli.nix; - } + nix.registry = lib.mapAttrs (_: value: { flake = value; }) inputs; + }) + ./hosts/thrall + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.alex = import ./home/cli.nix; + } + ]; + }; + + nixosConfigurations."dregil" = import ./hosts/dregil { inherit inputs; }; + homeConfigurations = import ./outputs/homeConfigurations inputs; + + nixOnDroidConfigurations.default = with inputs; + nix-on-droid.lib.nixOnDroidConfiguration { + modules = [ + ./hosts/redmi + { nix.registry.nixpkgs.flake = nixpkgs-droid; } + { nix.nixPath = [ "nixpkgs=${nixpkgs-droid}" ]; } ]; }; - - nixosConfigurations."dregil" = import ./hosts/dregil { inherit inputs; }; - homeConfigurations = import ./outputs/homeConfigurations inputs; - - nixOnDroidConfigurations.default = with inputs; - nix-on-droid.lib.nixOnDroidConfiguration { - modules = [ - ./hosts/redmi - { nix.registry.nixpkgs.flake = nixpkgs-droid; } - { nix.nixPath = [ "nixpkgs=${nixpkgs-droid}" ]; } - ]; - }; - }; + }; } diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 29f0322..a3924be 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -2,13 +2,16 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, ... }: +{ inputs, config, pkgs, ... }: let authorityFromUrl = url: builtins.head (pkgs.lib.drop 1 (pkgs.lib.splitString "://" url)); in { imports = [ ./hardware-configuration.nix + inputs.snm.nixosModule + inputs.agenix.nixosModules.age + ../../modules/security.nix ../../modules/upgrade-pg-cluster.nix ../../modules/nix-config.nix ../../modules/iohk.nix @@ -135,15 +138,7 @@ in { # List packages installed in system profile. To search, run: # $ nix search wget - environment.systemPackages = with pkgs; [ - wget - rsync - htop - tmux - git - restic # fast and secure backup - rclone - ]; + environment.systemPackages = with pkgs; [ wget rsync htop tmux git rclone ]; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. -- 2.51.2 From 8bc3e82f6d573dcb4ed1a910e86966c4c5e23ff5 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 16 Dec 2023 14:27:58 +0100 Subject: [PATCH 090/120] cli: Install btop as a program --- home/cli.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/home/cli.nix b/home/cli.nix index 44777d0..5e9fef0 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -60,7 +60,6 @@ in { (aspellWithDicts (dicts: with dicts; [ en en-computers en-science de ])) # system tools - btop htop-vim # htop with vim bindings erdtree # du+tree had sex dua # ncdu but better @@ -117,6 +116,9 @@ in { # better cat bat.enable = true; + # htop replacement with a nice UI + btop.enable = true; + zsh = { enable = true; enableAutosuggestions = true; -- 2.51.2 From 8b32545af3803b198ae55b1fe77292623ea5e7a3 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 16 Dec 2023 14:28:41 +0100 Subject: [PATCH 091/120] dregil: Define dregil as 127.0.0.1 --- hosts/dregil/configuration.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index 1a54eaa..79f6f10 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -32,6 +32,10 @@ in { networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + networking.extraHosts = '' + 127.0.0.1 localhost dregil.localdomain dregil + ''; + # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; -- 2.51.2 From 5da20a0e67ca085554a3fcdb0201f05340bff35b Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 16 Dec 2023 14:29:27 +0100 Subject: [PATCH 092/120] dregil: Limit the number of cores used for building --- hosts/dregil/configuration.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index 79f6f10..a2a7861 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -125,6 +125,9 @@ in { environment.etc."nix/inputs/nixpkgs".source = inputs.nixpkgs-unstable.outPath; nix.nixPath = [ "nixpkgs=${inputs.nixpkgs-unstable}" ]; + nix.settings.max-jobs = 3; + nix.settings.cores = 4; + # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.mtr.enable = true; -- 2.51.2 From ef1f55cd8da88937a7eb7b79661e1b3fcac1cce5 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 24 Jan 2024 22:43:56 +0100 Subject: [PATCH 093/120] dregil: Refactor configuration --- flake.nix | 6 +++++- hosts/dregil/default.nix | 23 +++++++++-------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/flake.nix b/flake.nix index 32a274f..63069cd 100644 --- a/flake.nix +++ b/flake.nix @@ -68,7 +68,11 @@ ]; }; - nixosConfigurations."dregil" = import ./hosts/dregil { inherit inputs; }; + nixosConfigurations."dregil" = nixpkgs-unstable.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = [ ./hosts/dregil ]; + }; homeConfigurations = import ./outputs/homeConfigurations inputs; nixOnDroidConfigurations.default = with inputs; diff --git a/hosts/dregil/default.nix b/hosts/dregil/default.nix index f76b4f6..2f65274 100644 --- a/hosts/dregil/default.nix +++ b/hosts/dregil/default.nix @@ -1,17 +1,12 @@ -{ inputs, ... }: -let - inherit (inputs.nixpkgs-unstable.lib) nixosSystem; - - system = "x86_64-linux"; - - pkgs = import inputs.nixpkgs-unstable { - inherit system; - config = { allowUnfree = true; }; - }; -in nixosSystem { - inherit system pkgs; - specialArgs = { inherit inputs; }; - modules = [ +{ lib, config, pkgs, inputs, ... }: { + imports = [ + ({ inputs, lib, ... }: { + nixpkgs = { + config.allowUnfree = true; + overlays = with inputs; [ emacs.overlay ]; + }; + nix.registry = lib.mapAttrs (_: value: { flake = value; }) inputs; + }) ../../modules/security.nix ../../modules/common-system.nix ./configuration.nix -- 2.51.2 From 76fbe957a7e0b94d0a7ed47dd5424b35676db407 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Fri, 26 Jan 2024 21:18:05 +0100 Subject: [PATCH 094/120] igor: Prepare configuration of igor --- flake.lock | 21 ++++++++++++ flake.nix | 9 +++++ hosts/igor/default.nix | 65 +++++++++++++++++++++++++++++++++++++ hosts/igor/disko-config.nix | 49 ++++++++++++++++++++++++++++ 4 files changed, 144 insertions(+) create mode 100644 hosts/igor/default.nix create mode 100644 hosts/igor/disko-config.nix diff --git a/flake.lock b/flake.lock index 7609277..bddcdd6 100644 --- a/flake.lock +++ b/flake.lock @@ -60,6 +60,26 @@ "type": "github" } }, + "disko": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1706302763, + "narHash": "sha256-Le1wk75qlzOSfzDk8vqYxSdoEyr/ORIbMhziltVNGYw=", + "owner": "nix-community", + "repo": "disko", + "rev": "f7424625dc1f2e4eceac3009cbd1203d566feebc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "disko", + "type": "github" + } + }, "emacs": { "inputs": { "flake-utils": "flake-utils", @@ -424,6 +444,7 @@ "root": { "inputs": { "agenix": "agenix", + "disko": "disko", "emacs": "emacs", "home-manager": "home-manager_2", "home-manager-unstable": "home-manager-unstable", diff --git a/flake.nix b/flake.nix index 63069cd..aea3c4a 100644 --- a/flake.nix +++ b/flake.nix @@ -40,6 +40,9 @@ url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; + + disko.url = "github:nix-community/disko"; + disko.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { home-manager, nixpkgs, nixpkgs-unstable, ... }@inputs: { @@ -75,6 +78,12 @@ }; homeConfigurations = import ./outputs/homeConfigurations inputs; + nixosConfigurations."igor" = nixpkgs-unstable.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = [ ./hosts/igor ]; + }; + nixOnDroidConfigurations.default = with inputs; nix-on-droid.lib.nixOnDroidConfiguration { modules = [ diff --git a/hosts/igor/default.nix b/hosts/igor/default.nix new file mode 100644 index 0000000..02d17e9 --- /dev/null +++ b/hosts/igor/default.nix @@ -0,0 +1,65 @@ +{ config, inputs, lib, pkgs, ... }: + +{ + imports = [ + inputs.disko.nixosModules.disko + ../../modules/security.nix + ../../modules/nix-config.nix + ../../modules/iohk.nix + ../../modules/timezone.nix + ../../modules/keybase.nix + ../../modules/ssh.nix + ./disko-config.nix + ]; + + networking = let extIface = "ens3"; + in { + hostName = "igor"; + domain = "failco.de"; + wireless.enable = false; + useDHCP = false; + enableIPv6 = false; + interfaces.${extIface} = { + ipv4.addresses = [{ + address = "192.168.0.2"; + prefixLength = 24; + }]; + }; + defaultGateway = "192.168.0.1"; + nameservers = [ "1.1.1.1" "8.8.8.8" ]; + firewall = { + allowedTCPPorts = [ 22 80 443 ]; + allowedUDPPorts = [ ]; + }; + }; + + security.sudo = { + enable = true; + execWheelOnly = true; + }; + + # Select internationalization properties. + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminus16"; + keyMap = "dvorak"; + }; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.me = { + isNormalUser = true; + extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. + shell = pkgs.zsh; + }; + + programs.neovim = { + enable = true; + defaultEditor = true; + viAlias = true; + vimAlias = true; + }; + + programs.zsh.enable = true; + + system.stateVersion = "23.11"; +} diff --git a/hosts/igor/disko-config.nix b/hosts/igor/disko-config.nix new file mode 100644 index 0000000..cd3c4aa --- /dev/null +++ b/hosts/igor/disko-config.nix @@ -0,0 +1,49 @@ +{ + disko.devices = { + disk.main = { + type = "disk"; + device = "/dev/mmcblk0"; + content = { + type = "gpt"; + partitions = { + ESP = { + priority = 1; + name = "ESP"; + start = "1M"; + end = "512M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + }; + + root = { + size = "100%"; + content = { + type = "btrfs"; + extraArgs = [ "-f" ]; + + subvolumes = { + "/rootfs" = { mountpoint = "/"; }; + "/home" = { + mountOptions = [ "compress=zstd" ]; + mountpoint = "/home"; + }; + "/nix" = { + mountOptions = [ "compress=zstd" "noatime" ]; + mountpoint = "/nix"; + }; + "/swap" = { + mountpoint = "/.swapvol"; + swap = { swapfile.size = "2G"; }; + }; + }; + }; + }; + }; + }; + }; + }; +} -- 2.51.2 From cc05e806a828f0f5bf53d93f3e2d9fff746074ba Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 27 Jan 2024 22:28:12 +0100 Subject: [PATCH 095/120] dregil: Split X11 configuration --- hosts/dregil/configuration.nix | 39 ++--------- hosts/dregil/hardware-configuration.nix | 87 +++++++++++++------------ modules/wm/gnome.nix | 5 ++ modules/wm/x.nix | 36 ++++++++++ modules/wm/xmonad.nix | 17 +++++ 5 files changed, 109 insertions(+), 75 deletions(-) create mode 100644 modules/wm/gnome.nix create mode 100644 modules/wm/x.nix create mode 100644 modules/wm/xmonad.nix diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index a2a7861..41f5c97 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -16,6 +16,8 @@ in { # Include the results of the hardware scan. ./hardware-configuration.nix # + ../../modules/wm/x.nix +# ../../modules/wm/xmonad.nix ]; # Use the systemd-boot EFI boot loader. @@ -36,10 +38,6 @@ in { 127.0.0.1 localhost dregil.localdomain dregil ''; - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - i18n = { extraLocaleSettings = { TIME_STYLE = "iso"; }; supportedLocales = @@ -48,40 +46,9 @@ in { console = { font = "Lat2-Terminus16"; - #useXkbConfig = true; # use xkbOptions in tty. keyMap = "dvorak"; }; - # Enable the X11 windowing system. - services.xserver = { - enable = true; - exportConfiguration = true; - - # Configure keymap in X11 - layout = "us"; - - xkbOptions = "terminate:ctrl_alt_bksp,caps:escape,compose:ralt"; - - videoDrivers = [ "nvidia" ]; # "modesetting" ]; - - displayManager.lightdm = { - enable = true; - greeters.slick.enable = true; - }; - - desktopManager.xfce.enable = true; - desktopManager.gnome.enable = true; - - # Enable touchpad support (enabled default in most desktopManager). - libinput = { - enable = true; - touchpad.disableWhileTyping = true; - touchpad.naturalScrolling = true; - mouse.naturalScrolling = - config.services.xserver.libinput.touchpad.naturalScrolling; - }; - }; - fonts = { enableDefaultPackages = true; packages = with pkgs; [ @@ -147,6 +114,8 @@ in { # Enable the OpenSSH daemon. services.openssh.enable = true; + services.blueman.enable = true; + # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ]; diff --git a/hosts/dregil/hardware-configuration.nix b/hosts/dregil/hardware-configuration.nix index c21e13f..8aba9e8 100644 --- a/hosts/dregil/hardware-configuration.nix +++ b/hosts/dregil/hardware-configuration.nix @@ -4,12 +4,19 @@ { config, lib, pkgs, modulesPath, ... }: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "usbhid" "sd_mod" ]; - boot.initrd.kernelModules = [ "dm-snapshot" "uas" "usbcore" "usb_storage" "vfat" "nls_cp437" "nls_iso8859_1" ]; + boot.initrd.availableKernelModules = + [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ + "dm-snapshot" + "uas" + "usbcore" + "usb_storage" + "vfat" + "nls_cp437" + "nls_iso8859_1" + ]; boot.initrd.luks.devices = { root = { device = "/dev/disk/by-uuid/bebf96d1-2a2b-412c-a5f0-f9ed5730a05f"; @@ -24,33 +31,31 @@ boot.extraModulePackages = [ pkgs.linuxPackages.nvidia_x11 ]; boot.kernelParams = [ "module_blacklist=i915" ]; - fileSystems."/" = - { device = "/dev/disk/by-uuid/a88ac058-e704-419e-ba7d-1d0ff4b6f654"; - fsType = "btrfs"; - options = [ "subvol=root" "compress=zstd" ]; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/a88ac058-e704-419e-ba7d-1d0ff4b6f654"; + fsType = "btrfs"; + options = [ "subvol=root" "compress=zstd" ]; + }; - fileSystems."/home" = - { device = "/dev/disk/by-uuid/a88ac058-e704-419e-ba7d-1d0ff4b6f654"; - fsType = "btrfs"; - options = [ "subvol=home" "compress=zstd" ]; - }; + fileSystems."/home" = { + device = "/dev/disk/by-uuid/a88ac058-e704-419e-ba7d-1d0ff4b6f654"; + fsType = "btrfs"; + options = [ "subvol=home" "compress=zstd" ]; + }; - fileSystems."/nix" = - { device = "/dev/disk/by-uuid/a88ac058-e704-419e-ba7d-1d0ff4b6f654"; - fsType = "btrfs"; - options = [ "subvol=nix" "compress=zstd" "noatime" ]; - }; + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/a88ac058-e704-419e-ba7d-1d0ff4b6f654"; + fsType = "btrfs"; + options = [ "subvol=nix" "compress=zstd" "noatime" ]; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/786D-42D7"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/786D-42D7"; + fsType = "vfat"; + }; swapDevices = - [ { device = "/dev/disk/by-uuid/b8c224ad-095e-4a48-b5b2-a19451fdeb95"; - } - ]; + [{ device = "/dev/disk/by-uuid/b8c224ad-095e-4a48-b5b2-a19451fdeb95"; }]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's @@ -62,22 +67,23 @@ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = + lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.nvidia = { - nvidiaSettings = true; - nvidiaPersistenced = true; + nvidiaSettings = true; + nvidiaPersistenced = true; -# modesetting.enable = true; - package = config.boot.kernelPackages.nvidiaPackages.beta; -# prime = { -# offload.enable = true; -# -# intelBusId = "PCI:1:0:0"; -# nvidiaBusId = "PCI:1:0:0"; -# intelBusId = "0@0:2:0"; -# nvidiaBusId = "1@1:0:0"; -# }; + # modesetting.enable = true; + package = config.boot.kernelPackages.nvidiaPackages.beta; + # prime = { + # offload.enable = true; + # + # intelBusId = "PCI:1:0:0"; + # nvidiaBusId = "PCI:1:0:0"; + # intelBusId = "0@0:2:0"; + # nvidiaBusId = "1@1:0:0"; + # }; }; hardware.opengl = { @@ -87,4 +93,5 @@ }; hardware.keyboard.uhk.enable = true; + hardware.bluetooth.enable = true; } diff --git a/modules/wm/gnome.nix b/modules/wm/gnome.nix new file mode 100644 index 0000000..865d469 --- /dev/null +++ b/modules/wm/gnome.nix @@ -0,0 +1,5 @@ +{ config, lib, pkgs, ... }: + +{ + +} diff --git a/modules/wm/x.nix b/modules/wm/x.nix new file mode 100644 index 0000000..58e31d9 --- /dev/null +++ b/modules/wm/x.nix @@ -0,0 +1,36 @@ +{ config, lib, pkgs, ... }: + +{ + # Enable the X11 windowing system. + services = { + dbus = { enable = true; }; + + xserver = { + enable = true; + exportConfiguration = true; + + # Configure keymap in X11 + layout = "us"; + + xkbOptions = "terminate:ctrl_alt_bksp,caps:escape,compose:ralt"; + + videoDrivers = [ "nvidia" ]; # "modesetting" ]; + + displayManager.lightdm = { + enable = true; + greeters.slick.enable = true; + }; + + desktopManager.xfce.enable = true; + desktopManager.gnome.enable = true; + + # Enable touchpad support (enabled default in most desktopManager). + libinput = { + enable = true; + touchpad.disableWhileTyping = true; + mouse.naturalScrolling = + config.services.xserver.libinput.touchpad.naturalScrolling; + }; + }; + }; +} diff --git a/modules/wm/xmonad.nix b/modules/wm/xmonad.nix new file mode 100644 index 0000000..392b324 --- /dev/null +++ b/modules/wm/xmonad.nix @@ -0,0 +1,17 @@ +{ config, lib, pkgs, ... }: + +{ + services = { + gnome.gnome-keyring.enable = true; + upower.enable = true; + + xserver = { + windowManager.xmonad = { + enable = true; + enableContribAndExtras = true; + }; + }; + }; + + systemd.services.upower.enable = true; +} -- 2.51.2 From 59512e77ef3c2dd51d6f5aa3e9d64046e75a9622 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 28 Jan 2024 14:01:31 +0100 Subject: [PATCH 096/120] mail: Define a virtual alias for a family accaunt --- hosts/thrall/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index a3924be..ebc6176 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -376,6 +376,8 @@ in { }; }; + extraVirtualAliases = { "familie@kobjolke.de" = [ "me@failco.de" ]; }; + forwards = { "anne@kobjolke.de" = "anne.kobjolke@gmail.cem"; "alex@kobjolke.de" = "me@failco.de"; -- 2.51.2 From e607d83f49b56a28cdbfdd81c8cea50c76863f66 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 29 Jan 2024 22:20:57 +0100 Subject: [PATCH 097/120] dregil: Integrate my home configuration --- flake.nix | 1 + home/alex/default.nix | 17 +++++ home/alex/home.nix | 92 +++++++++++++++++++++++++++ home/alex/programs/xmonad/config.hs | 77 ++++++++++++++++++++++ home/alex/programs/xmonad/default.nix | 12 ++++ hosts/dregil/configuration.nix | 12 +--- hosts/dregil/default.nix | 3 +- 7 files changed, 202 insertions(+), 12 deletions(-) create mode 100644 home/alex/default.nix create mode 100644 home/alex/home.nix create mode 100644 home/alex/programs/xmonad/config.hs create mode 100644 home/alex/programs/xmonad/default.nix diff --git a/flake.nix b/flake.nix index aea3c4a..61bc1eb 100644 --- a/flake.nix +++ b/flake.nix @@ -76,6 +76,7 @@ specialArgs = { inherit inputs; }; modules = [ ./hosts/dregil ]; }; + homeConfigurations = import ./outputs/homeConfigurations inputs; nixosConfigurations."igor" = nixpkgs-unstable.lib.nixosSystem { diff --git a/home/alex/default.nix b/home/alex/default.nix new file mode 100644 index 0000000..9147169 --- /dev/null +++ b/home/alex/default.nix @@ -0,0 +1,17 @@ +{ config, lib, pkgs, inputs, ... }: +let electron-overlay = final: prev: { electron = final.electron_25; }; +in { + imports = [{ nixpkgs.overlays = [ inputs.emacs.overlay ]; }]; + + users.users."alex" = { + isNormalUser = true; + extraGroups = [ "input" "networkmanager" "wheel" ]; + description = "Alexander Kobjolke"; + home = "/home/alex"; + shell = pkgs.zsh; + }; + + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.alex = import ./home.nix; +} diff --git a/home/alex/home.nix b/home/alex/home.nix new file mode 100644 index 0000000..d60cabe --- /dev/null +++ b/home/alex/home.nix @@ -0,0 +1,92 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ ../cli.nix ]; + + home = { + homeDirectory = "/home/alex"; + stateVersion = "21.05"; + sessionPath = [ "$HOME/.local/bin" "$HOME/.emacs.d/bin" ]; + shellAliases = { e = "emacsclient -c $@"; }; + + language.base = "en_US.UTF-8"; + + keyboard.layout = "us"; + keyboard.variant = "dvorak"; + keyboard.options = + [ "terminate:ctrl_alt_bksp" "caps:escape" "compose:ralt" ]; + + packages = with pkgs; [ + # social + (jitsi-meet-electron.overrideAttrs (prev: rec { + version = "2023.10.0"; + src = fetchurl { + url = + "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage"; + sha256 = "sha256-zhOx/gdsiQMuOCCE5sn+JNu0WJrH36XfvqqNvE24St8="; + name = "jitsi-meet-electron-${version}.AppImage"; + }; + })) # jitsi as a stand-alone app + discord # talk to other people + + # system tools + uhk-agent # my keyboard + mosh # ssh via udp + + # gaming support + lutris + winePackages.stagingFull + + # reading + calibre + ]; + }; + + news.display = "silent"; + + programs = { + alacritty.enable = true; + # autorandr.enable = true; + + browserpass = { + enable = true; + browsers = [ "firefox" ]; + }; + + feh.enable = true; + firefox = { + enable = true; + package = pkgs.firefox.override { + cfg = { + enableGnomeExtensions = true; + enableTridactylNative = true; + enableBrowserpass = true; + }; + }; + }; + mpv.enable = true; + rofi.enable = true; + rofi.pass.enable = true; + zathura.enable = true; + + zsh = let + auth-socket-env = '' + export SSH_AUTH_SOCK="$(${pkgs.gnupg}/bin/gpgconf -L agent-ssh-socket)" + ''; + in { + enable = true; + loginExtra = auth-socket-env; + initExtra = auth-socket-env; + }; + }; + + services.gpg-agent = { + enable = true; + enableSshSupport = true; + sshKeys = [ "9027AB16B9A7C20BD29F30F55CBA054430BF014C" ]; + }; + + # services.autorandr = { enable = true; }; + + xsession.enable = true; +} diff --git a/home/alex/programs/xmonad/config.hs b/home/alex/programs/xmonad/config.hs new file mode 100644 index 0000000..9cc8e3f --- /dev/null +++ b/home/alex/programs/xmonad/config.hs @@ -0,0 +1,77 @@ +import XMonad + +import XMonad.Hooks.DynamicLog +import XMonad.Hooks.ManageDocks +import XMonad.Hooks.ManageHelpers +import XMonad.Hooks.StatusBar +import XMonad.Hooks.StatusBar.PP + +import XMonad.Util.EZConfig +import XMonad.Util.Loggers +import XMonad.Util.Ungrab + +import XMonad.Layout.Magnifier +import XMonad.Layout.ThreeColumns + +import XMonad.Hooks.EwmhDesktops + + +main :: IO () +main = xmonad + . ewmhFullscreen + . ewmh + . withEasySB (statusBarProp "xmobar" (pure myXmobarPP)) defToggleStrutsKey + $ myConfig + +myConfig = def + { modMask = mod4Mask -- Rebind Mod to the Super key + , layoutHook = myLayout -- Use custom layouts + , manageHook = myManageHook -- Match on certain windows + } + `additionalKeysP` + [ ("M-S-z", spawn "xscreensaver-command -lock") + , ("M-C-s", unGrab *> spawn "scrot -s" ) + , ("M-f" , spawn "firefox" ) + ] + +myManageHook :: ManageHook +myManageHook = composeAll + [ className =? "Gimp" --> doFloat + , isDialog --> doFloat + ] + +myLayout = tiled ||| Mirror tiled ||| Full ||| threeCol + where + threeCol = magnifiercz' 1.3 $ ThreeColMid nmaster delta ratio + tiled = Tall nmaster delta ratio + nmaster = 1 -- Default number of windows in the master pane + ratio = 1/2 -- Default proportion of screen occupied by master pane + delta = 3/100 -- Percent of screen to increment by when resizing panes + +myXmobarPP :: PP +myXmobarPP = def + { ppSep = magenta " • " + , ppTitleSanitize = xmobarStrip + , ppCurrent = wrap " " "" . xmobarBorder "Top" "#8be9fd" 2 + , ppHidden = white . wrap " " "" + , ppHiddenNoWindows = lowWhite . wrap " " "" + , ppUrgent = red . wrap (yellow "!") (yellow "!") + , ppOrder = \[ws, l, _, wins] -> [ws, l, wins] + , ppExtras = [logTitles formatFocused formatUnfocused] + } + where + formatFocused = wrap (white "[") (white "]") . magenta . ppWindow + formatUnfocused = wrap (lowWhite "[") (lowWhite "]") . blue . ppWindow + + -- | Windows should have *some* title, which should not not exceed a + -- sane length. + ppWindow :: String -> String + ppWindow = xmobarRaw . (\w -> if null w then "untitled" else w) . shorten 30 + + blue, lowWhite, magenta, red, white, yellow :: String -> String + magenta = xmobarColor "#ff79c6" "" + blue = xmobarColor "#bd93f9" "" + white = xmobarColor "#f8f8f2" "" + yellow = xmobarColor "#f1fa8c" "" + red = xmobarColor "#ff5555" "" + lowWhite = xmobarColor "#bbbbbb" "" diff --git a/home/alex/programs/xmonad/default.nix b/home/alex/programs/xmonad/default.nix new file mode 100644 index 0000000..7fc15af --- /dev/null +++ b/home/alex/programs/xmonad/default.nix @@ -0,0 +1,12 @@ +{ config, lib, pkgs, ... }: + +{ + xsession = { + windowManager.xmonad = { + enable = true; + enableContribAndExtra = true; + extraPackages = hp: [ hp.dbus hp.monad-logger hp.xmonad-contrib ]; + config = ./config.hs; + }; + }; +} diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index 41f5c97..c759fab 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -17,7 +17,7 @@ in { ./hardware-configuration.nix # ../../modules/wm/x.nix -# ../../modules/wm/xmonad.nix + ../../modules/wm/xmonad.nix ]; # Use the systemd-boot EFI boot loader. @@ -68,16 +68,6 @@ in { sound.enable = true; hardware.pulseaudio.enable = true; - # Define a user account. Don't forget to set a password with ‘passwd’. - users.users.alex = { - isNormalUser = true; - extraGroups = [ - "wheel" # Enable ‘sudo’ for the user. - "input" - ]; - shell = pkgs.zsh; - }; - # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ diff --git a/hosts/dregil/default.nix b/hosts/dregil/default.nix index 2f65274..e569170 100644 --- a/hosts/dregil/default.nix +++ b/hosts/dregil/default.nix @@ -11,6 +11,7 @@ ../../modules/common-system.nix ./configuration.nix inputs.home-manager-unstable.nixosModules.home-manager - ../../home/anne + ../../home/anne/default.nix + ../../home/alex/default.nix ]; } -- 2.51.2 From dbe14a7d9a213f0e5e2223ecf7b69446e521117c Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Tue, 30 Jan 2024 22:58:16 +0100 Subject: [PATCH 098/120] home: Move neovim config to subdir --- home/alex/programs/neovim/default.nix | 20 ++++++++++++++++++++ home/cli.nix | 7 +------ 2 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 home/alex/programs/neovim/default.nix diff --git a/home/alex/programs/neovim/default.nix b/home/alex/programs/neovim/default.nix new file mode 100644 index 0000000..e455b33 --- /dev/null +++ b/home/alex/programs/neovim/default.nix @@ -0,0 +1,20 @@ +{ config, lib, pkgs, ... }: + +{ + programs.neovim = { + enable = true; + vimAlias = true; + + extraConfig = '' + set nowrap + ''; + + plugins = with pkgs.vimPlugins; [ + vim-nix + + indentLine + indent-blankline-nvim + neoformat + ]; + }; +} diff --git a/home/cli.nix b/home/cli.nix index 5e9fef0..2b02d49 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -10,10 +10,7 @@ let myEza = if builtins.hasAttr "eza" pkgs then "eza" else "exa"; in { - imports = [ - # shell config - #./modules/shell - ]; + imports = [ ./alex/programs/neovim/default.nix ]; programs.home-manager.enable = true; home = { @@ -182,8 +179,6 @@ in { ssh.enable = true; - neovim = import ./modules/nvim.nix pkgs; - texlive.enable = true; }; -- 2.51.2 From eccc0f0afd484bfc353ed384652730a892b45775 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 31 Jan 2024 08:35:42 +0100 Subject: [PATCH 099/120] modules: Update url of haskell.nix binary cache --- modules/iohk.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/iohk.nix b/modules/iohk.nix index b4215c9..69d1cb3 100644 --- a/modules/iohk.nix +++ b/modules/iohk.nix @@ -3,7 +3,7 @@ { # Binary Cache for Haskell.nix nix.settings.trusted-public-keys = - [ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" ]; + [ "cache.iog.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" ]; - nix.settings.substituters = lib.mkAfter [ "https://hydra.iohk.io" ]; + nix.settings.substituters = lib.mkAfter [ "https://cache.iog.io" ]; } -- 2.51.2 From d769f177b2e10f7090cac8f38bb15d1cb2d30073 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 31 Jan 2024 16:13:37 +0100 Subject: [PATCH 100/120] thrall: Add user description --- hosts/thrall/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index ebc6176..551b066 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -131,6 +131,7 @@ in { # Define a user account. Don't forget to set a password with ‘passwd’. users.users.alex = { + description = "Alexander Kobjolke"; isNormalUser = true; extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. shell = pkgs.zsh; -- 2.51.2 From 6f396e82d4a11915ba8ca66fa30f9053feaa9e56 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 31 Jan 2024 16:14:11 +0100 Subject: [PATCH 101/120] cli: Avoid setting user name and homedir --- home/cli.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/home/cli.nix b/home/cli.nix index 2b02d49..4ab3dd3 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -3,7 +3,7 @@ # minimal config, suitable for servers let user = { - name = "alex"; + name = config.home.username; fullName = "Alexander Kobjolke"; mail = "me@failco.de"; }; @@ -14,8 +14,6 @@ in { programs.home-manager.enable = true; home = { - username = user.name; - homeDirectory = "/home/${config.home.username}"; stateVersion = "21.05"; sessionPath = [ "$HOME/.local/bin" "$HOME/.emacs.d/bin" ]; shellAliases = { e = "emacsclient -c $@"; }; -- 2.51.2 From e9b9a996e8746126ae336f08a86a06e70b5acf6f Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Wed, 31 Jan 2024 23:35:28 +0100 Subject: [PATCH 102/120] dregil: Split up anne's home condig --- home/anne/default.nix | 22 +--------------------- home/anne/home.nix | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 21 deletions(-) create mode 100644 home/anne/home.nix diff --git a/home/anne/default.nix b/home/anne/default.nix index 6f12d26..31bbe46 100644 --- a/home/anne/default.nix +++ b/home/anne/default.nix @@ -10,25 +10,5 @@ in { "$6$Lq3kAyI7Oh3uvf9T$lxE1V9adw1lqjRT0tvCdj17zUz.nJkqkMSA8Y6ipuBIHoZqJKJcQPLby/BWdDvzcmCbyEOtA7grToclNnbV49/"; }; - home-manager.users.${username} = { - home = { - username = "${username}"; - homeDirectory = config.users.users.${username}.home; - language.base = "de_DE.UTF-8"; - stateVersion = "23.05"; - packages = with pkgs; [ - firefox - alacritty - gnome.gnome-session - gnome.gnome-control-center - ]; - keyboard.layout = "de"; - keyboard.variant = "nodeadkeys"; - }; - - xsession = { - enable = true; - windowManager.command = "${pkgs.gnome.gnome-session}/bin/gnome-session"; - }; - }; + home-manager.users.${username} = import ./home.nix; } diff --git a/home/anne/home.nix b/home/anne/home.nix new file mode 100644 index 0000000..59a3f37 --- /dev/null +++ b/home/anne/home.nix @@ -0,0 +1,21 @@ +{ config, lib, pkgs, ... }: + +{ + home = { + language.base = "de_DE.UTF-8"; + stateVersion = "23.05"; + packages = with pkgs; [ + firefox + alacritty + gnome.gnome-session + gnome.gnome-control-center + ]; + keyboard.layout = "de"; + keyboard.variant = "nodeadkeys"; + }; + + xsession = { + enable = true; + windowManager.command = "${pkgs.gnome.gnome-session}/bin/gnome-session"; + }; +} -- 2.51.2 From 16fcc510f63886ae64eebefd9b39a49bd6bd9557 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 3 Feb 2024 22:10:45 +0100 Subject: [PATCH 103/120] home: Extract emacs related config to module --- home/alex/default.nix | 2 +- home/alex/home.nix | 2 - home/alex/programs/emacs/default.nix | 26 ++ home/alex/programs/emacs/doom/config.el | 300 ++++++++++++++++++ home/alex/programs/emacs/doom/custom.el | 51 +++ home/alex/programs/emacs/doom/init.el | 197 ++++++++++++ home/alex/programs/emacs/doom/packages.el | 69 ++++ .../programs/emacs/doom/snippets/org-mode/__ | 3 + home/cli.nix | 17 +- hosts/dregil/default.nix | 5 +- 10 files changed, 651 insertions(+), 21 deletions(-) create mode 100644 home/alex/programs/emacs/default.nix create mode 100644 home/alex/programs/emacs/doom/config.el create mode 100644 home/alex/programs/emacs/doom/custom.el create mode 100644 home/alex/programs/emacs/doom/init.el create mode 100644 home/alex/programs/emacs/doom/packages.el create mode 100644 home/alex/programs/emacs/doom/snippets/org-mode/__ diff --git a/home/alex/default.nix b/home/alex/default.nix index 9147169..d3db935 100644 --- a/home/alex/default.nix +++ b/home/alex/default.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, inputs, ... }: let electron-overlay = final: prev: { electron = final.electron_25; }; in { - imports = [{ nixpkgs.overlays = [ inputs.emacs.overlay ]; }]; + imports = [ ]; users.users."alex" = { isNormalUser = true; diff --git a/home/alex/home.nix b/home/alex/home.nix index d60cabe..204bc75 100644 --- a/home/alex/home.nix +++ b/home/alex/home.nix @@ -6,8 +6,6 @@ home = { homeDirectory = "/home/alex"; stateVersion = "21.05"; - sessionPath = [ "$HOME/.local/bin" "$HOME/.emacs.d/bin" ]; - shellAliases = { e = "emacsclient -c $@"; }; language.base = "en_US.UTF-8"; diff --git a/home/alex/programs/emacs/default.nix b/home/alex/programs/emacs/default.nix new file mode 100644 index 0000000..ecc6d6e --- /dev/null +++ b/home/alex/programs/emacs/default.nix @@ -0,0 +1,26 @@ +{ inputs, config, lib, pkgs, ... }: + +{ + nixpkgs.overlays = [ inputs.emacs.overlay ]; + + home = { + sessionPath = [ "$HOME/.emacs.d/bin" ]; + shellAliases = { e = "emacsclient -c $@"; }; + }; + + programs.emacs = { + enable = true; + extraPackages = epkgs: with epkgs; [ vterm ]; + }; + + services.emacs = { + enable = true; + defaultEditor = true; + startWithUserSession = true; + }; + + xdg.configFile.doom = { + target = "doom"; + source = ./doom; + }; +} diff --git a/home/alex/programs/emacs/doom/config.el b/home/alex/programs/emacs/doom/config.el new file mode 100644 index 0000000..9832c9a --- /dev/null +++ b/home/alex/programs/emacs/doom/config.el @@ -0,0 +1,300 @@ +;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- + +;; Place your private configuration here! Remember, you do not need to run 'doom +;; sync' after modifying this file! + + +;; Some functionality uses this to identify you, e.g. GPG configuration, email +;; clients, file templates and snippets. +(setq user-full-name "Alexander Kobjolke" + user-mail-address "me@failco.de") + +;; Doom exposes five (optional) variables for controlling fonts in Doom. Here +;; are the three important ones: +;; +;; + `doom-font' +;; + `doom-variable-pitch-font' +;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for +;; presentations or streaming. +;; +;; They all accept either a font-spec, font string ("Input Mono-12"), or xlfd +;; font string. You generally only need these two: +;; (setq doom-font (font-spec :family "monospace" :size 12 :weight 'semi-light) +;; doom-variable-pitch-font (font-spec :family "sans" :size 13)) + +;; There are two ways to load a theme. Both assume the theme is installed and +;; available. You can either set `doom-theme' or manually load a theme with the +;; `load-theme' function. This is the default: +(setq doom-theme 'doom-gruvbox) + +(require 're-builder) +(setq reb-re-syntax 'string) + +;; If you use `org' and don't want your org files in the default location below, +;; change `org-directory'. It must be set before org loads! +(setq org-directory "~/org/" + org-roam-directory (file-truename "~/org/notes")) + +;; do not create a new workspace for each emacsclient +(after! persp-mode +   (setq persp-emacsclient-init-frame-behaviour-override "main")) + +(defun my/org-id-update-org-roam-files () + "Update Org-ID locations for all Org-roam files." + (interactive) + (org-id-update-id-locations (org-roam-list-files))) + +(defun my/org-id-update-id-current-file () + "Scan the current buffer for Org-ID locations and update them." + (interactive) + (org-id-update-id-locations (list (buffer-file-name (current-buffer))))) + +(setq undo-limit 80000000 ; Raise undo-limit to 80Mb + evil-want-fine-undo t ; By default while in insert all changes are one big blob. Be more granular + auto-save-default t ; Nobody likes to loose work, I certainly don't + ) + +;; This determines the style of line numbers in effect. If set to `nil', line +;; numbers are disabled. For relative line numbers, set this to `relative'. +(setq display-line-numbers-type t) + +;; mouse +;; enable mouse reporting for terminal emulators +(unless window-system + (xterm-mouse-mode 1) + (global-set-key [mouse-4] (lambda () + (interactive) + (scroll-down 1))) + (global-set-key [mouse-5] (lambda () + (interactive) + (scroll-up 1)))) + +;; disable highlight lines + ;(remove-hook 'doom-first-buffer-hook #'global-hl-line-mode) + +(setq haskell-process-type 'cabal-new-repl) + +(setq evil-snipe-override-evil-repeat-keys nil) +(setq doom-localleader-key ",") +(setq doom-localleader-alt-key "M-,") + +(use-package! org + :config + (setq org-log-into-drawer t + org-tags-column -58 + org-todo-keywords '( + (sequence "NEXT(n)" "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CNCL(k@)") + (sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)") + )) + (require 'org-attach-git) + ) + +(setq ak/bibliography (list (concat org-directory "references.bib"))) + ;(setq org-cite-global-bibliography (list (concat org-directory "references.bib"))) +(setq! bibtex-completion-bibliography ak/bibliography) +(setq! citar-bibliography ak/bibliography) + +;; Use an ISO date format for ledger entries +(setq ledger-default-date-format "%Y-%m-%d" + ledger-binary-path "hledger" + ledger-report-auto-width nil + ledger-mode-should-check-version nil + ledger-init-file-name " " + ledger-post-amount-alignment-column 58 + ledger-report-native-highlighting-arguments '("--color=always") + ledger-highlight-xact-under-point t) + +(setq ledger-reports + '(("bal" "%(binary) -f %(ledger-file) bal -B") + ("reg" "%(binary) -f %(ledger-file) reg -B") + ("payee" "%(binary) -f %(ledger-file) reg -B @%(payee)") + ("account" "%(binary) -f %(ledger-file) reg -B %(account)"))) + +;; (use-package! ormolu +;; :hook (haskell-mode . ormolu-format-on-save-mode) +;; :bind +;; (:map haskell-mode-map + +(after! lsp-haskell + (setq lsp-haskell-formatting-provider "fourmolu")) + +;; tweak some VI defaults +(after! evil + (setq evil-ex-substitute-global t ; I like my s/../.. to by global by default + evil-move-cursor-back nil ; Don't move the block cursor when toggling insert mode + evil-kill-on-visual-paste nil)) ; Don't put overwritten text in the kill ring + +(setq org-gtd-update-ack "3.0.0") + +;; Org GTD support +(use-package! org-gtd + :after org + :demand t + :config + (setq org-gtd-directory "~/org") + (setq org-gtd-default-file-name "actionable") + (setq org-edna-use-inheritance t) + ;(setq org-gtd-areas-of-focus '("house" "haskell" "foss")) + ;(setq org-gtd-organize-hooks '(org-gtd-set-area-of-focus org-set-tags-command)) + (org-edna-mode) + (map! :leader + :desc "Capture" "X" #'org-gtd-capture + (:prefix ("d" . "org-gtd") + :desc "Capture" "c" #'org-gtd-capture + :desc "Engage" "e" #'org-gtd-engage-grouped-by-context + :desc "Process inbox" "p" #'org-gtd-process-inbox + :desc "Show all next" "n" #'org-gtd-show-all-next + (:prefix ("r" . "Review") + :desc "Stuck projects" "p" #'org-gtd-review-stuck-projects + :desc "Stuck actions" "a" #'org-gtd-review-stuck-single-action-items + :desc "Stuck habits" "h" #'org-gtd-review-stuck-habit-items + ) + )) + (map! :map org-gtd-clarify-map + :desc "Organize this item" "C-c C-c" #'org-gtd-organize) + :bind + (("C-c d c" . #'org-gtd-capture) + ("C-c d e" . #'org-gtd-engage-grouped-by-context) + ("C-c d p" . #'org-gtd-process-inbox) + ("C-c d n" . #'org-gtd-show-all-next) + ("C-c d r p" . #'org-gtd-review-stuck-projects)) + ) + +(use-package! org-review + :after org + :demand t) + +;; (setq org-agenda-custom-commands +;; '(("R" "Review projects" tags-todo "-CANCELLED/" +;; ((org-agenda-overriding-header "Reviews Scheduled") +;; (org-agenda-skip-function 'org-review-agenda-skip) +;; (org-agenda-cmp-user-defined 'org-review-compare) +;; (org-agenda-sorting-strategy '(user-defined-down)))))) +;; +;; (add-hook 'org-agenda-mode-hook +;; (lambda () +;; (local-set-key (kbd "C-c C-r") +;; 'org-review-insert-last-review))) + + + +(defun ak/org-roam-node-insert-immediate (arg &rest args) + (interactive "P") + (let ((args (cons arg args)) + (org-roam-capture-templates (list (append (car org-capture-templates) '(:immediate-finish t)))) + ) + (apply #'org-roam-node-insert args))) + +(use-package! org-habit + :after org + :config (setq org-habit-show-habits t + org-habit-preceding-days 35 + org-habit-following-days 7 + ) + + ) + +(use-package! org-edna + :after org-gtd + :init + (setq org-edna-use-inheritance t) + :config + (org-edna-mode 1) + ) + +(use-package! emacsql-sqlite3 + :custom + (org-roam-database-connector 'sqlite3)) + +(use-package! nov + :mode ("\\.epub\\'" . nov-mode) + :config + (setq nov-save-place-file (concat doom-cache-dir "nov-places"))) + +(use-package! org-present + :after org) + +(use-package! denote + :after org + :config + (setq denote-directory (concat org-directory "/notes") + + ) + (map! :leader + (:prefix ("n" . "notes") + :desc "Denote" "d" #'denote-open-or-create-with-command + )) + :bind + (("C-c n d" . #'denote-open-or-create-with-command)) + ) + +(use-package! org-super-agenda + :after org-agenda + :init + (setq org-agenda-skip-deadline-if-done t + org-agenda-skip-scheduled-if-done t + org-agenda-include-deadlines t + org-agenda-block-separator nil + org-agenda-compact-blocks t + org-agenda-start-day nil + org-agenda-span 1 + org-agenda-start-on-weekday nil + ) + (setq org-agenda-custom-commands + '(("a" "Getting Things done" + ((agenda "" ((org-agenda-overriding-header "") + (org-super-agenda-groups + '((:name "Today" + :time-grid t + :date today + :order 1))))) + (alltodo "" ((org-agenda-overriding-header "") + (org-super-agenda-groups + '(;(:log t) + (:name "Waiting for..." + :todo "WAIT" + :order 1) + (:discard (:not (:todo ("NEXT" "START")))) + (:name "Next actions" + :auto-parent (:todo ("NEXT" "STRT")) + :order 2 + ) + (:discard (:anything t) + :order 99) + )))) + )))) + :config + (org-super-agenda-mode) + ) + +(use-package! org-fc + :after org + :init + (setq org-fc-directories (concat org-directory "/cards")) + ) + +(use-package! vterm + :config + (setq vterm-min-window-width 50) + ) + +(map! :desc "Move workspace to the left" :leader :n "TAB <" #'+workspace/swap-left) +(map! :desc "Move workspace to the left" :leader :n "TAB >" #'+workspace/swap-right) +(map! :desc "Denote" :leader :n "n d" #'denote) + +;; Here are some additional functions/macros that could help you configure Doom: +;; +;; - `load!' for loading external *.el files relative to this one +;; - `use-package!' for configuring packages +;; - `after!' for running code after a package has loaded +;; - `add-load-path!' for adding directories to the `load-path', relative to +;; this file. Emacs searches the `load-path' when you load packages with +;; `require' or `use-package'. +;; - `map!' for binding new keys +;; +;; To get information about any of these functions/macros, move the cursor over +;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k'). +;; This will open documentation for it, including demos of how they are used. +;; +;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how +;; they are implemented. diff --git a/home/alex/programs/emacs/doom/custom.el b/home/alex/programs/emacs/doom/custom.el new file mode 100644 index 0000000..731fe62 --- /dev/null +++ b/home/alex/programs/emacs/doom/custom.el @@ -0,0 +1,51 @@ +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(ansi-color-names-vector + ["#282c34" "#ff6c6b" "#98be65" "#ECBE7B" "#51afef" "#c678dd" "#46D9FF" "#bbc2cf"]) + '(custom-safe-themes + '("c4063322b5011829f7fdd7509979b5823e8eea2abf1fe5572ec4b7af1dd78519" "835868dcd17131ba8b9619d14c67c127aa18b90a82438c8613586331129dda63" "7eea50883f10e5c6ad6f81e153c640b3a288cd8dc1d26e4696f7d40f754cc703" default)) + '(exwm-floating-border-color "#191b20") + '(fci-rule-color "#5B6268") + '(highlight-tail-colors + ((("#333a38" "#99bb66" "green") + . 0) + (("#2b3d48" "#46D9FF" "brightcyan") + . 20))) + '(jdee-db-active-breakpoint-face-colors (cons "#1B2229" "#51afef")) + '(jdee-db-requested-breakpoint-face-colors (cons "#1B2229" "#98be65")) + '(jdee-db-spec-breakpoint-face-colors (cons "#1B2229" "#3f444a")) + '(objed-cursor-color "#ff6c6b") + '(pdf-view-midnight-colors (cons "#bbc2cf" "#282c34")) + '(rustic-ansi-faces + ["#282c34" "#ff6c6b" "#98be65" "#ECBE7B" "#51afef" "#c678dd" "#46D9FF" "#bbc2cf"]) + '(vc-annotate-background "#282c34") + '(vc-annotate-color-map + (list + (cons 20 "#98be65") + (cons 40 "#b4be6c") + (cons 60 "#d0be73") + (cons 80 "#ECBE7B") + (cons 100 "#e6ab6a") + (cons 120 "#e09859") + (cons 140 "#da8548") + (cons 160 "#d38079") + (cons 180 "#cc7cab") + (cons 200 "#c678dd") + (cons 220 "#d974b7") + (cons 240 "#ec7091") + (cons 260 "#ff6c6b") + (cons 280 "#cf6162") + (cons 300 "#9f585a") + (cons 320 "#6f4e52") + (cons 340 "#5B6268") + (cons 360 "#5B6268"))) + '(vc-annotate-very-old-color nil)) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) diff --git a/home/alex/programs/emacs/doom/init.el b/home/alex/programs/emacs/doom/init.el new file mode 100644 index 0000000..814545e --- /dev/null +++ b/home/alex/programs/emacs/doom/init.el @@ -0,0 +1,197 @@ +;;; init.el -*- lexical-binding: t; -*- + +;; This file controls what Doom modules are enabled and what order they load +;; in. Remember to run 'doom sync' after modifying it! + +;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's +;; documentation. There you'll find a "Module Index" link where you'll find +;; a comprehensive list of Doom's modules and what flags they support. + +;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or +;; 'C-c c k' for non-vim users) to view its documentation. This works on +;; flags as well (those symbols that start with a plus). +;; +;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its +;; directory (for easy access to its source code). + +(doom! :input + ;;chinese + ;;japanese + ;;layout ; auie,ctsrnm is the superior home row + + :completion + company ; the ultimate code completion backend + ;;helm ; the *other* search engine for love and life + ;;ido ; the other *other* search engine... + ;;ivy ; a search engine for love and life + (vertico +icons) ; the search engine of the future + + :ui + ;deft ; notational velocity for Emacs + doom ; what makes DOOM look the way it does + doom-dashboard ; a nifty splash screen for Emacs + ;;doom-quit ; DOOM quit-message prompts when you quit Emacs + (emoji +unicode +github +ascii) ; 🙂 + hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW + ;;hydra + ;;indent-guides ; highlighted indent columns + ;(ligatures +extra) ; ligatures and symbols to make your code pretty again + ;;minimap ; show a map of the code on the side + modeline ; snazzy, Atom-inspired modeline, plus API + nav-flash ; blink cursor line after big motions + ;;neotree ; a project drawer, like NERDTree for vim + ophints ; highlight the region an operation acts on + (popup +defaults +all) ; tame sudden yet inevitable temporary windows + ;;tabs ; a tab bar for Emacs + ;;treemacs ; a project drawer, like neotree but cooler + unicode ; extended unicode support for various languages + vc-gutter ; vcs diff in the fringe + vi-tilde-fringe ; fringe tildes to mark beyond EOB + (window-select +numbers) ; visually switch windows + workspaces ; tab emulation, persistence & separate workspaces + zen ; distraction-free coding or writing + + :editor + (evil +everywhere); come to the dark side, we have cookies + file-templates ; auto-snippets for empty files + fold ; (nigh) universal code folding + (format +onsave) ; automated prettiness + ;;god ; run Emacs commands without modifier keys + ;;lispy ; vim for lisp, for people who don't like vim + multiple-cursors ; editing in many places at once + ;;objed ; text object editing for the innocent + ;;parinfer ; turn lisp into python, sort of + rotate-text ; cycle region at point between text candidates + snippets ; my elves. They type so I don't have to + word-wrap ; soft wrapping with language-aware indent + + :emacs + (dired +ranger +icons) ; making dired pretty [functional] + electric ; smarter, keyword-based electric-indent + (ibuffer +icons) ; interactive buffer management + undo ; persistent, smarter undo for your inevitable mistakes + vc ; version-control and Emacs, sitting in a tree + + :term + eshell ; the elisp shell that works everywhere + ;;shell ; simple shell REPL for Emacs + ;;term ; basic terminal emulator for Emacs + vterm ; the best terminal emulation in Emacs + + :checkers + syntax ; tasing you for every semicolon you forget + (spell +flyspell +everywhere +aspell) ; tasing you for misspelling mispelling + ;;grammar ; tasing grammar mistake every you make + + :tools + ansible + biblio ; Writes a PhD for you (citation needed) + (debugger +lsp) ; FIXME stepping through code, to help you add bugs + direnv + ;;docker + editorconfig ; let someone else argue about tabs vs spaces + ;;ein ; tame Jupyter notebooks with emacs + (eval +overlay) ; run code, run (also, repls) + ;;gist ; interacting with github gists + lookup ; navigate your code and its documentation + lsp ; M-x vscode + (magit +forge) ; a git porcelain for Emacs + make ; run make tasks from Emacs + pass ; password manager for nerds + pdf ; pdf enhancements + ;;prodigy ; FIXME managing external services & code builders + ;;rgb ; creating color strings + ;;taskrunner ; taskrunner for all your projects + ;;terraform ; infrastructure as code + tmux ; an API for interacting with tmux + tree-sitter + ;;upload ; map local to remote projects via ssh/ftp + + :os + (:if IS-MAC macos) ; improve compatibility with macOS + (tty +osc) ; improve the terminal Emacs experience + + :lang + ;;agda ; types of types of types of types... + ;;beancount ; mind the GAAP + (cc +lsp) ; C > C++ == 1 + ;;clojure ; java with a lisp + ;;common-lisp ; if you've seen one lisp, you've seen them all + ;;coq ; proofs-as-programs + ;;crystal ; ruby at the speed of c + ;;csharp ; unity, .NET, and mono shenanigans + data ; config/data formats + ;;(dart +flutter) ; paint ui and not much else + ;;dhall + ;;elixir ; erlang done right + (elm +lsp) ; care for a cup of TEA? + emacs-lisp ; drown in parentheses + ;;erlang ; an elegant language for a more civilized age + ;;ess ; emacs speaks statistics + ;;factor + ;;faust ; dsp, but you get to keep your soul + ;;fsharp ; ML stands for Microsoft's Language + ;;fstar ; (dependent) types and (monadic) effects and Z3 + ;;gdscript ; the language you waited for + (go +lsp) ; the hipster dialect + (graphql +lsp) ; Give queries a REST + (haskell +lsp) ; a language that's lazier than I am + ;;hy ; readability of scheme w/ speed of python + ;;idris ; a language you can depend on + json ; At least it ain't XML + (java +lsp +tree-sitter) ; the poster child for carpal tunnel syndrome + javascript ; all(hope(abandon(ye(who(enter(here)))))) + ;;julia ; a better, faster MATLAB + ;;kotlin ; a better, slicker Java(Script) + latex ; writing papers in Emacs has never been so fun + ;;lean ; for folks with too much to prove + ledger ; be audit you can be + lua ; one-based indices? one-based indices + markdown ; writing docs for people to ignore + ;;nim ; python + lisp at the speed of c + nix ; I hereby declare "nix geht mehr!" + ;; A + ;;ocaml ; an objective camel + (org +roam2 +pandoc +present +gnuplot +noter) ; organize your plain life in plain text + ;;php ; perl's insecure younger brother + plantuml ; diagrams for confusing people more + ;;purescript ; javascript, but functional + python ; beautiful is better than ugly + qt ; the 'cutest' gui framework ever + ;;racket ; a DSL for DSLs + ;;raku ; the artist formerly known as perl6 + rest ; Emacs as a REST client + ;;rst ; ReST in peace + ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} + (rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + ;;scala ; java, but good + ;;(scheme +guile) ; a fully conniving family of lisps + sh ; she sells {ba,z,fi}sh shells on the C xor + ;;sml + ;;solidity ; do you need a blockchain? No. + ;;swift ; who asked for emoji variables? + ;;terra ; Earth and Moon in alignment for performance. + ;;web ; the tubes + yaml ; JSON, but readable + ;;zig ; C, but simpler + + :email + (mu4e +org +gmail) + ;;notmuch + ;;(wanderlust +gmail) + + :app + calendar + ;;emms + ;;everywhere ; *leave* Emacs!? You must be joking + irc ; how neckbeards socialize + (rss +org) ; emacs as an RSS reader + ;;twitter ; twitter client https://twitter.com/vnought + + :config + ;;literate + (default +bindings +smartparens)) + +(setq native-comp-deferred-compilation nil) +(after! (doom-packages straight) + (setq straight--native-comp-available t)) diff --git a/home/alex/programs/emacs/doom/packages.el b/home/alex/programs/emacs/doom/packages.el new file mode 100644 index 0000000..b0005e2 --- /dev/null +++ b/home/alex/programs/emacs/doom/packages.el @@ -0,0 +1,69 @@ +;; -*- no-byte-compile: t; -*- +;;; $DOOMDIR/packages.el + +;; To install a package with Doom you must declare them here and run 'doom sync' +;; on the command line, then restart Emacs for the changes to take effect -- or +;; use 'M-x doom/reload'. + + +;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: + ;(package! some-package) + +;; To install a package directly from a remote git repo, you must specify a +;; `:recipe'. You'll find documentation on what `:recipe' accepts here: +;; https://github.com/raxod502/straight.el#the-recipe-format + ;(package! another-package + ; :recipe (:host github :repo "username/repo")) + +;; If the package you are trying to install does not contain a PACKAGENAME.el +;; file, or is located in a subdirectory of the repo, you'll need to specify +;; `:files' in the `:recipe': + ;(package! this-package + ; :recipe (:host github :repo "username/repo" + ; :files ("some-file.el" "src/lisp/*.el"))) + +;; If you'd like to disable a package included with Doom, you can do so here +;; with the `:disable' property: + ;(package! builtin-package :disable t) + +;; You can override the recipe of a built in package without having to specify +;; all the properties for `:recipe'. These will inherit the rest of its recipe +;; from Doom or MELPA/ELPA/Emacsmirror: + ;(package! builtin-package :recipe (:nonrecursive t)) + ;(package! builtin-package-2 :recipe (:repo "myfork/package")) + +;; Specify a `:branch' to install a package from a particular branch or tag. +;; This is required for some packages whose default branch isn't 'master' (which +;; our package manager can't deal with; see raxod502/straight.el#279) + ;(package! builtin-package :recipe (:branch "develop")) + +;; Use `:pin' to specify a particular commit to install. + ;(package! builtin-package :pin "1a2b3c4d5e") + + +;; Doom's packages are pinned to a specific commit and updated from release to +;; release. The `unpin!' macro allows you to unpin single packages... + ;(unpin! pinned-package) +;; ...or multiple packages + ;(unpin! pinned-package another-pinned-package) +;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) + ;(unpin! t) + + ;(package! this-package + ; :recipe (:host github :repo "username/repo" + ; :files ("some-file.el" "src/lisp/*.el"))) + +(package! ormolu) +(package! org-gtd + :recipe (:host github :repo "Trevoke/org-gtd.el" :branch "master")) +(package! org-fc + :recipe (:host sourcehut :repo "l3kn/org-fc" :branch "main")) +(package! org-edna) +(package! org-review + :recipe (:host github :repo "jakalx/org-review" :branch "master")) +(package! sqlite3) +(package! emacsql-sqlite3) +(package! nov) +(package! org-present) +(package! denote) +(package! org-super-agenda) diff --git a/home/alex/programs/emacs/doom/snippets/org-mode/__ b/home/alex/programs/emacs/doom/snippets/org-mode/__ new file mode 100644 index 0000000..f221edc --- /dev/null +++ b/home/alex/programs/emacs/doom/snippets/org-mode/__ @@ -0,0 +1,3 @@ +# -*- mode: snippet -*- +# name: Org Template file +# -- diff --git a/home/cli.nix b/home/cli.nix index 4ab3dd3..4ac8f6f 100644 --- a/home/cli.nix +++ b/home/cli.nix @@ -10,13 +10,13 @@ let myEza = if builtins.hasAttr "eza" pkgs then "eza" else "exa"; in { - imports = [ ./alex/programs/neovim/default.nix ]; + imports = + [ ./alex/programs/neovim/default.nix ./alex/programs/emacs/default.nix ]; programs.home-manager.enable = true; home = { stateVersion = "21.05"; - sessionPath = [ "$HOME/.local/bin" "$HOME/.emacs.d/bin" ]; - shellAliases = { e = "emacsclient -c $@"; }; + sessionPath = [ "$HOME/.local/bin" ]; }; # do not show home-manager notifications @@ -140,11 +140,6 @@ in { enableBashIntegration = true; }; - emacs = { - enable = true; - extraPackages = epkgs: with epkgs; [ vterm ]; - }; - gh = { enable = true; settings.git_protocol = "ssh"; @@ -187,12 +182,6 @@ in { defaultCacheTtlSsh = 300; }; - services.emacs = { - enable = true; - defaultEditor = true; - startWithUserSession = true; - }; - home.file.".local" = { recursive = true; source = ./local; diff --git a/hosts/dregil/default.nix b/hosts/dregil/default.nix index e569170..a7c278f 100644 --- a/hosts/dregil/default.nix +++ b/hosts/dregil/default.nix @@ -1,10 +1,7 @@ { lib, config, pkgs, inputs, ... }: { imports = [ ({ inputs, lib, ... }: { - nixpkgs = { - config.allowUnfree = true; - overlays = with inputs; [ emacs.overlay ]; - }; + nixpkgs = { config.allowUnfree = true; }; nix.registry = lib.mapAttrs (_: value: { flake = value; }) inputs; }) ../../modules/security.nix -- 2.51.2 From 96b07843d2be08fad4d2a54a81a69457b0b36e1f Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 3 Feb 2024 22:33:45 +0100 Subject: [PATCH 104/120] emacs: Merge dregil and thrall's config files --- home/alex/programs/emacs/doom/config.el | 98 +++++++++-------------- home/alex/programs/emacs/doom/init.el | 7 +- home/alex/programs/emacs/doom/packages.el | 38 ++++----- 3 files changed, 60 insertions(+), 83 deletions(-) diff --git a/home/alex/programs/emacs/doom/config.el b/home/alex/programs/emacs/doom/config.el index 9832c9a..910a6e4 100644 --- a/home/alex/programs/emacs/doom/config.el +++ b/home/alex/programs/emacs/doom/config.el @@ -37,7 +37,7 @@ ;; do not create a new workspace for each emacsclient (after! persp-mode -   (setq persp-emacsclient-init-frame-behaviour-override "main")) +  (setq persp-emacsclient-init-frame-behaviour-override "main")) (defun my/org-id-update-org-roam-files () "Update Org-ID locations for all Org-roam files." @@ -79,18 +79,14 @@ (setq doom-localleader-alt-key "M-,") (use-package! org - :config - (setq org-log-into-drawer t - org-tags-column -58 - org-todo-keywords '( - (sequence "NEXT(n)" "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CNCL(k@)") - (sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)") - )) - (require 'org-attach-git) - ) + :config (setq org-log-into-drawer t + org-todo-keywords '( + (sequence "NEXT(n)" "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CNCL(k@)") + (sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)") + ))) (setq ak/bibliography (list (concat org-directory "references.bib"))) - ;(setq org-cite-global-bibliography (list (concat org-directory "references.bib"))) +;(setq org-cite-global-bibliography (list (concat org-directory "references.bib"))) (setq! bibtex-completion-bibliography ak/bibliography) (setq! citar-bibliography ak/bibliography) @@ -128,61 +124,43 @@ ;; Org GTD support (use-package! org-gtd - :after org - :demand t - :config - (setq org-gtd-directory "~/org") - (setq org-gtd-default-file-name "actionable") - (setq org-edna-use-inheritance t) - ;(setq org-gtd-areas-of-focus '("house" "haskell" "foss")) - ;(setq org-gtd-organize-hooks '(org-gtd-set-area-of-focus org-set-tags-command)) - (org-edna-mode) - (map! :leader + :after org + :demand t + :config + (setq org-gtd-directory "~/org") + (setq org-gtd-default-file-name "actionable") + (setq org-edna-use-inheritance t) + ;(setq org-gtd-areas-of-focus '("house" "haskell" "foss")) + ;(setq org-gtd-organize-hooks '(org-gtd-set-area-of-focus org-set-tags-command)) + (org-edna-mode) + (map! :leader :desc "Capture" "X" #'org-gtd-capture - (:prefix ("d" . "org-gtd") - :desc "Capture" "c" #'org-gtd-capture - :desc "Engage" "e" #'org-gtd-engage-grouped-by-context - :desc "Process inbox" "p" #'org-gtd-process-inbox - :desc "Show all next" "n" #'org-gtd-show-all-next - (:prefix ("r" . "Review") - :desc "Stuck projects" "p" #'org-gtd-review-stuck-projects - :desc "Stuck actions" "a" #'org-gtd-review-stuck-single-action-items - :desc "Stuck habits" "h" #'org-gtd-review-stuck-habit-items - ) - )) - (map! :map org-gtd-clarify-map - :desc "Organize this item" "C-c C-c" #'org-gtd-organize) - :bind - (("C-c d c" . #'org-gtd-capture) - ("C-c d e" . #'org-gtd-engage-grouped-by-context) - ("C-c d p" . #'org-gtd-process-inbox) - ("C-c d n" . #'org-gtd-show-all-next) - ("C-c d r p" . #'org-gtd-review-stuck-projects)) - ) - -(use-package! org-review - :after org - :demand t) - -;; (setq org-agenda-custom-commands -;; '(("R" "Review projects" tags-todo "-CANCELLED/" -;; ((org-agenda-overriding-header "Reviews Scheduled") -;; (org-agenda-skip-function 'org-review-agenda-skip) -;; (org-agenda-cmp-user-defined 'org-review-compare) -;; (org-agenda-sorting-strategy '(user-defined-down)))))) -;; -;; (add-hook 'org-agenda-mode-hook -;; (lambda () -;; (local-set-key (kbd "C-c C-r") -;; 'org-review-insert-last-review))) - - + (:prefix ("d" . "org-gtd") + :desc "Capture" "c" #'org-gtd-capture + :desc "Engage" "e" #'org-gtd-engage-grouped-by-context + :desc "Process inbox" "p" #'org-gtd-process-inbox + :desc "Show all next" "n" #'org-gtd-show-all-next + (:prefix ("r" . "Review") + :desc "Stuck projects" "p" #'org-gtd-review-stuck-projects + :desc "Stuck actions" "a" #'org-gtd-review-stuck-single-action-items + :desc "Stuck habits" "h" #'org-gtd-review-stuck-habit-items + ) + )) + (map! :map org-gtd-clarify-map + :desc "Organize this item" "C-c C-c" #'org-gtd-organize) + :bind + (("C-c d c" . #'org-gtd-capture) + ("C-c d e" . #'org-gtd-engage-grouped-by-context) + ("C-c d p" . #'org-gtd-process-inbox) + ("C-c d n" . #'org-gtd-show-all-next) + ("C-c d r p" . #'org-gtd-review-stuck-projects)) + ) (defun ak/org-roam-node-insert-immediate (arg &rest args) (interactive "P") (let ((args (cons arg args)) (org-roam-capture-templates (list (append (car org-capture-templates) '(:immediate-finish t)))) - ) + ) (apply #'org-roam-node-insert args))) (use-package! org-habit diff --git a/home/alex/programs/emacs/doom/init.el b/home/alex/programs/emacs/doom/init.el index 814545e..a279d79 100644 --- a/home/alex/programs/emacs/doom/init.el +++ b/home/alex/programs/emacs/doom/init.el @@ -27,7 +27,7 @@ (vertico +icons) ; the search engine of the future :ui - ;deft ; notational velocity for Emacs + ;deft ; notational velocity for Emacs doom ; what makes DOOM look the way it does doom-dashboard ; a nifty splash screen for Emacs ;;doom-quit ; DOOM quit-message prompts when you quit Emacs @@ -35,7 +35,7 @@ hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW ;;hydra ;;indent-guides ; highlighted indent columns - ;(ligatures +extra) ; ligatures and symbols to make your code pretty again + ;(ligatures +extra) ; ligatures and symbols to make your code pretty again ;;minimap ; show a map of the code on the side modeline ; snazzy, Atom-inspired modeline, plus API nav-flash ; blink cursor line after big motions @@ -66,7 +66,7 @@ word-wrap ; soft wrapping with language-aware indent :emacs - (dired +ranger +icons) ; making dired pretty [functional] + (dired +dirvish +icons) ; making dired pretty [functional] electric ; smarter, keyword-based electric-indent (ibuffer +icons) ; interactive buffer management undo ; persistent, smarter undo for your inevitable mistakes @@ -150,7 +150,6 @@ markdown ; writing docs for people to ignore ;;nim ; python + lisp at the speed of c nix ; I hereby declare "nix geht mehr!" - ;; A ;;ocaml ; an objective camel (org +roam2 +pandoc +present +gnuplot +noter) ; organize your plain life in plain text ;;php ; perl's insecure younger brother diff --git a/home/alex/programs/emacs/doom/packages.el b/home/alex/programs/emacs/doom/packages.el index b0005e2..f8b2fa8 100644 --- a/home/alex/programs/emacs/doom/packages.el +++ b/home/alex/programs/emacs/doom/packages.el @@ -7,57 +7,57 @@ ;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: - ;(package! some-package) +;(package! some-package) ;; To install a package directly from a remote git repo, you must specify a ;; `:recipe'. You'll find documentation on what `:recipe' accepts here: ;; https://github.com/raxod502/straight.el#the-recipe-format - ;(package! another-package - ; :recipe (:host github :repo "username/repo")) +;(package! another-package +; :recipe (:host github :repo "username/repo")) ;; If the package you are trying to install does not contain a PACKAGENAME.el ;; file, or is located in a subdirectory of the repo, you'll need to specify ;; `:files' in the `:recipe': - ;(package! this-package - ; :recipe (:host github :repo "username/repo" - ; :files ("some-file.el" "src/lisp/*.el"))) +;(package! this-package +; :recipe (:host github :repo "username/repo" +; :files ("some-file.el" "src/lisp/*.el"))) ;; If you'd like to disable a package included with Doom, you can do so here ;; with the `:disable' property: - ;(package! builtin-package :disable t) +;(package! builtin-package :disable t) ;; You can override the recipe of a built in package without having to specify ;; all the properties for `:recipe'. These will inherit the rest of its recipe ;; from Doom or MELPA/ELPA/Emacsmirror: - ;(package! builtin-package :recipe (:nonrecursive t)) - ;(package! builtin-package-2 :recipe (:repo "myfork/package")) +;(package! builtin-package :recipe (:nonrecursive t)) +;(package! builtin-package-2 :recipe (:repo "myfork/package")) ;; Specify a `:branch' to install a package from a particular branch or tag. ;; This is required for some packages whose default branch isn't 'master' (which ;; our package manager can't deal with; see raxod502/straight.el#279) - ;(package! builtin-package :recipe (:branch "develop")) +;(package! builtin-package :recipe (:branch "develop")) ;; Use `:pin' to specify a particular commit to install. - ;(package! builtin-package :pin "1a2b3c4d5e") +;(package! builtin-package :pin "1a2b3c4d5e") ;; Doom's packages are pinned to a specific commit and updated from release to ;; release. The `unpin!' macro allows you to unpin single packages... - ;(unpin! pinned-package) +;(unpin! pinned-package) ;; ...or multiple packages - ;(unpin! pinned-package another-pinned-package) +;(unpin! pinned-package another-pinned-package) ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) - ;(unpin! t) +;(unpin! t) - ;(package! this-package - ; :recipe (:host github :repo "username/repo" - ; :files ("some-file.el" "src/lisp/*.el"))) +;(package! this-package +; :recipe (:host github :repo "username/repo" +; :files ("some-file.el" "src/lisp/*.el"))) (package! ormolu) (package! org-gtd - :recipe (:host github :repo "Trevoke/org-gtd.el" :branch "master")) + :recipe (:host github :repo "Trevoke/org-gtd.el" :branch "master")) (package! org-fc - :recipe (:host sourcehut :repo "l3kn/org-fc" :branch "main")) + :recipe (:host sourcehut :repo "l3kn/org-fc" :branch "main")) (package! org-edna) (package! org-review :recipe (:host github :repo "jakalx/org-review" :branch "master")) -- 2.51.2 From 5d3ade4cc0cab676529d0724d54be75f2bfa5995 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 3 Feb 2024 22:43:03 +0100 Subject: [PATCH 105/120] firefox: Adapt to new config style --- home/alex/home.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home/alex/home.nix b/home/alex/home.nix index 204bc75..8f350f4 100644 --- a/home/alex/home.nix +++ b/home/alex/home.nix @@ -56,9 +56,9 @@ enable = true; package = pkgs.firefox.override { cfg = { + nativeMessagingHosts.packages = + [ pkgs.browserpass pkgs.tridactyl-native ]; enableGnomeExtensions = true; - enableTridactylNative = true; - enableBrowserpass = true; }; }; }; -- 2.51.2 From 004a0c52742950025cac951f67e95bcbfde8aee3 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 3 Feb 2024 23:21:34 +0100 Subject: [PATCH 106/120] emacs: Use double colon comments to get correct indentation --- home/alex/programs/emacs/doom/init.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home/alex/programs/emacs/doom/init.el b/home/alex/programs/emacs/doom/init.el index a279d79..f87eafa 100644 --- a/home/alex/programs/emacs/doom/init.el +++ b/home/alex/programs/emacs/doom/init.el @@ -27,7 +27,7 @@ (vertico +icons) ; the search engine of the future :ui - ;deft ; notational velocity for Emacs + ;;deft ; notational velocity for Emacs doom ; what makes DOOM look the way it does doom-dashboard ; a nifty splash screen for Emacs ;;doom-quit ; DOOM quit-message prompts when you quit Emacs @@ -35,7 +35,7 @@ hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW ;;hydra ;;indent-guides ; highlighted indent columns - ;(ligatures +extra) ; ligatures and symbols to make your code pretty again + ;;(ligatures +extra) ; ligatures and symbols to make your code pretty again ;;minimap ; show a map of the code on the side modeline ; snazzy, Atom-inspired modeline, plus API nav-flash ; blink cursor line after big motions -- 2.51.2 From 11f9ddd1938ba6cb156ef7eb5f5d0acf8d47d488 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 3 Feb 2024 23:22:06 +0100 Subject: [PATCH 107/120] emacs: Switch back to ranger instead of dirvish --- home/alex/programs/emacs/doom/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/alex/programs/emacs/doom/init.el b/home/alex/programs/emacs/doom/init.el index f87eafa..32bee2f 100644 --- a/home/alex/programs/emacs/doom/init.el +++ b/home/alex/programs/emacs/doom/init.el @@ -66,7 +66,7 @@ word-wrap ; soft wrapping with language-aware indent :emacs - (dired +dirvish +icons) ; making dired pretty [functional] + (dired +ranger +icons) ; making dired pretty [functional] electric ; smarter, keyword-based electric-indent (ibuffer +icons) ; interactive buffer management undo ; persistent, smarter undo for your inevitable mistakes -- 2.51.2 From 07268b273016ba8c560100bb9d5edeef4d72d7a7 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 4 Feb 2024 07:39:19 +0100 Subject: [PATCH 108/120] flake: Get rid of outputs/ directory --- flake.nix | 2 - outputs/homeConfigurations/default.nix | 102 ------------------------- 2 files changed, 104 deletions(-) delete mode 100644 outputs/homeConfigurations/default.nix diff --git a/flake.nix b/flake.nix index 61bc1eb..08d8915 100644 --- a/flake.nix +++ b/flake.nix @@ -77,8 +77,6 @@ modules = [ ./hosts/dregil ]; }; - homeConfigurations = import ./outputs/homeConfigurations inputs; - nixosConfigurations."igor" = nixpkgs-unstable.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; diff --git a/outputs/homeConfigurations/default.nix b/outputs/homeConfigurations/default.nix deleted file mode 100644 index cf5c210..0000000 --- a/outputs/homeConfigurations/default.nix +++ /dev/null @@ -1,102 +0,0 @@ -inputs: -with inputs; -let - electron-overlay = final: prev: { electron = final.electron_25; }; - pkgs = import nixpkgs-unstable { - system = "x86_64-linux"; - config.allowUnfree = true; - overlays = [ emacs.overlay electron-overlay ]; - }; -in { - "alex@dregil" = home-manager-unstable.lib.homeManagerConfiguration { - inherit pkgs; - modules = [ - ../../home/cli.nix - { - home = { - language.base = "en_US.UTF-8"; - - keyboard.layout = "us"; - keyboard.variant = "dvorak"; - keyboard.options = - [ "terminate:ctrl_alt_bksp" "caps:escape" "compose:ralt" ]; - - packages = with pkgs; [ - # social - (jitsi-meet-electron.overrideAttrs (prev: rec { - version = "2023.10.0"; - src = fetchurl { - url = - "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage"; - sha256 = "sha256-zhOx/gdsiQMuOCCE5sn+JNu0WJrH36XfvqqNvE24St8="; - name = "jitsi-meet-electron-${version}.AppImage"; - }; - })) # jitsi as a stand-alone app - discord # talk to other people - - # system tools - uhk-agent # my keyboard - mosh # ssh via udp - - # gaming support - lutris - winePackages.stagingFull - - # reading - calibre - ]; - }; - - news.display = "silent"; - - programs = { - home-manager.enable = true; - - alacritty.enable = true; - # autorandr.enable = true; - - browserpass = { - enable = true; - browsers = [ "firefox" ]; - }; - - feh.enable = true; - firefox = { - enable = true; - package = pkgs.firefox.override { - cfg = { - enableGnomeExtensions = true; - enableTridactylNative = true; - enableBrowserpass = true; - }; - }; - }; - mpv.enable = true; - rofi.enable = true; - rofi.pass.enable = true; - zathura.enable = true; - - zsh = let - auth-socket-env = '' - export SSH_AUTH_SOCK="$(${pkgs.gnupg}/bin/gpgconf -L agent-ssh-socket)" - ''; - in { - enable = true; - loginExtra = auth-socket-env; - initExtra = auth-socket-env; - }; - }; - - services.gpg-agent = { - enable = true; - enableSshSupport = true; - sshKeys = [ "9027AB16B9A7C20BD29F30F55CBA054430BF014C" ]; - }; - - # services.autorandr = { enable = true; }; - - xsession.enable = true; - } - ]; - }; -} -- 2.51.2 From 9389d2661a1298a9314134b2eb1172e1e5d1fe34 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 4 Feb 2024 07:54:33 +0100 Subject: [PATCH 109/120] flake: Restructure home/ --- flake.nix | 2 +- home/{ => alex}/cli.nix | 3 +-- home/alex/home.nix | 2 +- home/{ => alex}/local/bin/kill-old-mosh | 0 home/{ => alex}/local/bin/merge-pdf | 0 5 files changed, 3 insertions(+), 4 deletions(-) rename home/{ => alex}/cli.nix (97%) rename home/{ => alex}/local/bin/kill-old-mosh (100%) rename home/{ => alex}/local/bin/merge-pdf (100%) diff --git a/flake.nix b/flake.nix index 08d8915..25fae28 100644 --- a/flake.nix +++ b/flake.nix @@ -66,7 +66,7 @@ { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; - home-manager.users.alex = import ./home/cli.nix; + home-manager.users.alex = import ./home/alex/cli.nix; } ]; }; diff --git a/home/cli.nix b/home/alex/cli.nix similarity index 97% rename from home/cli.nix rename to home/alex/cli.nix index 4ac8f6f..fda3208 100644 --- a/home/cli.nix +++ b/home/alex/cli.nix @@ -10,8 +10,7 @@ let myEza = if builtins.hasAttr "eza" pkgs then "eza" else "exa"; in { - imports = - [ ./alex/programs/neovim/default.nix ./alex/programs/emacs/default.nix ]; + imports = [ ./programs/neovim/default.nix ./programs/emacs/default.nix ]; programs.home-manager.enable = true; home = { diff --git a/home/alex/home.nix b/home/alex/home.nix index 8f350f4..77e01e6 100644 --- a/home/alex/home.nix +++ b/home/alex/home.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, ... }: { - imports = [ ../cli.nix ]; + imports = [ ./cli.nix ]; home = { homeDirectory = "/home/alex"; diff --git a/home/local/bin/kill-old-mosh b/home/alex/local/bin/kill-old-mosh similarity index 100% rename from home/local/bin/kill-old-mosh rename to home/alex/local/bin/kill-old-mosh diff --git a/home/local/bin/merge-pdf b/home/alex/local/bin/merge-pdf similarity index 100% rename from home/local/bin/merge-pdf rename to home/alex/local/bin/merge-pdf -- 2.51.2 From ba80ec150aa7cf4bbc3cd722bf6a7fbdd62cd86f Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 4 Feb 2024 12:25:03 +0100 Subject: [PATCH 110/120] dregil: Disable system-wide gpg-agent --- hosts/dregil/configuration.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index c759fab..ecf5d81 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -88,10 +88,11 @@ in { # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.mtr.enable = true; - programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; + + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; programs.neovim = { enable = true; }; -- 2.51.2 From 755a294df63ca4b9f6faf04abb939caec87bc06c Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 4 Feb 2024 12:25:47 +0100 Subject: [PATCH 111/120] dregil: Remove NixOS tags --- hosts/dregil/configuration.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index ecf5d81..227d8e1 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -118,8 +118,6 @@ in { # accidentally delete configuration.nix. # system.copySystemConfiguration = true; - system.nixos.tags = [ "HiDPI" "nvidia-only" ]; - # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave -- 2.51.2 From fd479fbd1a6a762750de99808efa54f8239d0d61 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 4 Feb 2024 12:35:25 +0100 Subject: [PATCH 112/120] dregil: Remove commented code --- hosts/dregil/configuration.nix | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/hosts/dregil/configuration.nix b/hosts/dregil/configuration.nix index 227d8e1..e64c392 100644 --- a/hosts/dregil/configuration.nix +++ b/hosts/dregil/configuration.nix @@ -85,15 +85,6 @@ in { nix.settings.max-jobs = 3; nix.settings.cores = 4; - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.mtr.enable = true; - - # programs.gnupg.agent = { - # enable = true; - # enableSSHSupport = true; - # }; - programs.neovim = { enable = true; }; programs.steam = { enable = true; }; @@ -113,11 +104,6 @@ in { # Or disable the firewall altogether. # networking.firewall.enable = false; - # Copy the NixOS configuration file and link it from the resulting system - # (/run/current-system/configuration.nix). This is useful in case you - # accidentally delete configuration.nix. - # system.copySystemConfiguration = true; - # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave @@ -125,6 +111,4 @@ in { # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "22.11"; # Did you read the comment? - } - -- 2.51.2 From 6d49c9127d33be1f8dc1453a9b5d096c8c363b78 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 4 Feb 2024 16:11:03 +0100 Subject: [PATCH 113/120] emacs: Create a shell script instead of an alias 'e' --- home/alex/programs/emacs/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/home/alex/programs/emacs/default.nix b/home/alex/programs/emacs/default.nix index ecc6d6e..cb38d8c 100644 --- a/home/alex/programs/emacs/default.nix +++ b/home/alex/programs/emacs/default.nix @@ -1,11 +1,14 @@ { inputs, config, lib, pkgs, ... }: - -{ +let + emacsclient-wrapper = pkgs.writeShellScriptBin "e" '' + exec ${pkgs.emacs}/bin/emacsclient --reuse-frame --no-wait "$@" + ''; +in { nixpkgs.overlays = [ inputs.emacs.overlay ]; home = { sessionPath = [ "$HOME/.emacs.d/bin" ]; - shellAliases = { e = "emacsclient -c $@"; }; + packages = [ emacsclient-wrapper ]; }; programs.emacs = { -- 2.51.2 From d4b88350505d9ce01a98b723d12764a061d57a4f Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 4 Feb 2024 23:41:24 +0100 Subject: [PATCH 114/120] home: Configure editorconfig --- home/alex/cli.nix | 6 +++++- home/alex/programs/editorconfig/default.nix | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 home/alex/programs/editorconfig/default.nix diff --git a/home/alex/cli.nix b/home/alex/cli.nix index fda3208..774a738 100644 --- a/home/alex/cli.nix +++ b/home/alex/cli.nix @@ -10,7 +10,11 @@ let myEza = if builtins.hasAttr "eza" pkgs then "eza" else "exa"; in { - imports = [ ./programs/neovim/default.nix ./programs/emacs/default.nix ]; + imports = [ + ./programs/neovim/default.nix + ./programs/emacs/default.nix + ./programs/editorconfig + ]; programs.home-manager.enable = true; home = { diff --git a/home/alex/programs/editorconfig/default.nix b/home/alex/programs/editorconfig/default.nix new file mode 100644 index 0000000..5a45c0a --- /dev/null +++ b/home/alex/programs/editorconfig/default.nix @@ -0,0 +1,18 @@ +{ config, lib, pkgs, ... }: + +{ + editorconfig = { + enable = true; + settings = { + "*" = { + charset = "utf-8"; + end_of_line = "lf"; + trim_trailing_whitespace = true; + insert_final_newline = true; + max_line_width = 78; + indent_style = "space"; + indent_size = 2; + }; + }; + }; +} -- 2.51.2 From 51544c68a397626ca9ec93cb5f09a04086859044 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sun, 4 Feb 2024 23:42:15 +0100 Subject: [PATCH 115/120] emacs: Install and use `org-ql` --- home/alex/programs/emacs/doom/config.el | 74 ++++++++++++----------- home/alex/programs/emacs/doom/packages.el | 39 ++++++------ 2 files changed, 58 insertions(+), 55 deletions(-) diff --git a/home/alex/programs/emacs/doom/config.el b/home/alex/programs/emacs/doom/config.el index 910a6e4..6a0b340 100644 --- a/home/alex/programs/emacs/doom/config.el +++ b/home/alex/programs/emacs/doom/config.el @@ -37,7 +37,7 @@ ;; do not create a new workspace for each emacsclient (after! persp-mode -  (setq persp-emacsclient-init-frame-behaviour-override "main")) +   (setq persp-emacsclient-init-frame-behaviour-override "main")) (defun my/org-id-update-org-roam-files () "Update Org-ID locations for all Org-roam files." @@ -81,12 +81,14 @@ (use-package! org :config (setq org-log-into-drawer t org-todo-keywords '( - (sequence "NEXT(n)" "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CNCL(k@)") - (sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)") - ))) + (sequence "NEXT(n)" "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CNCL(k@)") + (sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)") + ))) + +(use-package! org-ql) (setq ak/bibliography (list (concat org-directory "references.bib"))) -;(setq org-cite-global-bibliography (list (concat org-directory "references.bib"))) + ;(setq org-cite-global-bibliography (list (concat org-directory "references.bib"))) (setq! bibtex-completion-bibliography ak/bibliography) (setq! citar-bibliography ak/bibliography) @@ -124,43 +126,43 @@ ;; Org GTD support (use-package! org-gtd - :after org - :demand t - :config - (setq org-gtd-directory "~/org") - (setq org-gtd-default-file-name "actionable") - (setq org-edna-use-inheritance t) - ;(setq org-gtd-areas-of-focus '("house" "haskell" "foss")) - ;(setq org-gtd-organize-hooks '(org-gtd-set-area-of-focus org-set-tags-command)) - (org-edna-mode) - (map! :leader + :after org + :demand t + :config + (setq org-gtd-directory "~/org") + (setq org-gtd-default-file-name "actionable") + (setq org-edna-use-inheritance t) + ;(setq org-gtd-areas-of-focus '("house" "haskell" "foss")) + ;(setq org-gtd-organize-hooks '(org-gtd-set-area-of-focus org-set-tags-command)) + (org-edna-mode) + (map! :leader :desc "Capture" "X" #'org-gtd-capture - (:prefix ("d" . "org-gtd") - :desc "Capture" "c" #'org-gtd-capture - :desc "Engage" "e" #'org-gtd-engage-grouped-by-context - :desc "Process inbox" "p" #'org-gtd-process-inbox - :desc "Show all next" "n" #'org-gtd-show-all-next - (:prefix ("r" . "Review") - :desc "Stuck projects" "p" #'org-gtd-review-stuck-projects - :desc "Stuck actions" "a" #'org-gtd-review-stuck-single-action-items - :desc "Stuck habits" "h" #'org-gtd-review-stuck-habit-items - ) - )) - (map! :map org-gtd-clarify-map - :desc "Organize this item" "C-c C-c" #'org-gtd-organize) - :bind - (("C-c d c" . #'org-gtd-capture) - ("C-c d e" . #'org-gtd-engage-grouped-by-context) - ("C-c d p" . #'org-gtd-process-inbox) - ("C-c d n" . #'org-gtd-show-all-next) - ("C-c d r p" . #'org-gtd-review-stuck-projects)) - ) + (:prefix ("d" . "org-gtd") + :desc "Capture" "c" #'org-gtd-capture + :desc "Engage" "e" #'org-gtd-engage-grouped-by-context + :desc "Process inbox" "p" #'org-gtd-process-inbox + :desc "Show all next" "n" #'org-gtd-show-all-next + (:prefix ("r" . "Review") + :desc "Stuck projects" "p" #'org-gtd-review-stuck-projects + :desc "Stuck actions" "a" #'org-gtd-review-stuck-single-action-items + :desc "Stuck habits" "h" #'org-gtd-review-stuck-habit-items + ) + )) + (map! :map org-gtd-clarify-map + :desc "Organize this item" "C-c C-c" #'org-gtd-organize) + :bind + (("C-c d c" . #'org-gtd-capture) + ("C-c d e" . #'org-gtd-engage-grouped-by-context) + ("C-c d p" . #'org-gtd-process-inbox) + ("C-c d n" . #'org-gtd-show-all-next) + ("C-c d r p" . #'org-gtd-review-stuck-projects)) + ) (defun ak/org-roam-node-insert-immediate (arg &rest args) (interactive "P") (let ((args (cons arg args)) (org-roam-capture-templates (list (append (car org-capture-templates) '(:immediate-finish t)))) - ) + ) (apply #'org-roam-node-insert args))) (use-package! org-habit diff --git a/home/alex/programs/emacs/doom/packages.el b/home/alex/programs/emacs/doom/packages.el index f8b2fa8..ea27186 100644 --- a/home/alex/programs/emacs/doom/packages.el +++ b/home/alex/programs/emacs/doom/packages.el @@ -7,57 +7,57 @@ ;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: -;(package! some-package) +;;(package! some-package) ;; To install a package directly from a remote git repo, you must specify a ;; `:recipe'. You'll find documentation on what `:recipe' accepts here: ;; https://github.com/raxod502/straight.el#the-recipe-format -;(package! another-package -; :recipe (:host github :repo "username/repo")) +;;(package! another-package +;; :recipe (:host github :repo "username/repo")) ;; If the package you are trying to install does not contain a PACKAGENAME.el ;; file, or is located in a subdirectory of the repo, you'll need to specify ;; `:files' in the `:recipe': -;(package! this-package -; :recipe (:host github :repo "username/repo" -; :files ("some-file.el" "src/lisp/*.el"))) +;;(package! this-package +;; :recipe (:host github :repo "username/repo" +;; :files ("some-file.el" "src/lisp/*.el"))) ;; If you'd like to disable a package included with Doom, you can do so here ;; with the `:disable' property: -;(package! builtin-package :disable t) +;;(package! builtin-package :disable t) ;; You can override the recipe of a built in package without having to specify ;; all the properties for `:recipe'. These will inherit the rest of its recipe ;; from Doom or MELPA/ELPA/Emacsmirror: -;(package! builtin-package :recipe (:nonrecursive t)) -;(package! builtin-package-2 :recipe (:repo "myfork/package")) +;;(package! builtin-package :recipe (:nonrecursive t)) +;;(package! builtin-package-2 :recipe (:repo "myfork/package")) ;; Specify a `:branch' to install a package from a particular branch or tag. ;; This is required for some packages whose default branch isn't 'master' (which ;; our package manager can't deal with; see raxod502/straight.el#279) -;(package! builtin-package :recipe (:branch "develop")) +;;(package! builtin-package :recipe (:branch "develop")) ;; Use `:pin' to specify a particular commit to install. -;(package! builtin-package :pin "1a2b3c4d5e") + ;(package! builtin-package :pin "1a2b3c4d5e") ;; Doom's packages are pinned to a specific commit and updated from release to ;; release. The `unpin!' macro allows you to unpin single packages... -;(unpin! pinned-package) + ;(unpin! pinned-package) ;; ...or multiple packages -;(unpin! pinned-package another-pinned-package) + ;(unpin! pinned-package another-pinned-package) ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) -;(unpin! t) +;;(unpin! t) -;(package! this-package -; :recipe (:host github :repo "username/repo" -; :files ("some-file.el" "src/lisp/*.el"))) +;;(package! this-package +;; :recipe (:host github :repo "username/repo" +;; :files ("some-file.el" "src/lisp/*.el"))) (package! ormolu) (package! org-gtd - :recipe (:host github :repo "Trevoke/org-gtd.el" :branch "master")) + :recipe (:host github :repo "Trevoke/org-gtd.el" :branch "master")) (package! org-fc - :recipe (:host sourcehut :repo "l3kn/org-fc" :branch "main")) + :recipe (:host sourcehut :repo "l3kn/org-fc" :branch "main")) (package! org-edna) (package! org-review :recipe (:host github :repo "jakalx/org-review" :branch "master")) @@ -67,3 +67,4 @@ (package! org-present) (package! denote) (package! org-super-agenda) +(package! org-ql) -- 2.51.2 From c308c70205a1766c6725fb5ec2a91d6d8b5bd4fb Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 5 Feb 2024 21:10:39 +0100 Subject: [PATCH 116/120] emacs: Enable elfeed-web package --- home/alex/programs/emacs/doom/config.el | 2 ++ home/alex/programs/emacs/doom/packages.el | 1 + 2 files changed, 3 insertions(+) diff --git a/home/alex/programs/emacs/doom/config.el b/home/alex/programs/emacs/doom/config.el index 6a0b340..7422ddc 100644 --- a/home/alex/programs/emacs/doom/config.el +++ b/home/alex/programs/emacs/doom/config.el @@ -87,6 +87,8 @@ (use-package! org-ql) +(use-package! elfeed-web) + (setq ak/bibliography (list (concat org-directory "references.bib"))) ;(setq org-cite-global-bibliography (list (concat org-directory "references.bib"))) (setq! bibtex-completion-bibliography ak/bibliography) diff --git a/home/alex/programs/emacs/doom/packages.el b/home/alex/programs/emacs/doom/packages.el index ea27186..489c77d 100644 --- a/home/alex/programs/emacs/doom/packages.el +++ b/home/alex/programs/emacs/doom/packages.el @@ -68,3 +68,4 @@ (package! denote) (package! org-super-agenda) (package! org-ql) +(package! elfeed-web) -- 2.51.2 From 24ae60a3fe199cd4ad034d2c0ffe5febb1d1e36f Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 5 Feb 2024 21:11:04 +0100 Subject: [PATCH 117/120] thrall: Forward /elfeed to elfeed-web on localhost --- hosts/thrall/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hosts/thrall/default.nix b/hosts/thrall/default.nix index 551b066..553aa9f 100644 --- a/hosts/thrall/default.nix +++ b/hosts/thrall/default.nix @@ -196,6 +196,11 @@ in { proxyPass = "http://127.0.0.1:8000/"; proxyWebsockets = true; }; + + locations."/elfeed" = { + proxyPass = "http://127.0.0.1:8080/elfeed"; + proxyWebsockets = true; + }; }; "www.jakalx.net" = { -- 2.51.2 From 3c6f676b59300c4162e95a9729d8686f643e00a9 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 5 Feb 2024 21:15:54 +0100 Subject: [PATCH 118/120] dregil: Disable gnome-keyring on xmonad --- modules/wm/xmonad.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/wm/xmonad.nix b/modules/wm/xmonad.nix index 392b324..dbb4945 100644 --- a/modules/wm/xmonad.nix +++ b/modules/wm/xmonad.nix @@ -2,7 +2,6 @@ { services = { - gnome.gnome-keyring.enable = true; upower.enable = true; xserver = { -- 2.51.2 From 61d36c4c5cf6c4d1715e2df6eb8b1ce268622b90 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 5 Feb 2024 21:16:34 +0100 Subject: [PATCH 119/120] xmonad: Run xmonad as xsession command --- home/alex/programs/xmonad/default.nix | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/home/alex/programs/xmonad/default.nix b/home/alex/programs/xmonad/default.nix index 7fc15af..49af6ae 100644 --- a/home/alex/programs/xmonad/default.nix +++ b/home/alex/programs/xmonad/default.nix @@ -2,11 +2,10 @@ { xsession = { - windowManager.xmonad = { - enable = true; - enableContribAndExtra = true; - extraPackages = hp: [ hp.dbus hp.monad-logger hp.xmonad-contrib ]; - config = ./config.hs; - }; + windowManager.command = let + xmonad = pkgs.xmonad-with-packages.override { + packages = self: [ self.xmonad-contrib ]; + }; + in "${xmonad}/bin/xmonad"; }; } -- 2.51.2 From 1f2545df5b8b3398af333109f7c816d18d042f91 Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Mon, 5 Feb 2024 21:17:07 +0100 Subject: [PATCH 120/120] alex: Prepare to load xmonad by default --- home/alex/home.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/home/alex/home.nix b/home/alex/home.nix index 77e01e6..80ccc81 100644 --- a/home/alex/home.nix +++ b/home/alex/home.nix @@ -1,7 +1,10 @@ { config, lib, pkgs, ... }: { - imports = [ ./cli.nix ]; + imports = [ + ./cli.nix + # ./programs/xmonad/default.nix + ]; home = { homeDirectory = "/home/alex"; -- 2.51.2