diff options
Diffstat (limited to '')
-rw-r--r-- | flake.nix | 1 | ||||
-rw-r--r-- | lib/my.nix | 2 | ||||
-rw-r--r-- | modules/common/emacs/default.nix | 41 | ||||
-rw-r--r-- | modules/common/emacs/doom/config.el | 70 | ||||
-rw-r--r-- | modules/common/emacs/doom/packages.el | 6 | ||||
-rw-r--r-- | modules/common/profiles/headful.nix | 44 | ||||
-rw-r--r-- | modules/nixos/beets.nix | 30 | ||||
-rw-r--r-- | modules/nixos/firefox/default.nix | 1 | ||||
-rw-r--r-- | modules/nixos/grafana.nix | 2 | ||||
-rw-r--r-- | modules/nixos/kde.nix | 1 | ||||
-rw-r--r-- | modules/nixos/profiles/headful.nix | 33 | ||||
-rw-r--r-- | nixosConfigurations/eonwe/default.nix | 25 | ||||
-rw-r--r-- | nixosConfigurations/manwe/mailserver.nix | 12 |
13 files changed, 179 insertions, 89 deletions
diff --git a/flake.nix b/flake.nix index a9e0c30..4eb3fd0 100644 --- a/flake.nix +++ b/flake.nix @@ -254,7 +254,6 @@ inherit (self.checks.${system}.preCommit) shellHook; }; - # This interface is very primitive... formatter = pkgs.writeShellApplication { name = "fmt"; runtimeInputs = with pkgs; [alejandra]; diff --git a/lib/my.nix b/lib/my.nix index 17a7827..03cb37a 100644 --- a/lib/my.nix +++ b/lib/my.nix @@ -124,7 +124,7 @@ with lib; azahi = "azahi.cc"; rohan = "rohan.net"; gondor = "gondor.net"; - shire = "shire.me"; + shire = "shire.net"; }; email = "frodo@${my.domain.gondor}"; pgp = { diff --git a/modules/common/emacs/default.nix b/modules/common/emacs/default.nix index 2dbe53f..c89fba5 100644 --- a/modules/common/emacs/default.nix +++ b/modules/common/emacs/default.nix @@ -69,7 +69,6 @@ in { json-language-server # :lang (json +lsp) libtool # :term vterm nix-language-server # :lang (nix +lsp) - nixfmt # :lang nix :editor format nodePackages.eslint # :lang (json +lsp) nodePackages.js-beautify # :lang web nodePackages.prettier # :editor format @@ -127,13 +126,11 @@ in { (appendq! auth-sources '("${config.secrets.authinfo.path}")) ;; Font must be set to N+2 because otherwise it looks too small. - (setq doom-font (font-spec :family "${config.fontScheme.monospaceFont.family}" - :size ${toString (config.fontScheme.monospaceFont.size + 2)}) + (setq doom-font (font-spec + :family "${config.fontScheme.monospaceFont.family}" + :size ${toString (config.fontScheme.monospaceFont.size + 2)}) doom-unicode-font doom-font) - (setq user-full-name "${my.fullname}" - user-mail-address "${my.email}") - ;; :app irc (setq circe-default-nick "${my.username}" circe-default-realname "${my.email}" @@ -147,6 +144,36 @@ in { ;; :input japanese (setq skk-large-jisyo "${pkgs.skk-dicts}/share/skk/SKK-JISYO.L") + + ;; :lang nix + (setq nix-nixfmt-bin "${pkgs.writeShellScript "nixfmt" '' + ${pkgs.alejandra}/bin/alejandra --quiet "$@" + ''}") + '') + (with config.hm.accounts.email; let + mu4eAccounts = let + muAccounts = filter (a: a.mu.enable) (attrValues accounts); + in + concatMapStringsSep "\n" (a: + with a; let + personalAddresses = concatMapStringsSep " " (v: ''"${v}"'') aliases; + in '' + (set-email-account! "${name}" + '((user-full-name . "${realName}") + (user-mail-address . "${address}") + (mu4e-inbox-folder . "/${name}/${folders.inbox}") + (mu4e-sent-folder . "/${name}/${folders.sent}") + (mu4e-drafts-folder . "/${name}/${folders.drafts}") + (mu4e-trash-folder . "/${name}/${folders.trash}") + (mu4e-refile-folder . "/${name}/Archive") + (+mu4e-personal-addresses (list ${personalAddresses}))) + t) + '') + muAccounts; + in '' + (setq mu4e-root-maildir "${maildirBasePath}") + + ${mu4eAccounts} '') (builtins.readFile ./doom/config.el) ]; @@ -160,7 +187,7 @@ in { fi if [[ ! -d "$DOOMDIR" ]]; then - mkdir -p "$DOOMDIR" + mkdir -p "$DOOMDIR/snippets" fi if [[ -x "$EMACSDIR/bin/doom" ]]; then diff --git a/modules/common/emacs/doom/config.el b/modules/common/emacs/doom/config.el index 502ca27..4863792 100644 --- a/modules/common/emacs/doom/config.el +++ b/modules/common/emacs/doom/config.el @@ -84,8 +84,6 @@ ;;; Nix ;; -(setq nix-nixfmt-bin "alejandra") - (after! lsp-mode (add-to-list 'lsp-language-id-configuration '(nix-mode . "nix")) (lsp-register-client @@ -100,9 +98,9 @@ (add-hook! 'yaml-mode-hook (defun +disable-flycheck-for-yaml-helm-templates () (when (and buffer-file-name - (string-match-p "/templates/" buffer-file-name) - (or (string-suffix-p ".yaml" buffer-file-name) - (string-suffix-p ".yml" buffer-file-name))) + (string-match-p "/templates/" buffer-file-name) + (or (string-suffix-p ".yaml" buffer-file-name) + (string-suffix-p ".yml" buffer-file-name))) (remove-hook! 'yaml-mode-local-vars-hook #'lsp!) (pushnew! flycheck-disabled-checkers 'yaml-jsyaml 'yaml-ruby 'yaml-yamllint)))) @@ -126,66 +124,42 @@ (setq mu4e-root-maildir "~/mail" mu4e-context-policy 'ask-if-none mu4e-compose-context-policy 'always-ask - mu4e-compose--org-msg-toggle-next nil mu4e-update-interval 60 sendmail-program (executable-find "msmtp") - send-mail-function #'smtpmail-send-it - message-sendmail-f-is-evil t - message-sendmail-extra-arguments '("--read-envelope-from") + send-mail-function #'message-send-mail-with-sendmail message-send-mail-function #'message-send-mail-with-sendmail - +mu4e-personal-addresses (list "frodo@gondor.net" - "frodo@rohan.net" - "azahi@shire.me" - "admin@shire.me" - "ceo@shire.me" - "a.gondor@yahoo.com" - "a.gondor@yahoo.com")) - -(set-email-account! "shire" - '((mu4e-drafts-folder . "/shire/Drafts") - (mu4e-refile-folder . "/shire/Archive") - (mu4e-sent-folder . "/shire/Sent") - (mu4e-trash-folder . "/shire/Trash") - (smtpmail-smtp-user . "azahi")) - t) - -(set-email-account! "yahoo" - '((mu4e-sent-folder . "/yahoo/Sent") - (mu4e-drafts-folder . "/yahoo/Drafts") - (mu4e-trash-folder . "/yahoo/Trash") - (mu4e-refile-folder . "/yahoo/Archive") - (smtpmail-smtp-user . "a.gondor")) - t) - -(setq +mu4e-compose-org-msg-toggle-next nil) + message-sendmail-envelope-from 'header + message-sendmail-extra-arguments '("--read-envelope-from") + message-sendmail-f-is-evil t + message-kill-buffer-on-exit t) ;; ;;; Circe ;; (defun nixfiles/irc-bouncer-password-f (&rest _) - (+pass-get-secret "server/soju.manwe.shire.me/azahi")) + (+pass-get-secret "server/soju.manwe.shire.net/azahi")) (set-irc-server! "libera" - `(:host "shire.me" + `(:host "shire.net" :port 6667 :user "azahi/libera" :pass nixfiles/irc-bouncer-password-f)) (set-irc-server! "oftc" - `(:host "shire.me" + `(:host "shire.net" :port 6667 :user "azahi/oftc" :pass nixfiles/irc-bouncer-password-f)) (set-irc-server! "hackint" - `(:host "shire.me" + `(:host "shire.net" :port 6667 :user "azahi/hackint" :pass nixfiles/irc-bouncer-password-f)) (set-irc-server! "rizon" - `(:host "shire.me" + `(:host "shire.net" :port 6667 :user "azahi/rizon" :pass nixfiles/irc-bouncer-password-f)) @@ -212,14 +186,14 @@ ;; :init ;; (setq hledger-input-buffer-height 20)) -;; (use-package! kubernetes -;; :defer t -;; :commands (kubernetes-overview) -;; :init (setq kubernetes-poll-frequency 3600 -;; kubernetes-redraw-frequency 3600)) +(use-package! kubernetes + :defer t + :commands (kubernetes-overview) + :init (setq kubernetes-poll-frequency 3600 + kubernetes-redraw-frequency 3600)) -;; (use-package! kubernetes-evil -;; :after kubernetes-overview) +(use-package! kubernetes-evil + :after kubernetes-overview) -;; (use-package! kubernetes-tramp -;; :defer t) +(use-package! kubernetes-tramp + :defer t) diff --git a/modules/common/emacs/doom/packages.el b/modules/common/emacs/doom/packages.el index 298a203..5df21b6 100644 --- a/modules/common/emacs/doom/packages.el +++ b/modules/common/emacs/doom/packages.el @@ -12,6 +12,6 @@ ;; (package! hledger-mode) -;; (package! kubernetes) -;; (package! kubernetes-evil) -;; (package! kubernetes-tramp) +(package! kubernetes) +(package! kubernetes-evil) +(package! kubernetes-tramp) diff --git a/modules/common/profiles/headful.nix b/modules/common/profiles/headful.nix index 809605c..f2f2487 100644 --- a/modules/common/profiles/headful.nix +++ b/modules/common/profiles/headful.nix @@ -57,14 +57,23 @@ in { }; msmtp.enable = true; mu.enable = true; + thunderbird = { + enable = pkgs.stdenv.isLinux; + settings = id: { + "mail.identity.id_${id}.compose_html" = false; + "mail.identity.id_${id}.reply_on_top" = 0; + }; + }; } attrs ]; - pass = path: "${pkgs.pass}/bin/pass show ${path}"; - in { - shire = mkAccount { + pass = path: "${config.hm.programs.password-store.package}/bin/pass show ${path}"; + in rec { + shire = mkAccount rec { address = my.email; + aliases = [address "frodo@rohan.net" "azahi@shire.net"]; + realName = my.fullname; gpg = { inherit (my.pgp) key; signByDefault = true; @@ -73,19 +82,28 @@ in { primary = true; - imap.host = "shire.me"; - smtp.host = "shire.me"; - userName = "azahi@shire.me"; - passwordCommand = pass "email/shire.me/azahi"; + imap = { + host = "shire.net"; + port = 993; + tls.enable = true; + }; + smtp = { + host = "shire.net"; + port = 587; + tls.enable = true; + }; + userName = "azahi@shire.net"; + passwordCommand = pass "email/shire.net/azahi"; }; - yahoo = mkAccount { - address = "a.gondor@yahoo.com"; + yahoo = mkAccount rec { + address = "admin@yahoo.com"; + aliases = [address "admin@yahoo.com"]; + realName = "Багавиев Азат"; - imap.host = "imap.yahoo.com"; - smtp.host = "smtp.yahoo.com"; - userName = "a.gondor@yahoo.com"; - passwordCommand = pass "email/yahoo.com/a.gondor"; + flavor = "yahoo.com"; + userName = "admin@yahoo.com"; + passwordCommand = pass "email/yahoo.com/admin"; }; }; }; diff --git a/modules/nixos/beets.nix b/modules/nixos/beets.nix index 83cbff1..7a380cc 100644 --- a/modules/nixos/beets.nix +++ b/modules/nixos/beets.nix @@ -13,7 +13,15 @@ in { hm = let beetsdir = "${config.dirs.data}/beets"; in { - home.sessionVariables.BEETSDIR = beetsdir; + home = { + activation.initialiseBeets = '' + if [[ ! -d "${beetsdir}" ]]; then + mkdir -p ${beetsdir} + fi + ''; + + sessionVariables.BEETSDIR = beetsdir; + }; programs = { beets = { @@ -22,7 +30,16 @@ in { settings = { library = "${beetsdir}/library.db"; directory = config.userDirs.music; - plugins = "badfiles edit fetchart info mbsync scrub"; + plugins = concatStringsSep " " [ + "badfiles" + "edit" + "fetchart" + "info" + "mbsync" + "mpdupdate" + "scrub" + "zero" + ]; original_date = true; import = { write = true; @@ -61,8 +78,17 @@ in { cautious = true; cover_names = "cover Cover folder Folder art Art album Album front Front"; sources = "filesystem coverart itunes amazon albumart wikipedia"; + high_resolution = true; }; scrub.auto = true; + zero = { + fields = "comments genre"; + update_database = true; + }; + mpd = { + host = "127.0.0.1"; + port = 6600; + }; }; }; diff --git a/modules/nixos/firefox/default.nix b/modules/nixos/firefox/default.nix index 7038773..4f16767 100644 --- a/modules/nixos/firefox/default.nix +++ b/modules/nixos/firefox/default.nix @@ -239,6 +239,7 @@ in { "browser.newtabpage.activity-stream.feeds.topsites" = false; "browser.newtabpage.introShown" = true; "browser.onboarding.enabled" = false; + "browser.search.region" = "US"; "browser.search.update" = false; "browser.startup.homepage_welcome_url" = ""; "browser.startup.homepage_welcome_url.additional" = ""; diff --git a/modules/nixos/grafana.nix b/modules/nixos/grafana.nix index 0b2e210..e8630c4 100644 --- a/modules/nixos/grafana.nix +++ b/modules/nixos/grafana.nix @@ -87,7 +87,7 @@ in { }; smtp = { enable = true; - user = "azahi@shire.me"; + user = "azahi@shire.net"; host = my.domain.shire; password = "$__file{${config.secrets.grafana-smtp-password.path}}"; }; diff --git a/modules/nixos/kde.nix b/modules/nixos/kde.nix index 66fabbd..a430294 100644 --- a/modules/nixos/kde.nix +++ b/modules/nixos/kde.nix @@ -30,6 +30,7 @@ in { enable = true; excludePackages = with pkgs.plasma5Packages; [ elisa + gwenview khelpcenter okular print-manager diff --git a/modules/nixos/profiles/headful.nix b/modules/nixos/profiles/headful.nix index 67bec29..6b19595 100644 --- a/modules/nixos/profiles/headful.nix +++ b/modules/nixos/profiles/headful.nix @@ -28,7 +28,38 @@ in { tor-browser ]; - programs.bash.shellAliases.open = "${pkgs.xdg-utils}/bin/xdg-open"; + programs = { + bash.shellAliases.open = "${pkgs.xdg-utils}/bin/xdg-open"; + + thunderbird = { + enable = true; + profiles.default.isDefault = true; + settings = { + "app.update.auto" = false; + "browser.search.region" = "US"; + "browser.search.update" = false; + "datareporting.healthreport.uploadEnabled" = false; + "full-screen-api.warning.delay" = 0; + "full-screen-api.warning.timeout" = 0; + "general.autoScroll" = true; + "general.smoothScroll" = true; + "mail.default_send_format" = 0; + "mail.tabs.drawInTitlebar" = + if config.nixfiles.modules.kde.enable + then 1 + else 0; + "mailnews.start_page.url" = "about:blank"; + "media.autoplay.blocking_policy" = 2; + "media.autoplay.default" = 5; + "media.autoplay.enabled" = false; + "media.hardwaremediakeys.enabled" = false; + "network.cookie.cookieBehavior" = 2; + "places.history.enabled" = false; + "reader.parse-on-load.enabled" = false; + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + }; + }; + }; }; boot = { diff --git a/nixosConfigurations/eonwe/default.nix b/nixosConfigurations/eonwe/default.nix index f66478d..3476e6d 100644 --- a/nixosConfigurations/eonwe/default.nix +++ b/nixosConfigurations/eonwe/default.nix @@ -21,7 +21,7 @@ with lib; { }; android.enable = true; bluetooth.enable = true; - discord.enable = true; + beets.enable = true; libvirtd.enable = true; qutebrowser.enable = true; mpd.enable = true; @@ -31,6 +31,8 @@ with lib; { home.packages = with pkgs; [obs-studio]; programs = { + beets.settings.directory = mkForce "/mnt/udata/music"; + # NOTE This produces very poor performance even though RX 6750 XT should # handle VA-API hardware decoding for all major formats (including AV1) just # fine. @@ -43,6 +45,25 @@ with lib; { profile = "gpu-hq"; }; }; + + services.mpd.musicDirectory = mkForce "/mnt/udata/music"; + }; + + services = { + smartd = { + enable = true; + notifications = { + test = true; + mail = { + # TODO + }; + }; + }; + + # nullmailer = { + # enable = true; + # me = config.networking.fqdn; + # }; }; # Usually stuff that is going to be compiled on this machine is going to have @@ -74,7 +95,7 @@ with lib; { # The boot drive is Samsung SSD 980 PRO 2TB. initrd.kernelModules = ["nvme"]; - zfs.extraPools = ["vdata"]; + zfs.extraPools = ["udata" "vdata"]; }; # Filesystem creation: diff --git a/nixosConfigurations/manwe/mailserver.nix b/nixosConfigurations/manwe/mailserver.nix index a4b552a..f6f8d91 100644 --- a/nixosConfigurations/manwe/mailserver.nix +++ b/nixosConfigurations/manwe/mailserver.nix @@ -26,8 +26,8 @@ with lib; { owner = "opendkim"; group = "opendkim"; }; - dkim-key-shire-me = { - file = "${inputs.self}/secrets/dkim-key-shire-me"; + dkim-key-shire-net = { + file = "${inputs.self}/secrets/dkim-key-shire-net"; path = "/var/dkim/${my.domain.shire}.${config.mailserver.dkimSelector}.key"; owner = "opendkim"; group = "opendkim"; @@ -70,14 +70,6 @@ with lib; { aliases = ["chad@${shire}"]; quota = "1G"; }; - "pippin@${shire}" = { - hashedPassword = "@HASHED_PASSWORD@"; - quota = "1G"; - }; - "meriadoc@${shire}" = { - hashedPassword = "@HASHED_PASSWORD@"; - quota = "1G"; - }; }; }; |