{"id":28759732,"url":"https://github.com/cemkeylan/mu-wizard","last_synced_at":"2025-10-05T13:17:40.253Z","repository":{"id":56476373,"uuid":"281376515","full_name":"cemkeylan/mu-wizard","owner":"cemkeylan","description":"mu4e configuration wizard","archived":false,"fork":false,"pushed_at":"2022-09-15T14:25:09.000Z","size":125,"stargazers_count":72,"open_issues_count":0,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-01-08T04:21:11.250Z","etag":null,"topics":["emacs","mu","mu-wizard","mu4e"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cemkeylan.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-21T11:16:42.000Z","updated_at":"2023-12-11T14:53:34.000Z","dependencies_parsed_at":"2022-08-15T19:30:55.642Z","dependency_job_id":null,"html_url":"https://github.com/cemkeylan/mu-wizard","commit_stats":null,"previous_names":[],"tags_count":3,"template":null,"template_full_name":null,"purl":"pkg:github/cemkeylan/mu-wizard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemkeylan%2Fmu-wizard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemkeylan%2Fmu-wizard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemkeylan%2Fmu-wizard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemkeylan%2Fmu-wizard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cemkeylan","download_url":"https://codeload.github.com/cemkeylan/mu-wizard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemkeylan%2Fmu-wizard/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260294461,"owners_count":22987624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emacs","mu","mu-wizard","mu4e"],"created_at":"2025-06-17T05:08:09.762Z","updated_at":"2025-10-05T13:17:35.215Z","avatar_url":"https://github.com/cemkeylan.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"#+TITLE: mu-wizard\n#+AUTHOR: Cem Keylan\n#+STARTUP: indent\n\n=mu-wizard= is a shell script to auto-configure email accounts for =mu4e=\nsimilar in function to =mutt-wizard=. It uses =isync= to synchronize mail\naccounts, =msmtp= to send mail and creates individual Lisp profiles for each\naccount. It is still WIP. Expect breaking changes until the first release.\n\n* Table of Contents                                            :TOC:noexport:\n- [[#dependencies][Dependencies]]\n- [[#installation][Installation]]\n  - [[#initiating-password-managers][Initiating password managers]]\n- [[#usage][Usage]]\n  - [[#emacs-configuration][Emacs Configuration]]\n  - [[#domains-file][Domains file]]\n  - [[#overrides][Overrides]]\n- [[#configuration][Configuration]]\n  - [[#forcing-a-password-manager][Forcing a password manager]]\n  - [[#setting-notification-program][Setting notification program]]\n- [[#notes][Notes]]\n  - [[#isync-deprecation-notice][Isync Deprecation Notice]]\n  - [[#protonmail][Protonmail]]\n  - [[#google][Google]]\n\n* Dependencies\n\n- =isync= (for offline mail storage)\n- =mu=    (or =maildir-utils= depending on your distribution)\n- =msmtp= (for sending mails)\n- Password manager (=pass=, [[https://github.com/dylanaraps/pash][pash]], and [[https://github.com/cemkeylan/pm][pm]] is supported)\n\n* Installation\n\nIn order to install =mu-wizard=, clone this repository and build =mu-wizard=.\n\n#+BEGIN_SRC sh\n  git clone https://github.com/cemkeylan/mu-wizard.git\n  cd mu-wizard\n  make install\n#+END_SRC\n\nUsers of Arch Linux based distributions can install =mu-wizard= through the AUR\npackage [[https://aur.archlinux.org/packages/mu-wizard-git][mu-wizard-git]]. This package is not maintained by me.\n\n#+BEGIN_SRC sh\n  yay -S mu-wizard-git\n#+END_SRC\n\n** Initiating password managers\n\nAll of the password managers require some sort of initializing before you can\nstore your passwords. This must be done *before* you run ~muw~ for the first\ntime. You will need to have a GnuPG key for all of the password managers\nsupported by ~muw~. You can create a GPG key by running ~gpg --gen-key~, or\n~gpg --full-gen-key~.\n\nSee the documentation of your password manager for more information on setting\nup your password manager, below are simple instructions enough to get you going.\n\n*** pass\n\nIn order to initiate pass, do the following:\n\n#+BEGIN_SRC sh\n  pass init yourgpgmail@example.com\n#+END_SRC\n\n*** pash\n\nIn order to use pash, add the following to your =.bashrc= (or what have you):\n\n#+BEGIN_SRC sh\n  export PASH_KEYID=yourgpgmail@example.com\n#+END_SRC\n\n*** pm\n\nIn order to use pm, add the following to your =.bashrc= (or what have you):\n\n#+BEGIN_SRC sh\n  export PM_GPG_USER=yourgpgmail@example.com\n#+END_SRC\n\n* Usage\n\nThe wizard is called by running ~muw~. The commands below are available to use:\n\n#+BEGIN_SRC sh :results raw :exports results\n./bin/muw --help | sed -E '/^Commands:/,/^$/!d;/Commands:/d;/^$/d;s|^ *([a-zA-Z-]*) *(.*)$|- =\\1= :: \\2|'\n#+END_SRC\n\n#+RESULTS:\n- =add= :: Add and autoconfigure an email address\n- =delete= :: Pick an account to delete\n- =list= :: List configured accounts\n- =purge= :: Purge all configuration\n- =sync= :: Sync mail for accounts\n- =mu-init= :: Run 'mu init' with the configured accounts\n- =data= :: Output system data directory and exit\n\nYou can run ~muw COMMAND --help~ for learning more about the usage of the\ncommand. The entire documentation can be found on manual pages.\n\n** Emacs Configuration\n\nEmacs will not be loading the configurations, you will need to set it manually.\nIn your init file, you may choose to load the configuration in the following\nways.\n\n#+BEGIN_SRC emacs-lisp\n  (load-file \"~/.config/mu4e/mu4e-config.el\")\n#+END_SRC\n\n#+BEGIN_SRC emacs-lisp\n  (add-to-list 'load-path \"~/.config/mu4e\")\n  (require 'mu4e-config)\n#+END_SRC\n\n#+BEGIN_SRC emacs-lisp\n  (use-package mu4e-config\n    :after mu4e\n    :load-path \"~/.config/mu4e\")\n#+END_SRC\n\n** Domains file\n\n=mu-wizard= doesn't come with a predefined =domains.csv= file, but it can use\none if it is found on =/usr/share/mu-wizard/domains.csv= (or whatever your share\ndirectory is, see ~muw data~). =mu-wizard= also saves the domain information\nthat you when creating an account on your configuration directory, so you don't\nhave to retype every detail when creating a second account with the same domain.\n\n** Overrides\n\nDomain-level overrides are possible by adding a shell file to either the share\ndirectory or the user configuration directory. See [[file:overrides/protonmail.com][overrides/protonmail.com]]\nfor an example override.\n\n* Configuration\n\n=mu-wizard= is mostly configured through environment variables. You can set\nthese variables on your =.bashrc= (or other relevant shell configuration file).\n\n** Forcing a password manager\n\nUsing the =$MUW_PWM= environment variable, you can specify which password\nmanager to use. If you don't specify a password manager, ~muw~ will use it with\nthe following order:\n\n1. ~pass~\n2. ~pash~\n3. ~pm~\n\n** Setting notification program\n\n=mu-wizard= supports ~notify-send~ (from =libnotify=) and [[https://github.com/dudik/herbe][herbe]] for sending\nmail notifications. You can set the =$MUW_NOTIFY= environment variables to the\nfollowing:\n\n1. ~libnotify~\n2. ~herbe~\n3. ~disabled~ (self-explanatory)\n\n* Notes\n\n** Isync Deprecation Notice\n\n=isync= version 1.4.0 outputs the following deprecation notice for the mbsync\nconfiguration.\n\n#+BEGIN_QUOTE\nNotice: Master/Slave are deprecated; use Far/Near instead.\n#+END_QUOTE\n\nYou can fix this by running the command:\n\n#+begin_src sh\nsed -i 's|^Slave |Near |;s|^Master |Far |' \"$HOME/.mbsyncrc\"\n#+end_src\n\n** Protonmail\n\n=mu-wizard= supports protonmail. If you are using one of the default domains,\nyou don't have to do anything. If you are using an alternative domain, you can\nlink the protonmail.com override to your personal domain. Here is an example:\n\n#+BEGIN_SRC sh\n  ln -sf /usr/share/mu-wizard/overrides/protonmail.com $HOME/.config/mu4e/overrides/example.com\n#+END_SRC\n\nKeep in mind that you will need protonmail bridge in order to send mails.\n\n** Google\n\nGoogle requires you to enable less-secure access in order to receive mail. See\n[[https://support.google.com/accounts/answer/6010255][here]] for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcemkeylan%2Fmu-wizard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcemkeylan%2Fmu-wizard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcemkeylan%2Fmu-wizard/lists"}