linux after install

Ubuntu Post-Installation Notes

(Note: a lot of this is no longer necessary since about version 10.x, but I keep it around to remember how it's done. )

  1. Do First
  2. Emacs
  3. Networking
  4. Change Login Background
  5. Get rid of completion beep
  6. Multimedia
  7. Audio
  8. Xscreensaver
  9. Fonts
  10. Enlightenment
  11. Icewm
  12. Apache
  13. Miscellaneous
  14. Lisp build environment tools
  15. Compiz-fusion
  16. Move window buttons ->
  17. Do First

    1. Set the hardware clock to the system clock which should have been updated via ntp.
      sudo hwclock -w
    2. Make any changes in /etc/skel/.bashrc (before creating other accounts)
    3. Add root and guest account:
      sudo users-admin
      Make sure guest has no sudo privileges.
    4. Install mrxvt, add a launcher and change it to launch the following:
      mrxvt -sl 10000 +showmenu
    5. Download some files:
      wget http://jkcunningham.com/code/.Xdefaults
      wget http://jkcunningham.com/code/.mrxvtrc
      wget http://jkcunningham.com/code/.emacs
      wget http://jkcunningham.com/code/.sbclrc
      wget http://jkcunningham.com/code/.hg
      
    6. Make sure ~/bin is in $PATH. It needs to be read by ssh and by xsession logins which don't read .bash_profile, so make sure this goes in .bashrc or something it sources.
      # This file is sourced by all *interactive* bash shells on startup,
      # including some apparently interactive shells such as scp and rcp
      # that can't tolerate any output.
      
      export PATH=$HOME/bin:$PATH
      
      ;; # Test for an interactive shell.  Programs like scp and rcp only read
      ;; # .bashrc (not .bash_profile). There is no need to set anything past
      ;; # this point for scp and rcp, and it's important to refrain from
      ;; # outputting anything in those cases.
      ;;
      if [[ $- != *i* ]]; then
              # Shell is non-interactive.  Be done now
          return
      fi
      ;;
      ;; # Shell is assumed to be interactive beyond this point.
      ;; # It is okay to produce output
      
      umask 022
    7. Install some standard stuff
      sudo aptitude install apt-file

      apt-file finds which package contains a file name.

    8. Install newer poplar library from oneiric to fix xpdf bug (link at bottom):
      sudo dpkg -i libpoppler13_0.16.7-2ubuntu1_amd64.deb
      (2011-08-04: bug report.)

    Emacs

    Version 23 is now in the repositories. Probably want to install cedet as well.

    sudo aptitude install emacs 
    sudo aptitude install cedet-common cedet-contrib

    Also download my:

    Networking

    Install some useful network services:

    sudo aptitude install ssh wget rsync 
    sudo aptitude install wicd (optional)

    Notes:

    • wicd is a replacement for network-manager that works with window managers which don't use the Gnome taskbar (like E17).
    • To restart the network interfaces: (this is an example)

    ifdown eth0
    ifup eth0

    Possibly make changes to /etc/dhcp3/dhclient.conf. These have consisted of explicitly giving it the hostname (may not be necessary anymore) and deleting the hostname request from the request line.

    Change Login Background

    I am following How to change login screen in Ubuntu 10.04

    1. sudo cp /usr/share/applications/gnome-appearance-properties.desktop /usr/share/gdm/autostart/LoginWindow
    2. reboot
    3. set theme and background when menu comes up
    4. get rid of menu from next logout by doing:
      sudo unlink /usr/share/gdm/autostart/LoginWindow/gnome-appearance-properties.desktop

    Here are two more related articles:

    Get rid of completion beep

    Very annoying. And very simple to cure:

    modprobe -r pcspkr

    To make it permanent, edit /etc/modprobe.d/blacklist.conf and add the line:

    blacklist pcspkr
    at the bottom.

    Multimedia

    Might want to Install some of these:

    sudo aptitude install mplayer tvtime camstream gxine acroread
    sudo aptitude install grip lame dvdrip dvdrip-doc k9copy

    Audio

    Test with this audio clip:

    $ wget http://jkcunningham.com/download/barcarolle_op60_1845.mp3

    Install the following to taste:

    apt-get install alsa-tools alsa-tools-gui audacity audacious gxine cdparanoia
    apt-get install cdrecord cdrdao dvd+rw-tools grip
    • Make sure user is in audio group
    • envy24control is included in alsa-tools-gui (the Ice1712 mixer panel)
    • growisofs is in dvd+rw-tools
    • If mplayer has no sound, check that it is not configured to use the wrong /dev/dsp?

    Here's what it takes to set up an old Sound Blaster ISA card in Ubuntu:

    1. Reserve IRQ5 for the sound card in the computer BIOS.
    2. Manually add the sound card drivers to the /etc/modprobe.d/alsa-base and start the driver:
      • options snd-sbawe isapnp=0 port=0x220 mpu_port=0x300 awe_port=0x640 irq=5 dma8=1 dma16=5 #options snd-sb16 isapnp=0 port=0x220 irq=5 dma8=0 dma16=5 mpu_port=0x300
      • modprobe snd-sbawe
      snd-sb16 which should be used for SoundBlaster 16 cards instead of snd-sbawe.
    3. Test sound: aplay -Dhw /usr/share/sound* (pick something)
    4. Other useful sound testing info:
      • lspnp (list pnp devices such as ISA cards)
      • cat /proc/interrupts
      • cat /proc/asound
      • cat /dev/sndstat
      • aplay -l (list sound devices)
      • amixer
      • speaker-test -wav -c2

    Xscreensaver

    There is a new problem using xscreensaver since Karmic if you don't use Gnome. On older versions there was a way to logon so the .xsession startup script was read which is where you would list the various other applications you wanted to startup with your X session. That's not an option anymore, all you can do is select: "e16" from the window manager menu, which uses the default session menu.

    Now, I could track down which one that is and make this stuff global, but I didn't want it to work that way. Users ought to be able to customize their window manager startup applications without resorting to Gnome. So, finally figured out that the trick is to put them in .profile. This only gets read once on login, which is important, because I don't want to keep relaunching stuff everytime I launch an xterm and it sources my .bashrc, etc. Here's what .profile now looks like:

    umask 022
    
    # if running bash
    if [ -n "$BASH_VERSION" ]; then
        # include .bashrc if it exists
        if [ -f "$HOME/.bashrc" ]; then
    	. "$HOME/.bashrc"
        fi
    fi
    
    # set PATH so it includes user's private bin if it exists
    if [ -d "$HOME/bin" ] ; then
        PATH="$HOME/bin:$HOME/installed/depot_tools:$PATH"
    fi
    
    # Provided I have defined a .bash_profile or .bash_login (the
    # former, in this case), this file is file is only sourced by the
    # window manager on login. Remote logins (e.g. SSH)'s don't source
    # it, making it logins which makes it the perfect place to put the
    # following:
    
    xrdb .Xdefaults
    jpilot &
    gkrellm &
    xscreensaver -nosplash &
    

    Fonts

    • fc-list will list all available font faces
    • e.g.: fc-list :lang-hi lists all Hindi language font faces.
    • xfontsel will let you see if they're accessible and what the ./Xdefault strings look like.

    Adding fonts

    Install some fonts using apt-get:

    sudo aptitude update
    sudo apt-get install xfs
    sudo apt-get install msttcorefonts cabextract x-ttcidfont-conf
    sudo apt-get install xfonts-terminus xfonts-terminus-oblique
    sudo dpkg-reconfigure x-ttcidfont-conf
    sudo fc-cache -fv

    Adding fonts downloaded to user space

    Put your fonts in ~/.fonts/ (make it, if necessary). Then run fc-cache —as a user. It will create a directory ~/.fontconfig and your fonts will show up in Gimp next time you start it.

    mkdir -p ~/.fonts
    cd ~/.fonts
    <copy fonts here>
    fc-cache

    Installing fonts from scratch

    Make directories to put any truetype fonts in:

    mkdir /usr/share/fonts/truetype/myfonts
    cp [fonts] /usr/share/fonts/truetype/myfonts

    Regular fonts go in /usr/share/fonts/X11/. For example, profont is essential. Get it from www.tobias-jung.de . As root:

    cd /usr/share/fonts/X11/
    sudo wget http://www.tobiasjung.net/download.php?file=profont-x11.tar.gz
    sudo tar xvfz profont-x11.tar.gz
    cd profont-x11
    sudo mkfontdir
    sudo fc-cache -fv

    Edit /etc/X11/xorg.conf and add the added (any any missing) FontPath's:

    FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" 
    FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"
    FontPath "/usr/share/fonts/X11/profont-x11/"

    Also need to edit /etc/X11/fs/config and prepend to the catalogue:

    catalogue = /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType/,...

    Need terminus and profont. Terminus goes in /usr/X11R6/lib/X11/fonts/local which also needs to be prepended to the above catalog.

    Restart both xfs and X:

    sudo /etc/init.d/xfs restart
    sudo /etc/init.d/gdm restart

    DPI

    Edit /usr/X11R6/bin/startx and make sure this line is right:

    defaultserverargs="-dpi 96"

    Verify your resolution by running:

    sudo xdpyinfo | grep resolution

    It wants to be 96x96. The other place to adjust it is in xorg.conf Monitor section. Use this line:

    DisplaySize 337.5 270.0

    Adjust the two dimensions until you get it right. This is very important - when its right things just snap sharply into place, and even a tiny bit off they look mediocre.

    More notes:

    From a Debian forum article:

    "I was able to obtains fonts ready to go by apt-get xfonts-dosemu. 
    This installs the fonts in /usr/local/share/dosemu/Xfonts
    The fonts are:
    vga10x20-cp866.pcf.gz  vga11x19.pcf.gz  vga8x19.pcf.gz    vga.pcf.gz
    vga10x24.pcf.gz        vga12x30.pcf.gz  vga-cp866.pcf.gz
    
     From there it was just a case of running the programs:
    mkfontdir - create an index of X font files in a directory
    fc-cache -f -v
    xset - set user preferences for X
       see xset fp rehash to reset the font paths to current value.

    Enlightenment

    Both e16 and e17

    sudo aptitude install e16 e16-data e16keyedit e16menuedit2
    sudo aptitude install eterm eterm-backgrounds eterm-themes
    sudo aptitude install wicd

    Make sure that wicd is properly installed before proceding, as e17 will uninstall network-manager and you will lose network connectivity after the next network boot cycle otherwise. Add this repository with sudo emacs /etc/apt/sources.list

    ## E17 repository "edevelop.org"
    sudo deb http://edevelop.org/pkg-e/ubuntu edgy e17
    sudo deb-src http://edevelop.org/pkg-e/ubuntu edgy e17
    wget http://lut1n.ifrance.com/repo_key.asc
    sudo apt-key add repo_key.asc
    sudo apt-get install e17

    Icewm

    aptitude install icewm icewm-common icewm-experimental icewm-themes

    Following: www.icewm.org/FAQ

    Remember that chmod +x .xsession .xinitrc is required for either to work properly. Under GDM ~/.xsession is read, other desktop managers read .xinitrc apparently.

    Here is what the ~/.icewm/menu should look like:

    prog "rxvt" - rxvt -sl 5000
    prog "aterm" - aterm
    prog "gterm" - gnome-terminal
    prog "epiphany" - epiphany
    prog "firefox" - firefox
    prog "thunderbird" - thunderbird
    separator
    menu "Sound" - {
    	 prog "Envy24" - envy24control
           separator
    	 prog "audacity" - audacity
    	 prog "Rhythmbox" - rhythmbox
    	 prog "audacious" - audacious
           separator
    	 prog "gxine" - gxine
    	 prog "tvtime" - tvtime
    	 prog "camstream" - camstream
    }
    menu "Dev" - {
           prog "xterm" - xterm
           prog "eterm" - Eterm
           prog "emacs" - emacs
    }

    And to get focus behavior and the number of workspaces set up, and all kinds of other stuff, here is my ~/.icewm/preferences:

    Also may want to install DFM (a file manager)

    Apache

    apg-get install apache2
    • apache2ctl configtest parses the complete configuration and writes warnings and errors.
    • httpd -S is supposed to dump how apache parsed the configs w/substitutions, but I can't find httpd yet.

    Miscellaneous

    aptitude install libpng3 libpng3-dev
    aptitude install xscreensaver xscreensaver-data-extra xscreensaver-gl-extra
    aptitude install gkrellm gqview feh xpdf meld minicom
    aptitude install g++ scons doxygen
    aptitude install thunderbird gnupg 

    Lisp build environment tools

    Clbuild needs some of these:

    sudo aptitude install wget subversion darcs cvs git-core mercurial curl

    Compiz-fusion

    The following comes from ubuntuguide.org .

    Install the window manager files:

    sudo apt-get install compiz compizconfig-settings-manager compiz-fusion-plugins-main compiz-fusion-plugins-extra librsvg2-common
    sudo apt-get install emerald fusion-icon

    Enable it by selecting: System->Preferences->CompizConfig Settings Manager. Log out and back in for it to take effect. Turn on emerald and select stuff like rotating-cube.

    Make sure the boxes "Desktop Cube" and "Rotate Cube" in the "Desktop" section are checked. Now you can rotate the cube by dragging the the middle mouse button on the background.

    Move window buttons ->

    Somewhere around 11.04 Metacity inexplicably moved the window buttons over to the left side of the titlebar. To move them back where they belong, use gconf-editor:

    • applications/metacity/general buttonlayout
    • put the colon on the left end of the string
    • swap 'minimize' with 'close'