Difference between pages "Package:Mutt" and "Wim42gnu's-setup"

(Difference between pages)
m (Worked around a WikiMedia "pipe issue" and add information about semi-colons in passwords.)
 
 
Line 1: Line 1:
{{Ebuild
+
WIM42GNU's Funtoo Setup
|Summary=Mutt is a popular mail reader for Linux systems.
+
|CatPkg=mail-client/mutt
+
|Maintainer=
+
}}
+
  
This page was created as a good place for people to place their mutt configurations to share with others. These configuration settings go in the user's <tt>~/.muttrc</tt> file.
+
This is for everybody who might have seen my funtoo setup and liked it!
== Installing Mutt ==
+
This is also for myself to keep track on my system. I have used most of the Linux distributions out there and I am currently most happy with funtoo.  
To install mutt, emerge it:
+
My reasons are:
<console>
+
# Gentoo/Funtoo is a rolling release distribution, meaning you only have to install it once and update it frequently.
###i## emerge mutt
+
# Gentoo/Funtoo is only what you make out of it, no unnesecary rubish like in Ubuntu, OpenSuse or Fedora will be installed by default. In the mean time being aware that Gentoo/Funtoo is for advanced users not careing that much about GUIs for Settings or Configs.
</console>
+
# Gentoo/Funtoo runs fast due to multiple reasons. (Compiling your own software,USE-Flags,...)
 +
# Philosophy, one would think that Slackware would suite me most (KISS,Unix) but the fact is that these distributions require you more energy and time to work with. I want to get my jobs done, not careing to much about the system. It is okay to have tools that do things for you as long they are designed well - like in funtoo.
  
== Essential Mutt ==
 
<pre>
 
set pager_stop
 
</pre>
 
  
This turns off the default behavior of mutt where hitting space to scroll will automatically move to the next message when the end of the current message is reached. This is very annoying when scrolling in long emails like cron jobs.
+
'''1. Install Funtoo'''
  
== angry_vincent's .muttrc: ==
+
''Follow the install instructions and setup a minimal system.''http://www.funtoo.org/Funtoo_Linux_Installation
  
{{file|name=~/.muttrc|desc= |body=
+
Notice you will need to create/edit some configs in the installation prozess. Here are some of mine customizations:
# General config
+
# ---------------
+
  
set folder=~/Mail   # mail folder
+
a) <code>/etc/portage/make.conf</code>:
set alias_file=~/.mail_aliases    # alises file
+
  CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"
set arrow_cursor   # cursor is '->'
+
  CXXFLAGS="${CFLAGS}"
set attribution="%d, %n wrote:"    # beginning of mail answer
+
  CPU_FLAGS_X86="aes avx fma4 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 xop"
set copy=yes   # save mail copies
+
set edit_headers   # edit mail header
+
set editor="vim"                               # editor
+
set folder_format="%t%N %-30.30f %8s"                         # folder list look
+
set index_format="%4C %Z %{%b %d} %-31.31F %N (%4c) %s"       # mail list look
+
set mailcap_path="~/.mailcap"                               # path to .mailcap
+
set menu_scroll # scroll list by one line
+
set mail_check=5 # mail check interval
+
set pager_stop # at the end of mail do not move to next message
+
set postponed=+drafts # postponed mails
+
set print=ask-yes # ask before print
+
set print_command=lpr # print command
+
set record=+sent # where to save sent mails
+
set signature="~/.signature" # signature file
+
set visual=vim                  # editor caled by  ~v
+
  
# mail sort
+
''for the CPU Flags checkout:'' http://www.funtoo.org/News:CPU_FLAGS_X86
set sort=threads
+
set sort_aux=reverse-date-received
+
set sort_browser=reverse-date
+
ignore *    # ignore headers so the mail body is not overloaded
+
unignore        from: subject to cc mail-followup-to \
+
                date x-mailer x-url user-agent reply-to  # fieids i like to see in mail body
+
  
# Colors
+
  USE="qt3support theora libkms xa cdr dvd dvdr alsa ffmpeg -gnome gtk -qt4 -kde lm_sensors mp3 mp4 mozilla multilib png python sound udev usb unicode static-libs hddtemp -bluetooth  nvidia X pulseaudio udisks"
color index brightcyan black ~N
+
color index brightyellow black ~F
+
color index black green ~T
+
color index brightred black ~D
+
mono index bold ~N
+
mono index bold ~F
+
mono index bold ~T
+
mono index bold ~D
+
  
# Highlights inside the body of a message.
+
  EMERGE_DEFAULT_OPTS="--keep-going"
 +
  FEATURES="-collision-protect ccache"
 +
  CCACHE_SIZE="1G"
 +
  PORTAGE_NICENESS=20
 +
  PORTAGE_IONICE_COMMAND="ionice -c 3 -p \${PID}"
 +
  #EMERGE_DEFAULT_OPTS="--jobs=12"
 +
  MAKEOPTS="-j12" ''<--- Number of CPU cores *2 in my case works best.''
  
# URLs
+
  LANG="de_DE.UTF-8"
color body brightgreen black "(http|ftp|news|telnet|finger)://[^ \"\t\r\n]*"
+
  LINGUAS="de"
color body brightgreen black "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
+
  ACCEPT_LICENSE="* -@EULA"  
mono body bold "(http|ftp|news|telnet|finger)://[^ \"\t\r\n]*"
+
  INPUT_DEVICES="evdev"
mono body bold "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
+
  VIDEO_CARDS="nvidia"
  
# email addresses
 
color body brightgreen black "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
 
mono body bold "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
 
  
# header
+
b) <code>/etc/fstab</code>
color header green black "^from:"
+
color header green black "^to:"
+
color header green black "^cc:"
+
color header green black "^date:"
+
color header yellow black "^newsgroups:"
+
color header yellow black "^reply-to:"
+
color header brightcyan black "^subject:"
+
color header red black "^x-spam-rule:"
+
color header green black "^x-mailer:"
+
color header yellow black "^message-id:"
+
color header yellow black "^Organization:"
+
color header yellow black "^Organisation:"
+
color header yellow black "^User-Agent:"
+
color header yellow black "^message-id: .*pine"
+
color header yellow black "^X-Fnord:"
+
color header yellow black "^X-WebTV-Stationery:"
+
color header yellow black "^X-Message-Flag:"
+
color header yellow black "^X-Spam-Status:"
+
color header yellow black "^X-SpamProbe:"
+
color header red black "^X-SpamProbe: SPAM"
+
  
# Coloring quoted text - coloring the first 7 levels:
+
  # /etc/fstab: static file system information.
color quoted cyan black
+
  #
color quoted1 yellow black
+
  # The root filesystem should have a pass number of either 0 or 1.
}}
+
  # All other filesystems should have a pass number of 0 or greater than 1.
 +
  #
 +
  # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
 +
  #
 +
  # See the manpage fstab(5) for more information.
 +
  #
 +
  # <fs> <mountpoint> <type> <opts> <dump/pass>
  
== Interesting Color Options ==
+
  /dev/sda1 /boot ext2 noauto,noatime 1 2
 +
  #/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
 +
  /dev/mapper/vg-swap    none          swap      sw                              0 0
 +
  /dev/mapper/vg-root    /            ext4      noatime,nodiratime,defaults    0 1
 +
  /dev/sr0                /mnt/cdrom    auto      noauto,ro                      0 0
 +
  /dev/mapper/vg-home    /home        ext4      noatime,nodiratime              0 0
 +
''' tmpfs /var/tmp/portage tmpfs uid=portage,gid=portage,mode=0775,size=16048M,noatime 0 0'''
  
* http://github.com/altercation/mutt-colors-solarized
+
for tmpfs see: http://www.funtoo.org/Funtoo_Filesystem_Guide,_Part_3
  
== Golodhrim's mutt config ==
+
c) Since I have an encrypted LVM, one needs an initramfs. I prefer the genkernel method.
 +
    genkernel --kernel-config=/path/to/your/custom-kernel-config --no-mrproper --makeopts=-j5 --install --lvm --luks all
 +
more here: http://www.funtoo.org/Rootfs_over_encrypted_lvm or use better-initramfs: http://www.funtoo.org/Initramfs
  
First, I split up my muttconfig in several subfiles under <tt>~/.mutt</tt>. The resulting files are:
+
d) My Funtoo Profiles:
* <code>~/.mutt/account_hooks</code>
+
  eselect profile show
* <code>~/.mutt/colors</code>
+
 
* <code>~/.mutt/folder_hooks</code>
+
  Currently set profiles:
* <code>~/.mutt/gpg</code>
+
    arch: gentoo:funtoo/1.0/linux-gnu/arch/x86-64bit
* <code>~/.mutt/lists</code>
+
    build: gentoo:funtoo/1.0/linux-gnu/build/current
* <code>~/.mutt/macros</code>
+
  flavor: gentoo:funtoo/1.0/linux-gnu/flavor/desktop
* <code>~/.mutt/mutt-alias</code>
+
  mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/audio
* <code>~/.mutt/muttrc</code>
+
  mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/console-extras
* <code>~/.mutt/sidebar</code>
+
  mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/dvd
* <code>~/.secret/.passwd.gpg</code>
+
  mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/media
 +
  mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/X
 +
 +
  Automatically enabled profiles:
 +
  mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/print
 +
  mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/X
 +
  mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/audio
 +
  mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/dvd
 +
  mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/media
 +
  mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/console-extras
  
=== account_hooks ===
 
{{file|name=~/.mutt/account_hooks|desc= |body=
 
#-------------------------------------------------------------------------
 
# Account Hooks
 
#-------------------------------------------------------------------------
 
account-hook . 'unset imap_user imap_pass'
 
account-hook 'imap://user@imaphost/' "set imap_user=user imap_pass=$my_pass1 "
 
}}
 
  
=== colors ===
+
'''2. Install your WindowManager or DesktopEnviroment'''
{{file|name=~/.mutt/colors|desc= |body=
+
#-------------------------------------------------------------------------     
+
# Set colors
+
#-------------------------------------------------------------------------
+
color  attachment  brightmagenta      default
+
color  error      brightred          default
+
color  hdrdefault  red                default
+
color  indicator  brightyellow        red
+
color  markers    brightcyan          default
+
color  message    brightcyan          default
+
color  normal      default            default
+
color  quoted      brightblue          default
+
color  search      default            green
+
color  signature  red                default
+
color  status      yellow              blue
+
color  tilde      magenta            default
+
color  tree        magenta            default
+
}}
+
  
=== folder_hooks ===
+
''My favourite Window Manager at the time is i3 followed by xfce and openbox.''
  
{{file|name=~/.mutt/folder_hooks|desc= |body=
+
'''i3 setup:'''
#--------------------------------------------------------------------------
+
# Folders, mailboxes and folder hooks
+
#--------------------------------------------------------------------------
+
# Setup for imap-user in account_hooks
+
set folder="imap://user@imaphost/"
+
mailboxes =INBOX =INBOX/Archives =INBOX/Drafts =INBOX/Sent =INBOX/Trash
+
folder-hook 'imap://user@imaphost/' " \
+
    set folder=imap://user@imaphost/ \
+
        postponed=+INBOX/Drafts \
+
        record=+INBOX/Sent \
+
        smtp_url=smtp://user@smtphost \
+
        smtp_pass=$my_pass1 \
+
        #signature=~/.sig/pr.txt \
+
        from='Name Familyname <name@host> ' \
+
        realname='Realname' \
+
        pgp_sign_as='PGP-signature' \
+
        spoolfile='imap://user@imaphost/' "
+
}}
+
  
=== ~/.mutt/gpg ===
+
1) install these packages:
{{file|name=~/.mutt/gpg|desc= |body=
+
<console> emerge --ask i3 i3status dmenu lxappeareance
# vim:syn=muttrc                                                               
+
</console>
##
+
'' If you want to know what these packages are research them.''
  
set smime_decrypt_use_default_key=yes
+
Config files:
  
# Decode application/pgp attachments like so:
+
'''1.''' xinitrc at <code>~/.xinitrc </code>
set pgp_decode_command="/usr/bin/gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f"
+
  exec ck-launch-session i3 --force-xinerama
 +
''You only need --force-xinerama if you do have a nvidia grafics card. For more <code>startx</code> magic → https://wiki.archlinux.org/index.php/xinitrc''
  
# And use this to verify pgp signatures:
+
'''2.'''  <code>~/.i3/config</code>
set pgp_verify_command="/usr/bin/gpg --no-verbose --batch --output - --verify %s %f"
+
  
# How to decrypt pgp encrypted messages:
+
''specify window colors at the top of the file:''
set pgp_decrypt_command="/usr/bin/gpg --passphrase-fd 0 --no-verbose --batch --output - %f"
+
  # class                border  backgr. text    indicator
 +
  client.focused          #333333 #000000 #ffffff #000000
 +
  client.focused_inactive #333333 #5f676a #ffffff #484e50
 +
  client.unfocused        #333333 #222222 #888888 #292d2e
 +
  client.urgent          #333333 #900000 #ffffff #900000
  
# How to pgp sign a message:
+
''specify the bar/workspace colors at the bottom of the file:''
set pgp_sign_command="/usr/bin/gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"
+
 
 +
  bar {
 +
          status_command i3status
 +
          # Bar color settings
 +
          colors{
 +
                  #background #000000
 +
                  #statusline #ffffff
 +
                  #separator  #666666
 +
                  # Type            border  background font
 +
                  focused_workspace  #008fff #007fff #ffffff
 +
                  active_workspace  #333333 #5f676a #ffffff
 +
                  inactive_workspace #333333 #222222 #888888
 +
                  urgent_workspace  #aa0000 #990000 #ffffff
 +
          }
 +
  }
  
# How to pgp clearsign a message:
 
set pgp_clearsign_command="/usr/bin/gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"
 
  
# Import a pgp key from a message into my public keyring as follows:
+
Do not forget the keymap setting at <code>/etc/X11/xorg.conf</code> otherwise you need to use <code>setxkbmap</code>
set pgp_import_command="/usr/bin/gpg --no-verbose --import -v %f"
+
  Section "InputClass"
 +
    Identifier        "keyboard-all"
 +
    Driver            "evdev"
 +
    MatchIsKeyboard    "on"
 +
  ''' Option        "XkbLayout" "de"'''
 +
  EndSection
  
# Use this to export a key from my public keyring:
+
'''3. '''Display Power Management Signaling
set pgp_export_command="/usr/bin/gpg --no-verbose --export --armor %r"
+
  
# Verify key information (from the key selection menu):
+
a) You can either use XScreenSaver(https://wiki.archlinux.org/index.php/XScreenSaver):
set pgp_verify_key_command="/usr/bin/gpg --verbose --batch --fingerprint --check-sigs %r"
+
  emerge -a xscreensaver
  
# List my public keyring like so:
+
and add <code>/usr/bin/xscreensaver -no-splash &</code> to your <code>~/.xinitrc</code> file:
set pgp_list_pubring_command="/usr/bin/gpg --no-verbose --batch --with-colons --list-keys %r"
+
 
 +
  xscreensaver -no-splash &        # starts screensaver daemon
 +
  exec ck-launch-session i3 --force-xinerama
  
# List my private keyring like so:
+
or b) modifi your Xorg server (https://wiki.archlinux.org/index.php/Display_Power_Management_Signaling).
set pgp_list_secring_command="/usr/bin/gpg --no-verbose --batch --with-colons --list-secret-keys %r"
+
  
# Automatically sign outgoing messages
+
'''4. '''Note: I login without a login manager using <code>startx</code> to start my Window Manager, you can end/exit your i3 wm via <code>alt or windows key + shift + e</code>
set pgp_autosign=yes
+
  
# Timeout (in seconds) for cached passphrases:
+
'''additional software:'''
set pgp_timeout=1800
+
  
# Text to show before a good signature:
+
1) File Manager:
set pgp_good_sign="^gpg: Good signature from"
+
<console> emerge --ask thunar </console>
}}
+
''thunar - filemanager that supports automounting''
 +
''Make sure you create this rule: <code> /etc/polkit-1/rules.d/10-drives.rules</code>
 +
  polkit.addRule(function(action, subject) {
 +
  if (action.id.indexOf("org.freedesktop.udisks2.") == 0){
 +
  return polkit.Result.YES;
 +
  }
 +
  }
 +
  );
  
=== ~/.mutt/lists ===
+
''Also you should have <code>udisk</code> installed''
{{file|name=~/.mutt/lists|desc= |body=
+
#-------------------------------------------------------------------------     
+
# Mailinglist Subscriptions
+
#-------------------------------------------------------------------------
+
# Syntax:
+
# subscribe mailinglist@domain.com
+
}}
+
 
+
=== ~/.mutt/macros ===
+
 
+
{{file|name=~/.mutt/macros|desc= |body=
+
# Macros to toggle the sidebar visibility                                     
+
macro index b '<enter-command>toggle sidebar_visible<enter><refresh>'
+
macro pager b '<enter-command>toggle sidebar_visible<enter><redraw-screen>'
+
 
+
# abook query
+
macro index,pager A "<pipe-message>abook --add-email-quiet<return>" "add the sender address to abook"
+
macro generic,index,pager \Cb "abook" "launch abook"
+
}}
+
 
+
=== ~/.mutt/alias ===
+
 
+
{{file|name=~/.mutt/alias|desc= |body=
+
alias nick Realname <email@host.tld>
+
}}
+
 
+
=== ~/.mutt/muttrc ===
+
 
+
{{file|name=~/.mutt/muttrc|desc= |body=
+
# Some minimal Mutt settings, Gentoo-style.  These reflect the Gentoo
+
# predilection for maildir folders.
+
#
+
# Please don't add settings to this file to change other user
+
# preferences (such as colors), since those can be hard for a user to
+
# undo if their preference doesn't match yours!  For example, it is
+
# *impossible* currently in mutt to remove color settings from objects
+
# other than the index.
+
 
+
#-------------------------------------------------------------------------
+
# Process the password file first
+
#-------------------------------------------------------------------------
+
set my_tmp=`gpg -o ~/.secret/.tmp -d ~/.secret/.passwd.gpg`                   
+
set my_pass1=`awk '/user:/ {print $2}' ~/.secret/.tmp`
+
set my_del=`rm -f ~/.secret/.tmp`
+
+
#-------------------------------------------------------------------------
+
# Further customisations
+
#-------------------------------------------------------------------------
+
set smart_wrap = yes
+
set sort = 'threads'
+
set sort_aux = 'last-date-received'
+
set imap_check_subscribed
+
 
+
ignore "Authentication-Results:"
+
ignore "DoaminKey-Signature:"
+
ignore "DKIM-Signature:"
+
hdr_order Date From To Cc
+
 
+
#-------------------------------------------------------------------------
+
# Configuration variables
+
#-------------------------------------------------------------------------
+
set abort_nosubject=yes
+
set abort_unmodified=yes
+
set query_command="abook --mutt-query '%s'"
+
set alias_file="~/.mutt/mutt-alias"
+
set alias_format="%4n %t %a %r"
+
source $alias_file
+
set assumed_charset="utf-8"
+
set attach_charset="utf-8"
+
set charset="utf-8"
+
set date_format=""
+
set edit_headers=yes
+
set editor='vim + -c "set textwidth=72" -c "set wrap" -c "set nocp" -c "?^$"'
+
set folder="~/.offlineimap"
+
set forward_quote=yes
+
set header_cache=~/.mutt/cache/headers
+
set message_cachedir=~/.mutt/cache/bodies
+
set certificate_file=~/.mutt/certificates
+
set help=yes
+
set imap_idle=yes
+
set imap_peek=yes
+
set imap_servernoise=no
+
set include=yes
+
set mail_check=60
+
set mbox_type=Maildir
+
set menu_move_off=no
+
set menu_scroll=no
+
set mime_forward=ask-no
+
set pager_context=2
+
set pager_stop=yes
+
set postponed="~/.mutt/mail/postponed"
+
set realname="Martin 'golodhrim' Scholz"
+
set record="~/.mutt/mail/sent"
+
set reply_regexp="^(re([\[0-9\]+])*<PIPE>betr):[ \t]*" # Please replace <PIPE> with an actual pipe. WikiMedia does not handle pipe escaping
+
#set reply_to=yes
+
set tilde=yes
+
 
+
#--------------------------------------------------------------------------
+
# muttprint for printing
+
#--------------------------------------------------------------------------
+
set print_command="muttprint"
+
 
+
#--------------------------------------------------------------------------
+
# Automatically process html mails
+
#--------------------------------------------------------------------------
+
auto_view text/html
+
 
+
#--------------------------------------------------------------------------
+
# Other configuration files
+
#--------------------------------------------------------------------------
+
source ~/.mutt/account_hooks
+
source ~/.mutt/folder_hooks
+
source ~/.mutt/colors
+
source ~/.mutt/sidebar
+
source ~/.mutt/gpg
+
source ~/.mutt/macros
+
source ~/.mutt/lists
+
}}
+
 
+
=== ~/.mutt/sidebar ===
+
 
+
{{file|name=~/.mutt/sidebar|desc= |body=
+
#--------------------------------------------------------------------------   
+
# Sidebar configuration
+
#--------------------------------------------------------------------------
+
set sidebar_width=30
+
set sidebar_visible=yes
+
set sidebar_delim='|'
+
color sidebar_new yellow default
+
 
+
#--------------------------------------------------------------------------
+
# Sidebar keys
+
#--------------------------------------------------------------------------
+
bind index \CP sidebar-prev
+
bind index \CN sidebar-next
+
bind index \CO sidebar-open
+
bind pager \CP sidebar-prev
+
bind pager \CN sidebar-next
+
bind pager \CO sidebar-open
+
}}
+
 
+
=== ~/.secret/.passwd.gpg ===
+
For this file follow the next steps:
+
* '''Step 1:'''
+
Create a folder <tt>~/.secret</tt> and inside that directory, create a file called <tt>.passwd</tt>. Add the following to it:
+
 
+
{{file|name=~/.secret/.passwd|desc= |body=
+
user1:    passwd1
+
user2:    passwd2
+
}}
+
 
+
where "user1" and "user2" are identifiers for the accounts you added in the account_hooks and folder_hooks files, as well as at the start of the muttrc. Note that if your password contains semi-colons you'll have to escape them with a backslash.
+
* '''Step 2:'''
+
Now, encrypt the file with your <tt>gpg-key</tt>. If you don't have one, execute <tt>gpg --gen-key</tt> and create one. After that, don't forget to delete your unencrypted password storage:
+
<console>
+
$ ##bl##gpg -r 0x<Your-ID-fingerprint> -o .passwd.gpg --encrypt .passwd
+
$ ##bl##rm -f .passwd
+
</console>
+
 
+
=== Mutt postfix setup ===
+
Postfix is another popular and powerful mail transfer agent which is easier to configure than sendmail. Let's start a quick postfix mail transfer setup that will work with mutt. Set the <tt>sasl,berkdb</tt> USE flags to <tt>mail-mta/potsfix</tt> and <tt>mail-client/mutt</tt> in <tt>/etc/portage/package.use/</tt>:
+
<console>
+
# ##i##echo "mail-mta/postfix berkdb sasl" >> /etc/portage/package.use/mail
+
# ##i##echo "mail-client/mutt berkdb sasl" >> /etc/portage/package.use/mail
+
# ##i##emerge -uN1 mutt postfix
+
</console>
+
 
+
Edit <tt>/etc/postfix/main.cf</tt> and add the following lines:
+
 
+
{{file|name=/etc/postfix/main.cf|desc= |body=
+
relayhost = smtp.gmail.com:587
+
smtp_use_tls = yes
+
smtp_sasl_auth_enable = yes
+
smtp_sasl_password_maps = hash:/etc/postfix/gmail_passwd
+
smtp_sasl_security_options = noanonymous
+
}}
+
 
+
Create and edit the aforementioned authorization file: <tt>gmail_passwd</tt>:
+
<console>
+
# ##i##touch /etc/postfix/gmail_passwd
+
# ##i##echo "smtp.gmail.com:587 my.name@gmail.com:password" >> /etc/postfix/gmail_passwd
+
</console>
+
Where <my.name> is a gmail account and passwd is the account password.
+
Convert <tt>gmail_passwd</tt> into Berkeley DB format, secure the file, and restart the postfix daemon:
+
<console>
+
# ##i##postmap /etc/postfix/gmail_passwd
+
# ##i##chown root:postfix /etc/postfix/gmail_passwd*
+
# ##i##chmod 0640 /etc/postfix/gmail_passwd*
+
# ##i##/etc/init.d/postfix restart
+
</console>
+
  
[[Category:HOWTO]]
+
2)
[[Category:First Steps]]
+
app-arch/file-roller
{{EbuildFooter}}
+
app-editors/bluefish
 +
app-emulation/wine
 +
app-misc/freemind
 +
app-office/libreoffice
 +
app-portage/eix
 +
mail-client/thunderbird
 +
media-gfx/blender
 +
media-gfx/gimp
 +
media-sound/audacity
 +
media-sound/audacious
 +
media-video/kdenlive
 +
media-video/smplayer
 +
media-video/vlc
 +
net-analyzer/wireshark
 +
net-ftp/filezilla
 +
sys-apps/lm_sensors
 +
virtual/jre
 +
www-client/chromium
 +
app-text/evince
 +
app-text/calibre
 +
app-emulation/virtualbox

Revision as of 15:22, February 12, 2015

WIM42GNU's Funtoo Setup

This is for everybody who might have seen my funtoo setup and liked it! This is also for myself to keep track on my system. I have used most of the Linux distributions out there and I am currently most happy with funtoo. My reasons are:

  1. Gentoo/Funtoo is a rolling release distribution, meaning you only have to install it once and update it frequently.
  2. Gentoo/Funtoo is only what you make out of it, no unnesecary rubish like in Ubuntu, OpenSuse or Fedora will be installed by default. In the mean time being aware that Gentoo/Funtoo is for advanced users not careing that much about GUIs for Settings or Configs.
  3. Gentoo/Funtoo runs fast due to multiple reasons. (Compiling your own software,USE-Flags,...)
  4. Philosophy, one would think that Slackware would suite me most (KISS,Unix) but the fact is that these distributions require you more energy and time to work with. I want to get my jobs done, not careing to much about the system. It is okay to have tools that do things for you as long they are designed well - like in funtoo.


1. Install Funtoo

Follow the install instructions and setup a minimal system.http://www.funtoo.org/Funtoo_Linux_Installation

Notice you will need to create/edit some configs in the installation prozess. Here are some of mine customizations:

a) /etc/portage/make.conf:

 CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"
 CXXFLAGS="${CFLAGS}"
 CPU_FLAGS_X86="aes avx fma4 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 xop"

for the CPU Flags checkout: http://www.funtoo.org/News:CPU_FLAGS_X86

 USE="qt3support theora libkms xa cdr dvd dvdr alsa ffmpeg -gnome gtk -qt4 -kde lm_sensors mp3 mp4 mozilla multilib png python sound udev usb unicode static-libs hddtemp -bluetooth  nvidia X pulseaudio udisks"
 EMERGE_DEFAULT_OPTS="--keep-going"
 FEATURES="-collision-protect ccache"
 CCACHE_SIZE="1G"
 PORTAGE_NICENESS=20
 PORTAGE_IONICE_COMMAND="ionice -c 3 -p \${PID}"
 #EMERGE_DEFAULT_OPTS="--jobs=12" 
 MAKEOPTS="-j12" <--- Number of CPU cores *2 in my case works best.
 LANG="de_DE.UTF-8" 
 LINGUAS="de"  
 ACCEPT_LICENSE="* -@EULA" 
 INPUT_DEVICES="evdev"
 VIDEO_CARDS="nvidia"


b) /etc/fstab

 # /etc/fstab: static file system information.
 #
 # The root filesystem should have a pass number of either 0 or 1.
 # All other filesystems should have a pass number of 0 or greater than 1.
 #
 # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
 #
 # See the manpage fstab(5) for more information.
 #
 # <fs>			<mountpoint>	<type>		<opts>		<dump/pass>
 /dev/sda1		/boot		ext2		noauto,noatime	1 2
 #/dev/cdrom		/mnt/cdrom	auto		noauto,ro	0 0
 /dev/mapper/vg-swap     none          swap      sw                              0 0
 /dev/mapper/vg-root     /             ext4      noatime,nodiratime,defaults     0 1
 /dev/sr0                /mnt/cdrom    auto      noauto,ro                       0 0
 /dev/mapper/vg-home     /home         ext4      noatime,nodiratime              0 0
 tmpfs		/var/tmp/portage	tmpfs	uid=portage,gid=portage,mode=0775,size=16048M,noatime	0 0

for tmpfs see: http://www.funtoo.org/Funtoo_Filesystem_Guide,_Part_3

c) Since I have an encrypted LVM, one needs an initramfs. I prefer the genkernel method.

   genkernel --kernel-config=/path/to/your/custom-kernel-config --no-mrproper --makeopts=-j5 --install --lvm --luks all 

more here: http://www.funtoo.org/Rootfs_over_encrypted_lvm or use better-initramfs: http://www.funtoo.org/Initramfs

d) My Funtoo Profiles:

 eselect profile show
 
 Currently set profiles:
    arch: gentoo:funtoo/1.0/linux-gnu/arch/x86-64bit
   build: gentoo:funtoo/1.0/linux-gnu/build/current
  flavor: gentoo:funtoo/1.0/linux-gnu/flavor/desktop
 mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/audio
 mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/console-extras
 mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/dvd
 mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/media
 mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/X

 Automatically enabled profiles:
 mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/print
 mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/X
 mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/audio
 mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/dvd
 mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/media
 mix-ins: gentoo:funtoo/1.0/linux-gnu/mix-ins/console-extras


2. Install your WindowManager or DesktopEnviroment

My favourite Window Manager at the time is i3 followed by xfce and openbox.

i3 setup:

1) install these packages:

 emerge --ask i3 i3status dmenu lxappeareance

If you want to know what these packages are research them.

Config files:

1. xinitrc at ~/.xinitrc

 exec ck-launch-session i3 --force-xinerama

You only need --force-xinerama if you do have a nvidia grafics card. For more startx magic → https://wiki.archlinux.org/index.php/xinitrc

2. ~/.i3/config

specify window colors at the top of the file:

 # class                 border  backgr. text    indicator
 client.focused          #333333 #000000 #ffffff #000000
 client.focused_inactive #333333 #5f676a #ffffff #484e50
 client.unfocused        #333333 #222222 #888888 #292d2e
 client.urgent           #333333 #900000 #ffffff #900000

specify the bar/workspace colors at the bottom of the file:

 bar {
         status_command i3status
         # Bar color settings
         colors{
                 #background #000000
                 #statusline #ffffff
                 #separator  #666666
                 # Type             border  background font
                 focused_workspace  #008fff #007fff #ffffff
                 active_workspace   #333333 #5f676a #ffffff
                 inactive_workspace #333333 #222222 #888888
                 urgent_workspace   #aa0000 #990000 #ffffff
         }
 }


Do not forget the keymap setting at /etc/X11/xorg.conf otherwise you need to use setxkbmap

 Section "InputClass"
   Identifier         "keyboard-all"
   Driver             "evdev"
   MatchIsKeyboard    "on"
   Option         "XkbLayout" "de"
 EndSection

3. Display Power Management Signaling

a) You can either use XScreenSaver(https://wiki.archlinux.org/index.php/XScreenSaver):

 emerge -a xscreensaver

and add /usr/bin/xscreensaver -no-splash & to your ~/.xinitrc file:

 xscreensaver -no-splash &         # starts screensaver daemon 
 exec ck-launch-session i3 --force-xinerama 

or b) modifi your Xorg server (https://wiki.archlinux.org/index.php/Display_Power_Management_Signaling).

4. Note: I login without a login manager using startx to start my Window Manager, you can end/exit your i3 wm via alt or windows key + shift + e

additional software:

1) File Manager:

 emerge --ask thunar 

thunar - filemanager that supports automounting Make sure you create this rule: /etc/polkit-1/rules.d/10-drives.rules

 polkit.addRule(function(action, subject) {
 if (action.id.indexOf("org.freedesktop.udisks2.") == 0){
 return polkit.Result.YES;
 }
 }
 );

Also you should have udisk installed

2) app-arch/file-roller app-editors/bluefish app-emulation/wine app-misc/freemind app-office/libreoffice app-portage/eix mail-client/thunderbird media-gfx/blender media-gfx/gimp media-sound/audacity media-sound/audacious media-video/kdenlive media-video/smplayer media-video/vlc net-analyzer/wireshark net-ftp/filezilla sys-apps/lm_sensors virtual/jre www-client/chromium app-text/evince app-text/calibre app-emulation/virtualbox