Skip to content

Instantly share code, notes, and snippets.

@bandwidthcrunch
Forked from terlar/README.markdown
Created November 8, 2013 08:02
Show Gist options
  • Save bandwidthcrunch/7367747 to your computer and use it in GitHub Desktop.
Save bandwidthcrunch/7367747 to your computer and use it in GitHub Desktop.

ArchLinux on MacBook Retina 13"

Info

Resources

Hardware

Use lspci and lsmod to get more info

  • Model: MacBookPro10,2
  • Boot ROM: MBP102.0106.B03
  • Graphics: Intel 3rd Gen Core processor Graphics Controller (rev 09)
  • Wireless: BCM4331

Install

Basic Tools

sudo pacman -S usbmuxd libimobiledevice ifuse
sudo pacman -S wpa_supplicant ifplugd
sudo pacman -S alsa-utils powertop htop iotop ncdu acpi gnu-netcat dnsutils net-tools
sudo pacman -S gvim bc openssh unzip unrar tree ranger vimpager time

sudo systemctl enable sshd

Build

sudo pacman -S ghc python3 git hub
Aura (AUR)
cd /tmp
curl -O https://aur.archlinux.org/packages/ha/haskell-curl/haskell-curl.tar.gz
tar -xzf haskell-curl.tar.gz && cd haskell-curl
makepkg -s
sudo pacman -U haskell-curl-*.pkg.tar.xz
cd -

curl -O https://aur.archlinux.org/packages/ha/haskell-regex-pcre/haskell-regex-pcre.tar.gz
tar -xzf haskell-regex-pcre.tar.gz && cd haskell-regex-pcre
makepkg -s
sudo pacman -U haskell-regex-pcre-*.pkg.tar.xz
cd -

curl -O https://aur.archlinux.org/packages/au/aura/aura.tar.gz
tar -xzf aura.tar.gz && cd aura
makepkg -s
sudo pacman -U aura-*.pkg.tar.xz

sudo aura -A powerpill

Drivers

sudo pacman -S acpid xf86-video-intel
sudo systemctl enable acpid

sudo aura -A broadcom-wl-dkms xf86-input-mtrack-git macfanctld-git
sudo systemctl enable macfanctld

Create the file /etc/modprobe.d/alsa-base.conf with the content options snd-hda-intel model=mbp101.

Network

/etc/systemd/system/[email protected]

[Unit]
Description=Wireless network connectivity (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=oneshot
RemainAfterExit=yes

ExecStart=/usr/bin/ip link set dev %i up
ExecStart=/usr/bin/wpa_supplicant -B -i %i -c /etc/wpa_supplicant/wpa_supplicant.conf
ExecStart=/usr/bin/dhcpcd %i

ExecStop=/usr/bin/ip link set dev %i down

[Install]
WantedBy=multi-user.target
sudo systemctl enable network-wireless@wlp3s0
sudo systemctl enable ifplugd@enp12s0
Caps2Ctrl

Edit the file us_caps2ctrl.map after creation with keycode 58 = Control.

sudo mkdir -p /usr/share/keymaps
dumpkeys > us_caps2ctrl.map
gzip us_caps2ctrl.map
sudo mv us_caps2ctrl.map.gz /usr/share/keymaps

Create the file /etc/vconsole.conf with content: KEYMAP=/usr/share/keymaps/us_caps2ctrl.map

fish

sudo aura -A fish-shell-git

dotfiles

hub clone terlar/dotfiles ~/.dotfiles
cd ~/.dotfiles
/usr/local/bin/fish install.fish

User

chsh -s /usr/local/bin/fish
usermod -a -G audio,video,network,power,disk,storage,optical,lp,systemd-journal username

GUI

Xorg
sudo pacman -S xorg-server xorg-xinit xorg-server-utils xorg-xev
sudo pacman -S dmenu i3lock xfce4-notifyd gnome-keyring xsel
Xmonad
sudo pacman -S xmonad xmonad-contrib cabal-install
sudo aura -A dmenu-path-c compton-git xmonad-utils
cabal update; and cabal install yeganesh
Fonts
sudo pacman -S ttf-inconsolata ttf-linux-libertine ttf-dejavu ttf-ubuntu-font-family ttf-freefont
sudo aura -A freetype2-infinality fontconfig-infinality
sudo aura -A ttf-source-code-pro otf-source-code-pro ttf-vista-fonts ttf-mac-fonts ttf-envy-code-r ttf-beteckna ttf-opensans
sudo infctl setstyle osx2
Theme
sudo pacman -S lxappearance
sudo aura -A gtk-theme-numix-git gtk-theme-numix-white
Input
sudo pacman -S fcitx-im fcitx-configtool
User services
aura -A systemd-xorg-launch-helper-git

/usr/lib/systemd/user/dbus.service

Description=D-Bus System Message Bus
Requires=dbus.socket

[Service]
ExecStart=/usr/bin/dbus-daemon --session --address=systemd: --nofork --systemd-activation
ExecReload=/usr/bin/dbus-send --print-reply --session --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig

/usr/lib/systemd/user/dbus.socket

[Unit]
Description=D-Bus System Message Bus Socket

[Socket]
ListenStream=%t/dbus/user_bus_socket

Apps

sudo pacman -S imagemagick scrot feh tmux mosh mutt lftp rtorrent w3m tigervnc zathura zathura-poppler baobab
sudo aura -A termite dropbox
sudo pacman -S luakit libsoup
gem install termit
Irssi
sudo pacman -S irssi
sudo aura -A irssi-script-trackbar irssi-script-nm irssi-script-advanced-windowlist irssi-script-dictionary-complete
Media
sudo pacman -S mplayer
sudo aura -A google-talkplugin
Mopidy
sudo pacman -S ncmpcpp python2-pylast
sudo aura -A mopidy mopidy-scrobbler mopidy-spotify

echo "/usr/local/lib" > /etc/ld.so.conf.d/libspotify.conf
ldconfig
AirPort
sudo pacman -S pulseaudio pulseaudio-alsa paprefs pavucontrol
sudo aura -A ponymix
Network
sudo pacman -S avahi nss-mdns afpfs-ng

Development

sudo pacman -S gcolor2
sudo pacman -S ctags java-runtime mysql mongodb redis memcached gd libxml2 libxslt nodejs
sudo aura -A ruby-build-git silver-searcher-git elasticsearch elixir ngrok
fish plugins
cd ~/code

git clone terlar/fish-tank; and cd fish-tank
sudo make install; and cd ..

git clone terlar/fry; and cd fry
sudo make install; and cd ..

git clone terlar/fish-farm; and cd fish-farm
sudo make install; and cd ..
ruby
fry install 1.9.3-p392
fry install 2.0.0-p247
gem install bundler mailcatcher genghisapp bson_ext pssh

Performance

SSD

Create the file /etc/udev/rules.d/60-schedulers.rules with the content:

# Set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sda", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"

Power

sudo pacman -S laptop-mode-tools cpupower pm-utils upower
sudo aura -A profile-sync-daemon anything-sync-daemon granola uswsusp-git
sudo systemctl enable laptop-mode
sudo systemctl enable cpupower
sudo systemctl enable granola
sudo systemctl enable psd
sudo systemctl enable psd-resync
sudo systemctl enable asd
sudo systemctl enable asd-resync
  • Edit /etc/laptop-mode/laptop-mode.conf with value LM_BATT_MAX_LOST_WORK_SECONDS=15
  • Edit /etc/laptop-mode/conf.d/usb-autosuspend.conf with value AUTOSUSPEND_TIMEOUT=1
  • Edit /etc/laptop-mode/conf.d/intel-hda-powersave.conf with value INTEL_HDA_DEVICE_TIMEOUT=1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment