Long long ago, I tried Debian and it struggled to do a lot of pretty basic things (play DVDs, hardware, graphics, laptops). I respect Debian’s enhanced wholesomeness, but the functionality was just too constrained. These days however, Debian is fine for me. In fact, it’s the only sane distribution that "doesn’t break userspace". Add your stupid new features and ways of doing things, but, jeez, don’t take away perfectly good things that people have come to depend on. I find that today (2016) Debian with MATE is 100% configurable to be exactly how I want it with minimal fuss. Here are my notes for doing that, not because it’s complicated, but because if I have a list I won’t forget anything and I will be able to set up a perfect system from scratch in about 15 minutes.

Install

When it asks for packages choose the MATE package and sanity will be preserved.

Curing Caps Lock

Go to System→Preferences→Keyboard→Layouts→Options→Ctrl key position Check "Caps Lock as Ctrl".

Amazingly the virtual console can also be cured with minimal fuss.

sudo sed -i 's@\(XKBOPTIONS="\)@\1ctrl:nocaps@' /etc/default/keyboard
sudo dpkg-reconfigure -phigh console-setup

Takes effect after the next reboot.

Users

When installing give a bogus account because it will get the numbering wrong. Just use root to do it properly.

Get rid of the temporary account. Do this as root.

# /usr/sbin/deluser --remove-all-files delme

Use delgroup if the group lingers.

Create the real account.

# useradd -m -U -u 11111 -d /home/xed -s /bin/bash xed
# passwd xed
# gpasswd -a xed sudo

Remove Useless Bars

The bar at the bottom of the screen is absurdly redundant. It normally contains a Workspace Switcher which can sometimes be useful. Still, absolutely no need for two screen wasting bars.

Right click the top panel. Choose "Add To Panel" and find "Workspace Switcher" at the very bottom of the list. Feel free to add System Monitor if that makes sense. Now you can safely get rid of the bottom panel by right clicking on it and selecting "Delete this panel".

Right click on the top panel and choose "Properties". Orientation should be "Left" and check "Autohide".

Terminal

Open a terminal with Applications→System Tools→MATE Terminal

On the menubar click Edit→Profiles and select "Default" and click Edit. Choose Colors tab and uncheck "Use colors from system theme". Choose "White on black" from the pull down. Choose Scrolling tab and choose "Scrollbar is: Disabled" and give a scrollback buffer of 5000. Close.

Create a new keyboard shortcut for this command.

/usr/bin/mate-terminal --hide-menubar

Bind it to Ctrl+Shift+N.

Remove Useless Desk Icons

First install dconf-editor.

apt-get install dconf-editor

Run that as a normal user since these settings are done per user. If you run it as sudo it will apply the settings to the root account.

Go to org->mate->caja->desktop and unclick the following.

  • computer-icon-visible

  • home-icon-visible

  • trash-icon-visible

I’ll leave "volumes-visible" because I want to know if that kind of automounting ever happens. See below.

No Automounting

I don’t need USB flash drives doing nefarious things behind my back; I’ll mount things explicitly, thanks.

Again use dconf-editor as previously mentioned look for this.

org->gnome->desktop->media-handling
  • Uncheck automount

  • Uncheck automount-open

  • Check autorun-never

Also look at this.

org->mate->desktop->media-handling

Same deal. This seems to cure it if the first doesn’t.

Theme

System→Preferences→Appearance In the Theme tab I like "TraditionalOkTest"; you can’t miss it which is the point.

Displays

System→Preferences→Monitors Uncheck "Same image in all monitors".

Trackball

Out of the box, the middle buttons on my Logitech Marble Mouse are not activated. Somewhat outdated Ubuntu chatter is possibly helpful here.

What worked was to put this in ${HOME}/.xsessionrc.

# Fix the marble mouse problems.
if grep "Logitech USB Trackball" /proc/bus/input/devices >/dev/null 2>&1 ; then
    xmodmap -e 'pointer = 1 8 3 4 5 6 7 2 9' >/dev/null 2>&1
fi

Check .Xsession-errors and /var/log/lightdm/* if there are errors, especially ones that prevent you from starting a session.

Screensaver Lock

Under System→Preferences→Screensaver, uncheck Screensaver and Locking. Click the Power Management button and from there set "Put display to sleep when inactive for:" to "Never".

Also if it’s not installed, install mate-power-manager and under System→Preferences→Power Management look for "Put display to sleep when in active for:" should be "Never" (since it takes so damn long for it to wake up).

Browser

Start browser for the first time with this.

iceweasel https://noscript.net

Go ahead and add Self-Destructing Cookies, Privacy Badger, HTTPS Everywhere, and JS free DDG.

Add this to .bashrc.

export BROWSER=/usr/bin/iceweasel
alias ff='bash -c "${BROWSER} &";exit'

Vim

sudo apt-get install vim
sudo apt-get purge nano
echo 'export EDITOR=/usr/bin/vim' >> .bashrc
sudo update-alternatives --config editor

This may also be good in .bashrc

alias visudo='sudo EDITOR=/usr/bin/vim /usr/sbin/visudo'

Display Manager Fixes

I understand not publishing a list of users at the login prompt but for a single user system, that’s just annoying. Strangely Debian seems to default to this.

The fix appears to be in the greeter-hide-users setting in /etc/lightdm/lightdm.conf. [Untested]

Skeleton

  • .vimrc

  • .bashrc (put . ~/.bashrc in .bash_profile)

  • .screenrc

Software

  • rsync WTF? How is this not here????

  • feh

  • htop

  • lftp

  • xpdf (seems to bring in cups)

  • screen

  • inkscape

  • mercurial

  • make

  • gcc

  • asciidoc (Maybe not… 1,209 MB!!! This needs fixing.)

  • chromium

  • mate-system-monitor (note1)

  • mate-applets (for system monitor) (note1)

  • mplayer

  • mpg123

  • abcde

Note
1. Needed only if installed from mate-desktop-environment-core.

Nvidia

Screen going blank after a new install on an Nvidia system. Well, those Debian folks have mixed feelings about Nvidia’s proprietary drivers. On one hand they make it so it doesn’t work, but on the other hand you can fix that. Official help is here.

Try to log in some how and install

nvidia-detect

Run that program and install what is recommended. For my NVIDIA Corporation GK104 [GeForce GTX 760] I had to install

nvidia-driver

Make sure this is just like this (add it, directory too) if needed.

/etc/X11/xorg.conf.d/20-nvidia.conf
Section "Device"
    Identifier "My GPU"
    Driver "nvidia"
EndSection

Reboot.

Steam

Steam was pretty easy to install. First, add this to /etc/apt/sources.list.

deb http://httpredir.debian.org/debian/ jessie main contrib non-free

Then you can just do the obvious.

sudo apt-get install steam

If you get the error an error like this…

You are missing the following 32-bit libraries:
libGL.so.1

Try installing this.

apt-get install libgl1-nvidia-glx-i386

How to move downloads from previous installations is an ongoing area of research, but it looks like you’ll want the manifest files as well as the directories actually containing the game.

:->[usb128][~/old_steam/.steam/steam/steamapps]$ cat appmanifest_370360.acf
"AppState"
{
    "appid"     "370360"
    "Universe"      "1"
    "name"      "TIS-100"
    "StateFlags"        "4"
    "installdir"        "TIS-100"
    "LastUpdated"       "1482809267"
    "UpdateResult"      "0"
    "SizeOnDisk"        "84036583"
    "buildid"       "717588"
    "LastOwner"     "76561198123579102"
    "BytesToDownload"       "29826000"
    "BytesDownloaded"       "29826000"
    "AutoUpdateBehavior"        "0"
    "AllowOtherDownloadsWhileRunning"       "0"
    "UserConfig"
    {
        "Language"      "english"
    }
    "MountedDepots"
    {
        "370363"        "1208369354753219700"
    }
}
:->[usb128][~/X/old_steam/.steam/steam/steamapps]$ ls -d common/TIS-100/
common/TIS-100/

This seems to work. Shut down Steam first. Copy the .acf manifest files into the steamapps directory. Then copy or move the directory containing the game (referred to in the manifest) to the steamapps/common directory. When Steam starts back up, it will find these things and assume they’re good to go. As normal, it does its update check and usually starts updating some of them.