Table of Contents

1 Introduction

I wrote this web page because people keep asking what stuff I use on my computer.

I use Emacs for most of my daily tasks. Emacs is a programmable lisp environment that revolves around text.

I also wanted to note that I'm a free software zealot, I use 100% percent free software, except for my boot firmware which is sadly proprietary, I can't change it since there is no supported free/libre boot firmware for my mother board and other hardware (it really doesn't matter since I'm already compromised).

2 What I use

2.1 Hardware

I use a cheap Asus x556u with a i7-6500U.

It has a very bad screen and keyboard ('I really miss my old thinkpad), so when I'm at home I just plug it to a monitor and use an external keyboard.

2.2 Software

TL;DR: I use Linux and Emacs.

2.2.1 GNU/Linux distribution:

I have Debian GNU/Linux on my laptop, I just like the healthy community, the developers actually ship software that works without problem.

I don't have much knowledge about init systems. So I think that systemd does the job.

2.2.2 Programs

I like programs that are simple to use and follow the UNIX way, a program should do one thing and do it well (the irony is that I use GNU Emacs but I'll talk about that later).

This is a list of programs that I use everyday

  1. suckless st

    Sometimes I need to do stuff in a real terminal emulator, SimpleTerminal does the job well.

    st is less than 5K lines of code.

  2. kwm

    kwm is a little window manager I wrote based on dwm code and ideas from ratpoison. It just works and it's less than 2K lines of beautiful C code.

    Before this I used stumpwm, a window manager written in common lisp.

    Stumpwm is clusterfuck for my use and ratpoison code is ugly and maintained by one guy from France so I just wrote my own software.

  3. mksh

    I sometimes need a POSIX shell, so I use mksh (my default shell is eshell inside Emacs).

    Bash is clusterfuck for my use. But I have it installed on my computer and some servers.

  4. GNU Emacs

    As I said, Emacs is my daily driver, since it does the things I do on a computer well.

    I use Emacs for:

    • Reading, composing, encrypting, decrypting and signing Emails (multiple mail accounts and servers).
    • Going on IRC.
    • Writing my diary.
    • Planning my day and my diet (I have a file).
    • Writing notes and essays about politics and literature.
    • Using git to version my files (my diary and life files and also other text projects like programming and writing stuff).
    • Browsing files, on my hard drive or on distant computers (either using secure shell or (secure) ftp).
    • Writing and debugging programs.
    • Maintaining, and writing my website and a blog.
    • Tracking my movie watch list.
    • Using a powerful calculator.
    • Writing some of my class notes.
    • Capturing bookmarks and stuff to watch or read later.
    • Reading mailing list archvies.
    • Playing media (music and video even from the network).
    • Hell I even use Emacs for brewing my tea!

    This is what are the programs I use inside Emacs:

    1. mu4e

      The mu program is easy to use and is very fast, I use the Emacs interface called mu4e, I also download and synchronize mail using offlineimap.

      It's worth noting also that I use the mb2md program to convert mbox mail archives to mail dir format (I then can read them using mu4e since we don't have mbox support for now).

    2. Org journal

      Sometimes I like to write about my day.

    3. Org mode

      I use org every single day, especially the org-agenda mode for planning my day, after some experiments it seems that when I write things down in a program or on paper I'm more able to accomplish my goals, this is wonderful for me since I'm a procrastinator I also love using org-capture.

    4. Dired

      I use dired every day, it's my default file manager, I used to use thunar but dired is far more superior.

      I use dired mainly like you might use midnight commander, I have two windows side by side, and I can do operations on files with single key presses.

      Here what it looks like:


      Figure 1: Dired

    5. ERC

      ERC is an irc client, it's included by default in Emacs, it works fine and it's feature rich.

    6. Eshell

      eshell is my default shell inside Emacs, this article sums up the reasons.

      I mostly use Eshell but sometimes I need some things only bash can do so I resort to it if all my sorcery tricks fail.

    7. EMMS

      I use EMMS for playing music, I use emms-mpv which adds support for playing stuff with mpv.

      This how it looks like:


      Figure 2: EMMS in action

    8. PDF tools

      I use this instead of the default DocView since it's a whole lot faster (it renders pages on demand).

    9. Magit

      Magit is the best git frontend I have tried, I combine it with magithub to work with github to show issues and pull requests.

    10. Perspective

      I used to use GNU screen inside a temrinal emulator, but perspective.el is much nicer, too bad it's not maintained any more, and it doesn't support Emacs 26 yet.

    11. Proced

      I use this thing inside Emacs instead of htop, it works fine, I have no complaints.

    12. Calc mode

      Calc mode is a very powerful calculator mode, it offers features which are a subset of matlab like algebric evaluation.

      This is not a replacement for scientific software like Matlab but it's a handy calculator that can do tons of stuff, it's been said that it's a poor man’s Mathematica.

    13. EWW

      I use the Emacs web browser when I need something fast, it supports cookies and can show images, it can't run javascript which is fine for me.

      For doing revealjs presentations I use the xwidget webkit (got to recompile Emacs for this feature at least it's not in the Debian repositories) and boldil's code for better keybindings.

  5. redshift

    I use redshift daily, even in the morning, it surprisingly helps me sleep at night.

  6. simplegen

    I use simplegen for my blog, it's about 400 lines of code (it's python though. I need to rewrite this in Shell or better a Makefile).

  7. GNU icecat

    This a firefox fork that's concerned with privacy issues, I also use vimperator.

  8. Transmission

    I used this program as my BitTorrent client for years, it just works. The cool thing is that I can control the daemon from inside Emacs.

  9. Mpv

    mpv is a fantastic program for playing media, it's simple to use, intuitive and keyboard driven, it has also a lot of customize features.

  10. youtube-dl

    I use this to download media from the internet.

  11. suckless slock

    a suckless program, to lock my screen when I'm away from my computer.

    slock is also less than 400 lines of code (it uses a hand rolled method of authenticating and OOM for linux), I also find that i3lock is nice (it uses PAM though).

  12. X11

    Except for the security problems the thing works for me, so no thank you no wayland for me. I boot in a tty and then I use the startx script, display managers are a distraction for me.

Author: Mohamed Aziz Knani

Created: 2018-03-27 Tue 23:41