Arch Linux Install Guide - lhl/linuxlaptops GitHub Wiki
This is a personal install and setup guide that I've maintained/kept mostly up to date since 2015. This doc is migrated from its original location on Dropbox Paper for stability and b/c Dropbox Paper seems to have dropped old revision history.
Other resources:
- Arch Linux Wiki: Installation guide - This is the official guide and will be the most up-to-date, but it has the bad habit of eliding or linking out important details, hence prompting the original creation of this guide
- LunaSec: Arch Linux Installation Guide For Developers
- GitHub - ejmg/an-idiots-guide-to-installing-arch-on-a-lenovo-carbon-x1-gen-6: so you wanted to install arch huh
- Arch Linux - UEFI, systemd-boot, LUKS, and btrfs - Austin Morlan
- Arch Linux Full-Disk Encryption Installation Guide [Encrypted Boot, UEFI, NVMe, Evil Maid] · GitHub
- User:Altercation/Bullet Proof Arch Install - ArchWiki
- The Arch Linux Handbook – Learn Arch Linux for Beginners
- https://www.cdavis.us/wiki/index.php/Arch_Linux_Install_Guide - Last edited 2016 so likely out of date
This is a manual proce
- Download ISO
- Check Signature
gpg --keyserver-options auto-key-retrieve --verify archlinux-<version>.iso.sig archlinux-<version>.iso # If you're doing this from Arch Linux, you can use: pacman-key -v archlinux-<version>.iso.sig
- Write to USB stick
# Old School lsblk -l sudo dd bs=4M if=archlinux-<version>.iso of=/dev/<usb-stick> && sync # Is this easier? ls -l /dev/disk/by-id/usb-* sudo bash -c 'cat archlinux-<version>.iso > /dev/disk/by-id/usb-<usb-stick>'
- https://wiki.archlinux.org/title/USB_flash_installation_medium
-
lsblk
to check unmounted
-
Get a network connection
-
ip link
to get device -
systemctl restart dhcpcd.service
for hardline - WiFi (uses
iwctl
)device list
station [wlan0] scan
station [wlan0] get-networks
station [wlan0] connect [SSID]
- See: https://wiki.archlinux.org/title/installation_guide#Connect_to_the_internet
-
-
Figure out your storage devices
- Blah blah blah: https://wiki.archlinux.org/index.php/Beginners'_guide#Prepare_the_storage_devices
lsblk -f
fdisk -l
cfdisk
-
Make File Systems and Mount
-
Traditional swap + ext4 + swap
mkfs.ext4 /dev/sda2
mkswap /dev/sda3
swapon /dev/sda3
mount /dev/sda2 /mnt
mkdir -p /mnt/boot
-
mkfs.fat -F32 /dev/sda1
- NOTE: make sure partition type is set to EFI System in cfdisk
mount /dev/sda1 /mnt/boot
-
Encrypted BTRFS + encrypted swap
-
cfdisk
to gpt and make volumes mkfs.vfat -F32 -n "EFI" /dev/nvme0n1p1
mkswap -L swap /dev/nvem0n1p2
-
cryptsetup luksFormat /dev/nvme0n1p3
cryptsetup open /dev/nme0n1p3 btrfs mkfs.btrfs -L "arch" /dev/mapper/btrfs mount /dev/mapper/btrfs /mnt mount /dev/mapper/btrfs /mnt cd /mnt
-
-
See:
-
Make sure your arch key ring is up to date
pacman -Sy
pacman -S archlinux-keyring
-
-
Install the base system
pacstrap -i /mnt base base-devel linux linux-firmware linux-headers amd-ucode Intel-ucode
-
Generate fstab (w/ UUID)
genfstab -U /mnt > /mnt/etc/fstab
cat /mnt/etc/fstab
-
chroot
arch-chroot /mnt /bin/bash
- paru
- rate-mirrors-bin
- rate-mirrors --save mirrorlist arch
-
Select a mirror
-
pacman -S reflector rsync
- https://wiki.archlinux.org/index.php/Reflector
reflector --verbose --country 'United States' -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist
-
-
Update
pacman -Syu
pacman -Sy fish vim neovim
cd /usr/bin; ln -s nvim vi
-
Locale
-
vi /etc/locale.gen
and uncommenten_US.UTF-8 UTF-8
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
-
-
Time
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
hwclock --systohc --utc
-
Hostname
echo '{$hostname}' > /etc/hostname
-
Root
passwd
-
Boot Loader
-
systemd-boot (gummiboot)
-
bootctl —path=/boot install
-
vi /boot/loader/entries/arch.conf
-
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=/dev/sda2 rw
vi /boot/loader/loader.conf
-
timeout 3
default arch
-
Notes
- $esp = /boot if you’ve mounted things as I have (should be where the EFI folder is)
- you need to boot from the boot stick as UEFI I order for UEFI to work
- See also: https://wiki.archlinux.org/index.php/Archboot
- You could use grub but it’s more of a PITA
- GRUB UEFI - refuses to boot properly…
pacman -S dosfstools grub os-prober efibootmgr
grub-install —target=x86_64-efi —efi-directory=/boot —bootloader-id=grub —recheck
grub-mkconfig -o /boot/grub/grub.cfg
efibootmgr -v
- GRUB UEFI - refuses to boot properly…
-
Network Setup
- Here’s a basic thing you could do:
- Wired on startup
systemctl enable dhcpcd
- Wireless
pacman -S dialog
wifi-menu
- Wired on startup
- To simply start up the network once
-
ip link
to get your network devices -
ip link set {$interface_name} up
to bring it up -
dhcpcd {$interface_name}
to get a dhcp lease
-
- Lets save ourselves some trouble and set up NetworkManager now though (otherwise you will need to
systemctl --type=service
andsystemctl disable
other network services) pacman -S networkmanager
sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager
- Here’s a basic thing you could do:
-
Network Accessibility
pacman -S openssh
systemctl enable sshd
systemctl start sshd
pacman -S avahi nss-mdns
-
vi /etc/nsswitch.conf
and append mdns to thehosts:
line sudo systemctl enable avahi-daemon.service
sudo systemctl start avahi-daemon.service
- Reference: https://wiki.archlinux.org/index.php/Avahi
-
Install optional Packages
- Honestly, we can do most of the stuff we know we want or need now, or we can just reboot and do w/ it once we’re not in chroot (make a user of course)
-
Reboot
exit
umount -R /mnt
reboot
- Reference
useradd -m -G wheel -s /usr/bin/fish lhl
passwd lhl
-
visudo
- uncomment
%``[wheel](https://notes.dropbox.com/?q=%23wheel)
ALL=(ALL) ALL
- uncomment
NOTE: makepkg
won’t run as root so you need to make a local user first
These days I use paru:
git clone https://aur.archlinux.org/paru-bin.git
cd paru-bin
makepkg -si
- yay is similar.
- See also: https://wiki.archlinux.org/title/AUR_helpers#Pacman_wrappers
NTFS is the best choice for data drives as it is the only modern FS that has support on Linux, OSX, and Windows.
pacaur -S ntfs-3g
- NTFS doesn’t support POSIX permissions well for cross-platform mounts
- Will fail to mount rw if there’s leftover metadata or other issues, usually fixable by
ntfsfix
- Rather than adding to fstab, better to use a custom script for mounting which will try to run ntfsfix (called via rc.local systemd oneshot - see rc.local section)
- See also: https://sudopacman.wordpress.com/2015/01/09/dont-use-ntfsfix-in-linux-just-turn-off-fast-boot-in-windows/
- Reference: https://wiki.archlinux.org/index.php/NTFS-3G
pacaur -S btrfs-progs dosfstools exfat-utils f2fs-tools fuse-exfat gdisk gpart gparted ms-sys mtools nilfs-utils
- Note Linux can only mount journaled HFS+ partitions as read-only
- Use: http://notes.ponderworthy.com/rclocal-in-arch-linux-systemd
-
/etc/systemd/system/rc-local.service
can't be symlink, doesn’t work, don't know why
-
sudo systemctl enable rc-local.service
- Make sure
/etc/rc.local
is an executable script (this can be a symlink) - Alternatively: https://aur.archlinux.org/packages/rc-local/
systemd-timesyncd might not work w/o systemd-networkd - this doesn’t necessarily play well with networkmanager
sudo timedatectl set-ntp true
sudo timedatectl status
- Uncomment NTP in
/etc/systemd/timesyncd.conf
if necessary - Reference
Alternative
pacaur -S ntpdate
sudo ntpdate -s time.nist.gov
-
Intel
pacaur -S intel-ucode
-
AMD
pacaur -S amd-ucode
-
Grub
-
gummiboot
- Add
initrd /intel-ucode.img
before other initrd in/boot/loader/entries/arch.conf
- Add
If laptop:
pacaur -S ethtool lm_sensors lsb-release smartmontools tlp tp_smapi x86_energy_perf_policy
pacaur -S powertop
sudo systemctl enable tlp.service
sudo systemctl enable tlp-sleep.service
sudo tlp start
- Stats
- 4.6W idle w/ Lenovo X250 (i7-5600 2.6GHz, 8GB RAM, 512GB SSD) @ 30% backlight, 5GHz Wifi (70/70 quality, -22dB)
-
https://mjg59.dreamwidth.org/34868.html
- Wait for v4.2 kernel for better power? currently when idle, state is in pc6, 0% pc7
-
powertune --auto-tune
increases discharge rate for some reason, but worth testing
-
https://mjg59.dreamwidth.org/34868.html
- 4.6W idle w/ Lenovo X250 (i7-5600 2.6GHz, 8GB RAM, 512GB SSD) @ 30% backlight, 5GHz Wifi (70/70 quality, -22dB)
- Reference
If you have weird hardware, this may be an issue…
- Reference
- Find out what HW you have
-
lspci -k
for PCI, or for USBlsusb -v
-
- Broadcom
- While there are open source drives,
broadcom-wl
(restricted) is supposedly the most stable. You will need to wait until setting up pacaur to install those (dkms version makes kernel upgrades less likely to break things) -
pacaur -S broadcom-wl-dkms
- If you don’t have wired ethernet or a USB wireless interface you will need to use the offline installation instructions:
modprobe wl
- While there are open source drives,
- Realtek
- Some Realtek drivers should be in the mainline kernel. If not
pacaur -S dkms linux-headers
- Search for appropriate drivers https://aur.archlinux.org/packages/?O=0&SeB=nd&K=realtek&outdated=&SB=n&SO=a&PP=50&do_Search=Go
- Kernel Upgrades
- Regular
pacaur -S broadcom-wl
sudo modprobe wl
- DKMS
- While dkms is listed as less likely to break things, this hasn’t been the case for me. If you upgrade the kernel, you will probably want to
pacuar -R broadcom-wl-dkms
andpacaur -S broadcom-wl-dkms
to reinstall before rebooting - If not you probably can do the following:
dkms status
-
sudo dkms remove broadcom-wl/6.30.233.271 --all
- this should be whatever version is listed
sudo dkms build broadcom-wl/6.30.233.271
sudo dkms install broadcom-wl/6.30.233.271
sudo systemctl restart dkms.service
-
modprobe wl
- If this doesn’t work a reboot might help
- While dkms is listed as less likely to break things, this hasn’t been the case for me. If you upgrade the kernel, you will probably want to
- If that doesn’t work, you’re going to need to want to either remove/install
broadcom-wl-dkms
from a hard line or copy the package over sneakernet. Terrible I know.
- Regular
lspci | grep VGA
- Intel
pacaur -S xf86-video-intel
- Nvidia
pacaur -S nvidia nvidia-libgl nvidia-settings nvidia-utils cuda
- Reference: https://wiki.archlinux.org/index.php/NVIDIA
- AMD
pacaur -S amdgpu-pro
yay -S xf86-video-amdgpu
- OpenCL stuff
-
pacaur -S opencl-headers ocl-icd opencl-amd amdapp-sdk
- You may need to
pacaur -Se amdapp-sdk
and fix a dangling symlink: https://github.com/cviebig/arch-aur-amdapp-sdk/commit/97fde4b432ff2bdda186da4d81bc24a2241111a9
- You may need to
-
- Reference
pacaur -Syu
pacaur -S cpio lbzip2 links lsof lzop mlocate net-tools openssh p7zip rsync sift the_silver_searcher time unace unrar unzip wireless_tools xz zip
pacaur -S bind-tools
pacaur -S python2 python2-setuptools
sudo easy_install-2.7 pip
pacaur -S python python-setuptools
sudo easy_install pip
- CLI niceness
pacaur -S fish
chsh -s /usr/bin/fish
pacaur -S byobu
sudo pip install powerline-status psutil
pacaur -S python-pygit2
- mdns
pacaur -S avahi nss-mdns
-
vi /etc/nsswitch.conf
and append mdns to thehosts:
line sudo systemctl enable avahi-daemon.service
sudo systemctl start avahi-daemon.service
- Reference: https://wiki.archlinux.org/index.php/Avahi
- Arch feedback
pacaur -S pkgstats
pacaur -S dstat htop nmon
-
pacaur -S bmon iftop nbwmon nethogs nload slurm vnstat wavemon
pacaur -S baobab
sudo pip install glances
pacaur -S xorg xorg-server xorg-server-utils xorg-server-xephyr
sudo nvidia-xconfig
- Be sure to add
Option "NoLogo"
to the/etc/X11/xorg.conf
if you don't want the logo to flash w/ an Nvidia card
Wayland window managers:
paru -S labwc
paru -S sway
paru -S qtile python-pywlroots
paru -S gnome gnome-extra
- https://github.com/labwc/labwc - openbox inspired stacking window manager
- https://wiki.archlinux.org/title/sway - i3 compatible tiling manager
- https://wiki.archlinux.org/title/Qtile - Python based tiling manager
- https://wiki.archlinux.org/title/GNOME - big integrated desktop environment (DE)
pacaur -S lightdm lightdm-gtk-greeter accountsservice
systemctl enable lightdm.service
-
WM & Friends
pacaur -S compton gnome-keyring gsimplecal hsetroot openbox network-manager-applet scrot tint2
-
Fonts (infinality-bundle)
-
infanility is dead. here’s how to remove it:
-
https://gist.github.com/cryzed/e002e7057435f02cc7894b9e748c5671 pacaur -S cairo pacaur -S fontconfig pacaur -S pkgbrowser pacaur -Rns ibfonts-meta-extended pacaur -S gsfonts pacaur -S ttf-dejavu pacaur -S cantarell-fonts pacaur -S tt-droid pacaur -S ttf-liberation
pacaur -S fonts-meta-extended-lt ln -s /etc/fonts/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d ln -s /etc/fonts/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d
-
-
-
Powerline Fonts
git clone https://github.com/powerline/fonts.git
cd fonts; ./install.sh; cd ..; rm -rf fonts
-
Terminal
pacaur -S rxvt-unicode termite
- See also: https://randomfoo.net/2018/06/30/switching-from-urxvt-to-termite
-
File Manager (including iOS + Android support)
pacaur -S gvfs gvfs-afc gvfs-gphoto2 gvfs-mtp mtpfs thunar thunar-volman thunar-archive-plugin thunar-media-tags-plugin tumbler usbmuxd xarchiver
-
Clipboard Manager
pacaur -S copyq clipit
-
Notifications
pacaur -S dunst
-
Launcher
pacaur -S bc pastebinit albert
-
Search (recoll may be better, will test if it ever becomes a need/problem)
pacaur -S tracker
tracker daemon -s
tracker status
-
tracker-needle
for search gui pacaur -S ripgrep
-
Sound
pacaur -S alsa-utils pulseaudio pulseaudio-alsa pavucontrol pnmixer
- Chromium
pacuar -S chromium
- Google Chrome
pacaur -S google-chrome
pacaur -S google-chrome-beta
- Firefox
pacaur -S firefox
- Firefox Developer (use Firefox dependencies)
- the AUR is broken and we want regular updates anyway
- wget https://download.mozilla.org/?product=firefox-devedition-latest-ssl&os=linux64&lang=en-US
tar xvfj firefox-{$version}.en-US.linux-x86_64.tar.bz2
sudo mv firefox /opt/firefox-developer
sudo ln -s /opt/firefox-developer/firefox /usr/bin/firefox-developer
- Flash for Firefox
pacaur -S freshplayerplugin-git
- Chek version: http://www.adobe.com/software/flash/about/
- H.264 for Firefox
pacaur -S gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-ugly
- about:config
- media.gstreamer.enabled=true
- media.mediasource.enabled=true
- media.mediasource.mp4.enabled=true
- media.mediasource.webm.enabled=true
- Check support: https://www.youtube.com/html5
- Firefox Developer Edition has issues w/ H.264
- Google Talk
pacuar -S google-talkplugin
- Set Default Browser
xdg-settings set default-web-browser google-chrome-beta.desktop
- Settings are in
~/.config/mimeapps.list
- You can debug via:
bash -x xdg-open http://www.google.com
- See https://wiki.archlinux.org/index.php/Default_applications
- General
-
pacaur -S gvim
- make sure .vimrc is installed (see config)
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
vim +PluginInstall +qall
pacaur -S npm
sudo npm install http-server -g
pacaur -S racket
sudo pip install httpie
sudo pip install ipython[notebook]
-
- Lensley
sudo easy_install-2.7 pip
sudo pip2 install envoy ll-xist==3.25 pycurl pyserial python-memcached
pacaur -S imagemagick openjpeg2
pacaur -S mysql-workbench
- VR
pacaur -S unity-editor
pacaur -S osvr-core-git osvr-libfunctionality-git osvr-oculus-rift-git osvr-steamvr-git osvr-tracker-viewer-git
- ARM
pacaur -S debootstrap qemu-user-static binfmt-support
- uncomment [multilib] in /etc/pacman.conf
pacaur -Syu
pacaur -S wine winetricks lib32-alsa-lib lib32-alsa-plugins lib32-mpg123 lib32-libpulse lib32-gnutls samba
winetricks allfonts
-
wine 1Password-4.6.0.585.exe
- where 1Password... is the installer
- To run 1Password
wine 'C:\Program Files (x86)\1Password 4\1Password.exe'
- see
~/.local/share/applications/wine/Programs/1Password/1Password 4.desktop
- Browser plugin
- Disable signature validation in 1Password > Help > Advanced
- Install as Normal (ie via Extension Stores)
- To autostart 1Password Helper
- Add to
.config/openbox/autostart
wine 'C:\Program Files (x86)\1Password 4\Agile1pAgent.exe'
- Add to
- See also:
- Images
pacaur -S eog gthumb qiv
pacaur -S evince mcomix
pacaur -S gimp
-
pacaur
``-S okular
- Music
pacaur -S clamz moc-svn mopidy mopidy-spotify spotify
- Spotify may have issues w/ the AUR (2017-04-25) gpg --recv-keys --keyserver hkp://pgp.mit.edu D9C4D26D0E604491 gpg --recv-keys --keyserver hkp://pgp.mit.edu 5CC908FDB71E12C2 pacaur -S libopenssl-1.0-compat libcurl-openssl-1.0 cd ~/.cache/pacaur/spotify git clean -fdx git pull origin # cheers agm28011997 git checkout 226c803
- Reference:
- Video
-
pacaur -S atomicparsley ffmpeg rtmpdump gnome-vfs gst-libav gst-plugins-bad gst-plugins-good libva-vdpau-driver libmtp lua-socket mpv vlc youtube-dl
- new versions of vlc may segfault w/o intel-ucode update
-
-
pacaur -S slack-desktop
****## Dropbox pacaur -S dropbox dropbox-cli thunar-dropbox
- Reference: https://wiki.archlinux.org/index.php/Dropbox
- MAX file watches
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
- Install
-
vi /etc/pacman.conf
and enable[multilib]
and[multilib-testing]
pacaur -S android-sdk android-sdk-platform-tools android-sdk-build-tools android-studio android-udev
- infinality bundles preferred but maybe not available?
-
- Permissions for sdk manager updates
sudo chown -R :lhl /opt/android-sdk
sudo chmod -R g+w /opt/android-sdk
- Fix Fonts
-
sudo vi /opt/android-studio/bin/studio64.vmoptions
-Dawt.useSystemAAFontSettings=on
-
- Reference: https://wiki.archlinux.org/index.php/Android
pacaur -S steam
- requires
multilib
pacaur -S bluez bluez-firmware bluez-libs bluez-utils pulseaudio-alsa pulseaudio-bluetooth
pacaur -S blueman
- Notes
- depending on your tlp settings, you may need to
rfkill list
andrfkill unblock bluetooth
to enable Bluetooth. You can change settings in/etc/default/tlp
- Once bluetooth is enabled,
blueman-applet
works great for searching, pairing, and setting up devices as an audio sink. - See: http://askubuntu.com/questions/180744/how-to-enable-hard-blocked-bluetooth-in-thinkpad-edge-320
- depending on your tlp settings, you may need to
- Reference
- Autostart (on boot)
- For advanced BT audio support use
pulseaudio-modules-bt-git
Sony MDR-1000XM3 Setup
## Requires pulseaudio-modules-bt-git (w/ libldac)
# echo 'load-module module-bluetooth-discover a2dp_config="ldac_eqmid=hq"' >> /etc/pulse/default.pa
# echo 'load-module module-bluez5-discover a2dp_config="ldac_eqmid=sq"' >> /etc/pulse/default.pa
$ pulseaudio -k; pulseaudio --start
# Reconnect w/ blueman or bluetoothctl
$ pactl list sinks | grep -e bluez -e a2dp_codec
Name: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink
Driver: module-bluez5-device.c
Monitor Source: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink.monitor
bluetooth.a2dp_codec = "LDAC"
device.api = "bluez"
bluez.path = "/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX"
bluez.class = "0x240404"
bluez.alias = "WH-1000XM3"
pacaur -S all-repository-fonts
pacaur -S nerd-fonts-git
See also: https://aur.archlinux.org/packages/ttf-google-fonts-git/ (updated too often to install)
https://github.com/ryanoasis/nerd-fonts
pacaur -S cups cups-pdf
systemctl enable org.cups.cupsd
systemctl start org.cups.cupsd
### Add user to sys to be able to lpinfo as user (vigr, vigr -s)
# https://willhaley.com/blog/printing-in-arch-linux/
# https://wiki.archlinux.org/index.php/CUPS/Troubleshooting#Bad_permissions
/etc/udev/rules.d/10-dymo.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0922", ATTRS{idProduct}=="1001", MODE="0664", GROUP="lp", OWNER="lhl"
udevadm control --reload-rules
# replug device
# to check lsusb to get device bus etc, the ls -l /dev/bus/usb/[bus] to make sure permissions are correct
Dropbox Paper Papyrus
Wunderlist Wunderlistux https://github.com/edipox/wunderlistux
- Run installer script (be sure to review it yourself) cd /usr/local/bin sudo ln -s /opt/wunderlistux/Wunderlistux
Facebook Messenger Messenger for Desktop https://github.com/aluxian/Messenger-for-Desktop
Caprine https://github.com/sindresorhus/caprine
Evernote Whatever https://github.com/CellarD0-0r/whatever
- Setup .ssh keys
- Clone private dotfiles repo
- Checkout onto home/local volume in case /data doesn’t mount
- Symlink config
mv .config .config.local
ln -s dotfiles/common/config .config
breaks w/ every kernel update
pacaur -S broadcom-wl
sudo modprobe wl
if you have verification issues https://aur.archlinux.org/packages/ncurses5-compat-libs/
gpg --keyserver pgp.mit.edu --recv-keys F7E48EDB
Compton not working
- glx issue, check w/
glxinfo | grep OpenGL
to see what’s up - no glx, bwaa, is it the nvidia drivers?
- try
nvidia-beta nvidia-libgl-beta
- yep, that fixed it, isn’t that a bitch?
- Clipboard Manager - function like ClipMenu
- Clipit is not as nice as [ClipMenu for OS X](http://ClipMenu for OS X). GPaste looks good but requires a bajillion packages (and then the AUR fails to build).
- gpaste
pacaur -S gobject-introspection
pacaur -S gpaste-git
- gpaste
- Clipit is not as nice as [ClipMenu for OS X](http://ClipMenu for OS X). GPaste looks good but requires a bajillion packages (and then the AUR fails to build).
- SSB
- Make it easy to launch executables
- Better work on the favicon.ico
- Sound
- Smartly adjust volume and output (headphone, speaker, bluetooth speaker)
ip link set enp0s25 up ip addr add 192.168.2.2/24 broadcast 192.168.2.255 dev enp0s25 ip route add default via 192.168.2.1
DNS https://wiki.archlinux.org/index.php/Resolv.conf echo 'nameserver 8.8.8.8' >> /etc/resolve.conf
1Password
- 1Password Anywhere
- put into
rc.local
:/usr/bin/http-server -p 8000 /data/Dropbox/1Password.agilekeychain &
- put into
- vs keepass http://www.slant.co/topics/900/compare/~lastpass_vs_1password_vs_keepass
Issues appear to be w/ the USB port itself…
- If experiencing hangs while transferring files, this may be due to bugs with the UAS (USB Attached SCSI) system
- debug (see hangups/resets) w/
journalctl -f
- Disable the UAS module
sudo echo ‘blacklist uas’ > /etc/modprobe.d/usb3-drives.conf
- See also:
http://blog.goodstuff.im/1password https://github.com/asianmack/1password-anywhere https://github.com/Gyran/chrome-1passwordanywhere-extension https://learn2.agilebits.com/1Password4/Security/keychain-design.html https://github.com/openpassword/blimey https://github.com/robbiev/multipass-chrome http://www.lucianofiandesio.com/1password-in-linux
Network Sharing https://wiki.archlinux.org/index.php/NetworkManager dnsmasq https://wiki.archlinux.org/index.php/Advanced_traffic_control https://www.archlinux.org/packages/community/x86_64/netbrake/ http://freecode.com/projects/pyshaper/
Wunderlist
****Evernote
pacaur -S nixnote-beta
http://www.geeknote.me/ geeknote-improved-git
pacaur -S lib32-gnutls samba
- Notes:
****SSB https://aur.archlinux.org/packages/fogger-bzr/ https://github.com/rubiojr/bottles
Übersicht for Linux http://tracesof.net/uebersicht/
http://www.webupd8.org/2009/04/conky-like-desktop-info-application.html https://launchpad.net/~m-buck/+archive/ubuntu/gtk-desktop-info https://code.launchpad.net/~m-buck/+junk/gtk-desktop-info http://ubuntuforums.org/showthread.php?t=1010808 http://bloc.eurion.net/archives/2009/standalone-pygtk-desktop-widgets/
Almost works... Dead project. https://launchpad.net/screenlets https://en.wikipedia.org/wiki/Screenlets
- screenlets
pacaur -S python2-feedparser python2-pillow python2-pytz python2-numpy screenlets screenlets-pack-basic
sudo gdk-pixbuf-query-loaders --update-cache
sudo gtk-update-icon-cache -t -f /usr/share/icons/hicolor
byobu++ automated terminal management and history
Power Management https://wiki.archlinux.org/index.php/Power_management#Power_management_with_systemd https://wiki.archlinux.org/index.php/Power_management#Sleep_hooks
See also: https://github.com/uncon/wiki/blob/master/arch_linux/xps13.md
Figure out https://wiki.archlinux.org/index.php/Openbox#obm-xdg
LemonBar https://www.linux.org.ru/gallery/11843658.png
http://i.imgur.com/cVPylyx.png https://wiki.archlinux.org/index.php/Lemonbar
Aliases https://www.reddit.com/r/archlinux/comments/3sh9q4/what_aliasesbash_functions_do_you_use_to_that/
Fixing Tearing this seems to work: https://bbs.archlinux.org/viewtopic.php?id=161403 see also: https://bbs.archlinux.org/viewtopic.php?id=173890 https://bbs.archlinux.org/viewtopic.php?id=199445 http://unix.stackexchange.com/questions/182801/why-is-video-tearing-such-a-problem-in-linux
Evernote w/ Wine // // winetricks wininet // https://forum.winehq.org/viewtopic.php?p=74609 pacaur -S lib32-openssl098 pacaur -S openssl098 // http://comments.gmane.org/gmane.comp.emulators.wine.bugs/396702
Time Zone switching https://wiki.archlinux.org/index.php/time
timedatectl set-timezone America/Los_Angeles
pacaur -S xautolock
Add to .xinitrc
xautolock -time 15 -locker 'systemctl suspend' -notify [margin] -notifier [notifier] &
https://wiki.archlinux.org/index.php/Allow_users_to_shutdown
Don’t Lock if watching video:
-
locker calls script
-
script checks for video playing or app whitelist
-
fullscreen
-
or just when sound is active cat /proc/asound/card*/pcm*/sub*/status | grep RUNNING pacmd list-sink-inputs
- http://stackoverflow.com/questions/17404443/how-to-detect-that-the-sound-is-currently-playing-in-linux - http://superuser.com/questions/393448/detecting-audio-playing-in-a-bash-script - http://unix.stackexchange.com/questions/61337/testing-from-a-script-if-audio-devices-are-in-silent
-
file operation
- dstat? - raw amount
- atop or iotop for process
- Another option is to use:
sudo iotop -aoP
-a Will show accumulated output -o Will only output -P Will only show processes instead of threads - This program will tell you how much a process has written to disk and read from disk since iotop was started.
- http://serverfault.com/questions/169676/howto-check-disk-i-o-utilisation-per-process
- Another option is to use:
- https://wiki.archlinux.org/index.php/Zeitgeist
- http://unix.stackexchange.com/questions/66795/how-to-check-progress-of-running-cp
- http://askubuntu.com/questions/14252/how-in-a-script-can-i-determine-if-a-file-is-currently-being-written-to-by-ano
- http://serverfault.com/questions/415596/determine-if-file-is-in-the-process-of-being-written-upon
- http://unix.stackexchange.com/questions/5959/how-can-i-pause-resume-rsync
- http://unix.stackexchange.com/questions/176387/move-file-but-only-if-its-closed
Adapt https://github.com/iye/lightsOn/blob/master/lightsOn.sh
https://aur.archlinux.org/packages/caffeine-ng https://gist.github.com/boarpig/8118854
suspend/hibernate http://blog.programmableproduction.com/2016/02/22/ArchLinux-Powermanagement-Setting-Hibernate/ https://wiki.archlinux.org/index.php/Power_management#Hybrid_sleep https://wiki.archlinux.org/index.php/Laptop#Power_management https://wiki.archlinux.org/index.php/hibernate-script https://feeding.cloud.geek.nz/posts/creating-a-modern-tiling-desktop-environment-using-i3/ https://bbs.archlinux.org/viewtopic.php?id=150867 https://wiki.archlinux.org/index.php/Power_management#Delayed_hibernation_service_file
Notifications https://github.com/sboli/twmn notify-send http://askubuntu.com/questions/65184/the-notify-send-bubble-looks-ugly-with-openbox-yellow-black-and-non-transpare http://www.knopwob.org/dunst/screenshots.html https://github.com/halhen/statnot
Moom/Resizer
- easy commands / help/kb shortcut to resize windows, smaller, left half etc
Styling Notifications https://github.com/tatou-tatou/Themes/tree/master/Stendhal https://www.reddit.com/r/unixporn/comments/3eqxba/i3gaps_gruvbox_inspired/ http://dotshare.it/dots/1013/ https://github.com/zachbwh/bspwm_rice https://github.com/atweiden/dotfiles
https://github.com/knopwob/dunst/issues/114
knopwob/dunst#114 https://nildeala.fr/2013/02/16/dunst-notifications-minimalistes-et-elegantes.html https://www.reddit.com/r/unixporn/comments/3otrjh/i3gaps_got_bored_of_using_the_gruvbox_setup_for/ https://github.com/TomboFry/dotfiles https://plus.google.com/106152149097741431219/posts/f48dhBiRtpg https://m.reddit.com/r/unixporn/comments/46g091 http://www.gulfweb.net/rlwalker/astronomy/calendar/GoogleCalendarSearchCommandLine.htm https://github.com/magdeoz/i3-Arch-config https://github.com/casey/dotbot-user-study/blob/master/configs/jubnzv-dotfiles_install.conf.yaml
- Can’t have a ‘.’ in the filename
- Need to be chmod a+x along path
- need to be own by root
--- Copy and paste
breaks w/ every kernel update
pacaur -S broadcom-wl
sudo modprobe wl
if you have verification issues
AUR (en) - ncurses5-compat-libs
gpg --keyserver pgp.mit.edu --recv-keys F7E48EDB
Compton not working
- glx issue, check w/ glxinfo | grep OpenGL to see what’s up
- no glx, bwaa, is it the nvidia drivers?
- try nvidia-beta nvidia-libgl-beta
- yep, that fixed it, isn’t that a bitch?
-
Clipboard Manager - function like ClipMenu
-
Clipit is not as nice as [ClipMenu for OS X](http://ClipMenu for OS X). GPaste looks good but requires a bajillion packages (and then the AUR fails to build).
-
gpaste
-
pacaur -S gobject-introspection
-
pacaur -S gpaste-git
-
SSB
-
Make it easy to launch executables
-
Better work on the favicon.ico
-
Sound
-
Smartly adjust volume and output (headphone, speaker, bluetooth speaker)
ip link set enp0s25 up
ip addr add 192.168.2.2/24 broadcast 192.168.2.255 dev enp0s25
ip route add default via 192.168.2.1
DNS
Domain name resolution - ArchWiki
echo 'nameserver 8.8.8.8' >> /etc/resolve.conf
1Password
-
1Password Anywhere
-
put into rc.local:
-
/usr/bin/http-server -p 8000 /data/Dropbox/1Password.agilekeychain &
-
vs keepass url next</title><title>price drop
-
https://itunes.apple.com/en/app/minikeepass-secure-password/id451661808?mt=8
Issues appear to be w/ the USB port itself…
-
If experiencing hangs while transferring files, this may be due to bugs with the UAS (USB Attached SCSI) system
-
debug (see hangups/resets) w/ journalctl -f
-
Disable the UAS module
-
sudo echo ‘blacklist uas’ > /etc/modprobe.d/usb3-drives.conf
-
See also:
-
Arch Linux ARM • View topic - [solved]system hang after attached USB hard disk
-
http://electronicdesign.com/embedded/whats-difference-between-usb-uasp-and-bot
Post: 1Password on Linux and OS X
GitHub - robbiev/multipass-chrome: Unofficial 1Password Chrome extension
http://www.lucianofiandesio.com/1password-in-linux
Network Sharing
dnsmasq
Advanced traffic control - ArchWiki
Arch Linux - netbrake 0.2-7 (x86_64)
Best Open Source Linux Software 2022
Wunderlist
Evernote
- pacaur -S nixnote-beta
geeknote-improved-git
-
pacaur -S lib32-gnutls samba
-
Notes:
-
Missing or broken libgnutls library | Knowledge Base | CodeWeavers
-
[SOLVED] ntlm_auth errors / Networking, Server, and Protection / Arch Linux Forums
SSB
https://aur.archlinux.org/packages/fogger-bzr/
GitHub - rubiojr/bottles: Turn Your Web Apps into Real Linux Apps :)
Übersicht for Linux
PPA named gtk-desktop-info for Kaivalagi : Kaivalagi
gtk-desktop-info : Code : Kaivalagi
[all variants] Desktop Info App With Html Support (gtk-desktop-info)
http://bloc.eurion.net/archives/2009/standalone-pygtk-desktop-widgets/
Almost works...
Dead project.
https://launchpad.net/screenlets
-
screenlets
-
pacaur -S python2-feedparser python2-pillow python2-pytz python2-numpy screenlets screenlets-pack-basic
-
sudo gdk-pixbuf-query-loaders --update-cache
-
sudo gtk-update-icon-cache -t -f /usr/share/icons/hicolor
byobu++
automated terminal management and history
Power Management
See also:
https://github.com/uncon/wiki/blob/master/arch_linux/xps13.md
Figure out
LemonBar
https://www.linux.org.ru/gallery/11843658.png
http://i.imgur.com/cVPylyx.png
Aliases
https://www.reddit.com/r/archlinux/comments/3sh9q4/what_aliasesbash_functions_do_you_use_to_that/
Fixing Tearing
this seems to work: [SOLVED] Tearless compositing. / Applications & Desktop Environments / Arch Linux Forums
see also:
[SOLVED] Nvidia tearing / Applications & Desktop Environments / Arch Linux Forums
graphics - Why is video tearing such a problem in Linux? - Unix & Linux Stack Exchange
Evernote w/ Wine
//
// winetricks wininet
// Evernote Cannot Connect To Internet - WineHQ Forums
pacaur -S lib32-openssl098
pacaur -S openssl098
// http://comments.gmane.org/gmane.comp.emulators.wine.bugs/396702
Time Zone switching
timedatectl set-timezone America/Los_Angeles
pacaur -S xautolock
Add to .xinitrc
xautolock -time 15 -locker 'systemctl suspend' -notify [margin] -notifier [notifier] &
Allow users to shutdown - ArchWiki
Don’t Lock if watching video:
-
locker calls script
-
script checks for video playing or app whitelist
-
fullscreen
-
or just when sound is active
cat /proc/asound/card*/pcm*/sub*/status | grep RUNNING
pacmd list-sink-inputs
-
bash - How to detect that the sound is currently playing in Linux? - Stack Overflow
-
ubuntu 11.10 - Detecting audio playing in a bash script - Super User
-
linux - Testing if audio devices / sound cards are currently playing? - Unix & Linux Stack Exchange
-
file operation
-
dstat? - raw amount
-
atop or iotop for process
-
Another option is to use: sudo iotop -aoP
-a Will show accumulated output
-o Will only output
-P Will only show processes instead of threads
-
This program will tell you how much a process has written to disk and read from disk since iotop was started.
-
linux - How to check disk I/O utilization per process? - Server Fault
-
How to check progress of running cp? - Unix & Linux Stack Exchange
-
linux - Determine if file is in the process of being written upon? - Server Fault
-
process - How can I pause/resume rsync - Unix & Linux Stack Exchange
-
linux - Move file but only if it's closed - Unix & Linux Stack Exchange
html - How can I determine if HTML5 player is running in browser? - Stack Overflow
Adapt lightsOn/lightsOn.sh at master · iye/lightsOn · GitHub
https://gist.github.com/boarpig/8118854
suspend/hibernate
Archlinux enabling hibernation - Programmable Production
Creating a modern tiling desktop environment using i3
Hibernate when i press power button / Newbie Corner / Arch Linux Forums
Notifications
GitHub - sboli/twmn: A notification system for tiling window managers
notify-send
http://www.knopwob.org/dunst/screenshots.html
GitHub - halhen/statnot: Status / Notification system for lightweight Window Managers
Moom/Resizer
- easy commands / help/kb shortcut to resize windows, smaller, left half etc
Styling Notifications
Themes/Stendhal at master · tatou-tatou/Themes · GitHub
https://www.reddit.com/r/unixporn/comments/3eqxba/i3gaps_gruvbox_inspired/
GitHub - zachbwh/bspwm_rice: My configs that I use for my bspwm environment
GitHub - atweiden/dotfiles: Dotfiles
https://github.com/knopwob/dunst/issues/114
https://nildeala.fr/2013/02/16/dunst-notifications-minimalistes-et-elegantes.html
https://www.reddit.com/r/unixporn/comments/3otrjh/i3gaps_got_bored_of_using_the_gruvbox_setup_for/
GitHub - TomboFry/dotfiles: [WIP] XTerm/urxvt/st, Oh-my-Zsh, Vim
https://plus.google.com/106152149097741431219/posts/f48dhBiRtpg
https://m.reddit.com/r/unixporn/comments/46g091
GitHub - magdeoz/dotfiles: dotfiles, bspwm, lemobar, ranger, X
dotbot-user-study/jubnzv-dotfiles_install.conf.yaml at master · casey/dotbot-user-study · GitHub
- Can’t have a ‘.’ in the filename
- Need to be chmod a+x along path
- need to be own by root
-
Download ISO
-
From: Arch Linux - Downloads
-
Directly: Index of /archlinux/iso/latest/
-
Check Signature
-
gpg --verify archlinux-xxx.iso.sig archlinux-xxx.iso
-
Write to USB stick
-
lsblk -l
-
dd bs=4M if=archlinux.iso of=/dev/sdb && sync
-
run as root
-
/dev/sdb should be USB drive
-
you can double check device w/ fdisk -l
-
See Reference
-
High level, bare bones
-
More detailed, but lots of links
-
A complete personal guide
-
Get a network connection
-
ip link to get device
-
systemctl restart dhcpcd.service for hardline
-
WiFi (uses iwctl)
-
device list
-
station [wlan0] scan
-
station [wlan0] get-networks
-
station [wlan0] connect [SSID]
-
Make sure your clock is OK
-
timedatectl set-ntp true
-
timedatectl status
-
Figure out your storage devices
-
Blah blah blah: Installation guide - ArchWiki
-
lsblk -f
-
fdisk -l
-
cfdisk
-
Make File Systems and Mount
-
Traditional swap + ext4 + swap
-
mkfs.ext4 /dev/sda2
-
mkswap /dev/sda3
-
swapon /dev/sda3
-
mount /dev/sda2 /mnt
-
mkdir -p /mnt/boot
-
mkfs.fat -F32 /dev/sda1 (make sure partition type is set to EFI System in cfdisk)
-
mount /dev/sda1 /mnt/boot
-
EFI partition
-
Encrypted BTRFS + encrypted swap
-
cfdisk to gpt and make volumes
-
mkfs.vfat -F32 -n "EFI" /dev/nvme0n1p1
-
mkswap -L swap /dev/nvem0n1p2
-
cryptsetup luksFormat /dev/nvme0n1p3
cryptsetup open /dev/nme0n1p3 btrfs
mkfs.btrfs -L "arch" /dev/mapper/btrfs
mount /dev/mapper/btrfs /mnt
mount /dev/mapper/btrfs /mnt
cd /mnt
-
See:
-
Installing Arch Linux with an encrypted btrfs root, with GPT and UEFI support · GitHub
-
Make sure your arch key ring is up to date
-
pacman -S
-
pacman -S archlinux-keyring
-
Install the base system
-
pacstrap -i /mnt base base-devel linux linux-firmware linux-headers amd-ucode Intel-ucode
-
Generate fstab (w/ UUID)
-
genfstab -U /mnt > /mnt/etc/fstab
-
cat /mnt/etc/fstab
-
chroot
-
arch-chroot /mnt /bin/bash
-
Select a mirror
-
pacman -S reflector rsync
-
reflector --verbose --country 'United States' -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist
-
Update
-
pacman -Syu
-
pacman -Sy fish vim
-
cd /usr/bin; rm vi; ln -s vim vi
-
Locale
-
vi /etc/locale.gen and uncomment en_US.UTF-8 UTF-8
-
locale-gen
-
echo LANG=en_US.UTF-8 > /etc/locale.conf
-
Time
-
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
-
hwclock --systohc --utc
-
Hostname
-
echo '{$hostname}' > /etc/hostname
-
Root
-
passwd
-
Boot Loader
-
systemd-boot (gummiboot)
-
bootctl —path=/boot install
-
vi /boot/loader/entries/arch.conf
-
title Arch Linux
-
linux /vmlinuz-linux
-
initrd /initramfs-linux.img
-
options root=/dev/sda2 rw
-
vi /boot/loader/loader.conf
-
timeout 3
-
default arch
-
Notes
-
$esp = /boot if you’ve mounted things as I have (should be where the EFI folder is)
-
you need to boot from the boot stick as UEFI I order for UEFI to work
-
See also: ArchWiki:Archive - ArchWiki
-
You could use grub but it’s more of a PITA
-
GRUB UEFI - refuses to boot properly…
-
pacman -S dosfstools grub os-prober efibootmgr
-
grub-install —target=x86_64-efi —efi-directory=/boot —bootloader-id=grub —recheck
-
grub-mkconfig -o /boot/grub/grub.cfg
-
efibootmgr -v
-
Network Setup
-
Here’s a basic thing you could do:
-
Wired on startup
-
systemctl enable dhcpcd
-
Wireless
-
pacman -S dialog
-
wifi-menu
-
To simply start up the network once
-
ip link to get your network devices
-
ip link set {$interface_name} up to bring it up
-
dhcpcd {$interface_name} to get a dhcp lease
-
Lets save ourselves some trouble and set up NetworkManager now though (otherwise you will need to systemctl --type=service and systemctl disable other network services)
-
pacman -S networkmanager
-
sudo systemctl enable NetworkManager
-
sudo systemctl start NetworkManager
-
Network Accessibility
-
pacman -S openssh
-
systemctl enable sshd
-
systemctl start sshd
-
pacman -S avahi nss-mdns
-
vi /etc/nsswitch.conf and append mdns to the hosts: line
-
sudo systemctl enable avahi-daemon.service
-
sudo systemctl start avahi-daemon.service
-
Reference: Avahi - ArchWiki
-
Install optional Packages
-
Honestly, we can do most of the stuff we know we want or need now, or we can just reboot and do w/ it once we’re not in chroot (make a user of course)
-
Reboot
-
exit
-
umount -R /mnt
-
reboot
-
Reference
-
useradd -m -G wheel -s /usr/bin/fish lhl
-
passwd lhl
-
visudo
-
uncomment %wheel ALL=(ALL) ALL
-
makepkg won’t run as root so you need to make a local user first
-
Reference
-
Set up keys so packages will build
-
gpg —list-keys
-
makes sure your current user has a gpg database
-
echo ‘keyring /etc/pacman.d/gnupg/pubring.gpg’ >> ~/.gnupg/gpg.conf
-
Reference
-
Get Packages (as user)
-
sudo pacman -S git wget curl perl yajl expac bash-completion
-
cower
wget https://aur.archlinux.org/cgit/aur.git/snapshot/cower.tar.gz
tar xvfz cower.tar.gz
cd cower
makepkg
sudo pacman -U cower-{$version}.pkg.tar.xz
-
No longer needed but if you need to add keys…
-
$ gpg --recv-key 1EB2638FF56C0C53
-
gpg: key F56C0C53: public key "Dave Reisner [email protected]" imported
-
gpg: no ultimately trusted keys found
-
gpg: Total number processed: 1
-
gpg: imported: 1
-
makepkg requires /usr/bin/core_perl in the path
-
bash export PATH=/usr/bin:/usr/local/bin:/usr/bin/core_perl
-
fish set PATH /usr/bin /usr/local/bin /usr/bin/core_perl
-
pacaur
wget https://aur.archlinux.org/cgit/aur.git/snapshot/pacaur.tar.gz
tar xvfz pacaur.tar.gz
cd pacaur
makepkg
sudo pacman -U pacaur-{$version}.pkg.tar.xz
- We can now use pacaur instead of pacman to install both official arch and unofficial AUR packages.
NTFS is the best choice for data drives as it is the only modern FS that has support on Linux, OSX, and Windows.
-
pacaur -S ntfs-3g
-
NTFS doesn’t support POSIX permissions well for cross-platform mounts
-
Will fail to mount rw if there’s leftover metadata or other issues, usually fixable by ntfsfix
-
Rather than adding to fstab, better to use a custom script for mounting which will try to run ntfsfix (called via rc.local systemd oneshot - see rc.local section)
-
See also: Don’t use ntfsfix in Linux, just turn off Fast Boot in Windows « Arch Linux
-
Reference: NTFS-3G - ArchWiki
- pacaur -S btrfs-progs dosfstools exfat-utils f2fs-tools fuse-exfat gdisk gpart gparted ms-sys mtools nilfs-utils
- Note Linux can only mount journaled HFS+ partitions as read-only
-
Use: rc.local in Arch Linux (systemd) | Some Notes on the Machines
-
/etc/systemd/system/rc-local.service can't be symlink, doesn’t work, don't know why
-
sudo systemctl enable rc-local.service
-
Make sure /etc/rc.local is an executable script (this can be a symlink)
-
Alternatively: AUR (en) - rc-local
systemd-timesyncd might not work w/o systemd-networkd - this doesn’t necessarily play well with networkmanager
-
sudo timedatectl set-ntp true
-
sudo timedatectl status
-
Uncomment NTP in /etc/systemd/timesyncd.conf if necessary
-
Reference
-
How to switch from Network Manager to systemd-networkd on Linux
Alternative
- pacaur -S ntpdate
- sudo ntpdate -s time.nist.gov
-
Intel
-
pacaur -S intel-ucode
-
AMD
-
pacaur -S amd-ucode
-
Grub
# grub-mkconfig -o /boot/grub/grub.cfg
-
gummiboot
-
Add initrd /intel-ucode.img before other initrd in /boot/loader/entries/arch.conf
If laptop:
-
pacaur -S ethtool lm_sensors lsb-release smartmontools tlp tp_smapi x86_energy_perf_policy
-
pacaur -S powertop
-
sudo systemctl enable tlp.service
-
sudo systemctl enable tlp-sleep.service
-
sudo tlp start
-
Stats
-
4.6W idle w/ Lenovo X250 (i7-5600 2.6GHz, 8GB RAM, 512GB SSD) @ 30% backlight, 5GHz Wifi (70/70 quality, -22dB)
-
mjg59 | Reducing power consumption on Haswell and Broadwell systems
-
Wait for v4.2 kernel for better power? currently when idle, state is in pc6, 0% pc7
-
powertune --auto-tune increases discharge rate for some reason, but worth testing
-
Reference
-
https://www.reddit.com/r/thinkpad/comments/3gpmqc/tlppowertop_optimizations_and_suspend_to_ram_linux/# Arch Linux Install
Personal Install Guide/Notes. May be useful for you if you are experienced w/ Linux
-
Download ISO
-
Directly: Index of /archlinux/iso/latest/
-
Check Signature
-
gpg --verify archlinux-xxx.iso.sig archlinux-xxx.iso
-
Write to USB stick
-
lsblk -l
-
dd bs=4M if=archlinux.iso of=/dev/sdb && sync
-
run as root
-
/dev/sdb should be USB drive
-
you can double check device w/ fdisk -l
-
See Reference
-
High level, bare bones
-
More detailed, but lots of links
-
A complete personal guide
-
Get a network connection
-
ip link to get device
-
systemctl restart dhcpcd.service for hardline
-
WiFi (uses iwctl)
-
device list
-
station [wlan0] scan
-
station [wlan0] get-networks
-
station [wlan0] connect [SSID]
-
Make sure your clock is OK
-
timedatectl set-ntp true
-
timedatectl status
-
Figure out your storage devices
-
Blah blah blah: Installation guide - ArchWiki
-
lsblk -f
-
fdisk -l
-
cfdisk
-
Make File Systems and Mount
-
Traditional swap + ext4 + swap
-
mkfs.ext4 /dev/sda2
-
mkswap /dev/sda3
-
swapon /dev/sda3
-
mount /dev/sda2 /mnt
-
mkdir -p /mnt/boot
-
mkfs.fat -F32 /dev/sda1 (make sure partition type is set to EFI System in cfdisk)
-
mount /dev/sda1 /mnt/boot
-
EFI partition
-
Encrypted BTRFS + encrypted swap
-
cfdisk to gpt and make volumes
-
mkfs.vfat -F32 -n "EFI" /dev/nvme0n1p1
-
mkswap -L swap /dev/nvem0n1p2
-
cryptsetup luksFormat /dev/nvme0n1p3
cryptsetup open /dev/nme0n1p3 btrfs
mkfs.btrfs -L "arch" /dev/mapper/btrfs
mount /dev/mapper/btrfs /mnt
mount /dev/mapper/btrfs /mnt
cd /mnt
-
See:
-
Installing Arch Linux with an encrypted btrfs root, with GPT and UEFI support · GitHub
-
Make sure your arch key ring is up to date
-
pacman -S
-
pacman -S archlinux-keyring
-
Install the base system
-
pacstrap -i /mnt base base-devel linux linux-firmware linux-headers amd-ucode Intel-ucode
-
Generate fstab (w/ UUID)
-
genfstab -U /mnt > /mnt/etc/fstab
-
cat /mnt/etc/fstab
-
chroot
-
arch-chroot /mnt /bin/bash
-
Select a mirror
-
pacman -S reflector rsync
-
reflector --verbose --country 'United States' -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist
-
Update
-
pacman -Syu
-
pacman -Sy fish vim
-
cd /usr/bin; rm vi; ln -s vim vi
-
Locale
-
vi /etc/locale.gen and uncomment en_US.UTF-8 UTF-8
-
locale-gen
-
echo LANG=en_US.UTF-8 > /etc/locale.conf
-
Time
-
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
-
hwclock --systohc --utc
-
Hostname
-
echo '{$hostname}' > /etc/hostname
-
Root
-
passwd
-
Boot Loader
-
systemd-boot (gummiboot)
-
bootctl —path=/boot install
-
vi /boot/loader/entries/arch.conf
-
title Arch Linux
-
linux /vmlinuz-linux
-
initrd /initramfs-linux.img
-
options root=/dev/sda2 rw
-
vi /boot/loader/loader.conf
-
timeout 3
-
default arch
-
Notes
-
$esp = /boot if you’ve mounted things as I have (should be where the EFI folder is)
-
you need to boot from the boot stick as UEFI I order for UEFI to work
-
See also: ArchWiki:Archive - ArchWiki
-
You could use grub but it’s more of a PITA
-
GRUB UEFI - refuses to boot properly…
-
pacman -S dosfstools grub os-prober efibootmgr
-
grub-install —target=x86_64-efi —efi-directory=/boot —bootloader-id=grub —recheck
-
grub-mkconfig -o /boot/grub/grub.cfg
-
efibootmgr -v
-
Network Setup
-
Here’s a basic thing you could do:
-
Wired on startup
-
systemctl enable dhcpcd
-
Wireless
-
pacman -S dialog
-
wifi-menu
-
To simply start up the network once
-
ip link to get your network devices
-
ip link set {$interface_name} up to bring it up
-
dhcpcd {$interface_name} to get a dhcp lease
-
Lets save ourselves some trouble and set up NetworkManager now though (otherwise you will need to systemctl --type=service and systemctl disable other network services)
-
pacman -S networkmanager
-
sudo systemctl enable NetworkManager
-
sudo systemctl start NetworkManager
-
Network Accessibility
-
pacman -S openssh
-
systemctl enable sshd
-
systemctl start sshd
-
pacman -S avahi nss-mdns
-
vi /etc/nsswitch.conf and append mdns to the hosts: line
-
sudo systemctl enable avahi-daemon.service
-
sudo systemctl start avahi-daemon.service
-
Reference: Avahi - ArchWiki
-
Install optional Packages
-
Honestly, we can do most of the stuff we know we want or need now, or we can just reboot and do w/ it once we’re not in chroot (make a user of course)
-
Reboot
-
exit
-
umount -R /mnt
-
reboot
-
Reference
-
useradd -m -G wheel -s /usr/bin/fish lhl
-
passwd lhl
-
visudo
-
uncomment %wheel ALL=(ALL) ALL
-
makepkg won’t run as root so you need to make a local user first
-
Reference
-
Set up keys so packages will build
-
gpg —list-keys
-
makes sure your current user has a gpg database
-
echo ‘keyring /etc/pacman.d/gnupg/pubring.gpg’ >> ~/.gnupg/gpg.conf
-
Reference
-
Get Packages (as user)
-
sudo pacman -S git wget curl perl yajl expac bash-completion
-
cower
wget https://aur.archlinux.org/cgit/aur.git/snapshot/cower.tar.gz
tar xvfz cower.tar.gz
cd cower
makepkg
sudo pacman -U cower-{$version}.pkg.tar.xz
-
No longer needed but if you need to add keys…
-
$ gpg --recv-key 1EB2638FF56C0C53
-
gpg: key F56C0C53: public key "Dave Reisner [email protected]" imported
-
gpg: no ultimately trusted keys found
-
gpg: Total number processed: 1
-
gpg: imported: 1
-
makepkg requires /usr/bin/core_perl in the path
-
bash export PATH=/usr/bin:/usr/local/bin:/usr/bin/core_perl
-
fish set PATH /usr/bin /usr/local/bin /usr/bin/core_perl
-
pacaur
wget https://aur.archlinux.org/cgit/aur.git/snapshot/pacaur.tar.gz
tar xvfz pacaur.tar.gz
cd pacaur
makepkg
sudo pacman -U pacaur-{$version}.pkg.tar.xz
- We can now use pacaur instead of pacman to install both official arch and unofficial AUR packages.
NTFS is the best choice for data drives as it is the only modern FS that has support on Linux, OSX, and Windows.
-
pacaur -S ntfs-3g
-
NTFS doesn’t support POSIX permissions well for cross-platform mounts
-
Will fail to mount rw if there’s leftover metadata or other issues, usually fixable by ntfsfix
-
Rather than adding to fstab, better to use a custom script for mounting which will try to run ntfsfix (called via rc.local systemd oneshot - see rc.local section)
-
See also: Don’t use ntfsfix in Linux, just turn off Fast Boot in Windows « Arch Linux
-
Reference: NTFS-3G - ArchWiki
- pacaur -S btrfs-progs dosfstools exfat-utils f2fs-tools fuse-exfat gdisk gpart gparted ms-sys mtools nilfs-utils
- Note Linux can only mount journaled HFS+ partitions as read-only
-
Use: rc.local in Arch Linux (systemd) | Some Notes on the Machines
-
/etc/systemd/system/rc-local.service can't be symlink, doesn’t work, don't know why
-
sudo systemctl enable rc-local.service
-
Make sure /etc/rc.local is an executable script (this can be a symlink)
-
Alternatively: AUR (en) - rc-local
systemd-timesyncd might not work w/o systemd-networkd - this doesn’t necessarily play well with networkmanager
-
sudo timedatectl set-ntp true
-
sudo timedatectl status
-
Uncomment NTP in /etc/systemd/timesyncd.conf if necessary
-
Reference
-
http://xmodulo.com/switch-from-networkmanager-to-systemd-networkd.html
Alternative
- pacaur -S ntpdate
- sudo ntpdate -s time.nist.gov
-
Intel
-
pacaur -S intel-ucode
-
AMD
-
pacaur -S amd-ucode
-
Grub
# grub-mkconfig -o /boot/grub/grub.cfg
-
gummiboot
-
Add initrd /intel-ucode.img before other initrd in /boot/loader/entries/arch.conf
If laptop:
-
pacaur -S ethtool lm_sensors lsb-release smartmontools tlp tp_smapi x86_energy_perf_policy
-
pacaur -S powertop
-
sudo systemctl enable tlp.service
-
sudo systemctl enable tlp-sleep.service
-
sudo tlp start
-
Stats
-
4.6W idle w/ Lenovo X250 (i7-5600 2.6GHz, 8GB RAM, 512GB SSD) @ 30% backlight, 5GHz Wifi (70/70 quality, -22dB)
-
mjg59 | Reducing power consumption on Haswell and Broadwell systems
-
Wait for v4.2 kernel for better power? currently when idle, state is in pc6, 0% pc7
-
powertune --auto-tune increases discharge rate for some reason, but worth testing
-
Reference
If you have weird hardware, this may be an issue…
-
Reference
-
Find out what HW you have
-
lspci -k for PCI, or for USB lsusb -v
-
Broadcom
-
While there are open source drives, broadcom-wl (restricted) is supposedly the most stable. You will need to wait until setting up pacaur to install those (dkms version makes kernel upgrades less likely to break things)
-
pacaur -S broadcom-wl-dkms
-
If you don’t have wired ethernet or a USB wireless interface you will need to use the offline installation instructions:
-
modprobe wl
-
Realtek
-
Some Realtek drivers should be in the mainline kernel. If not
-
pacaur -S dkms linux-headers
-
Search for appropriate drivers AUR (en) - Packages
-
Kernel Upgrades
-
Regular
-
pacaur -S broadcom-wl
-
sudo modprobe wl
-
DKMS
-
While dkms is listed as less likely to break things, this hasn’t been the case for me. If you upgrade the kernel, you will probably want to pacuar -R broadcom-wl-dkms and pacaur -S broadcom-wl-dkms to reinstall before rebooting
-
If not you probably can do the following:
-
dkms status
-
sudo dkms remove broadcom-wl/6.30.233.271 --all
-
this should be whatever version is listed
-
sudo dkms build broadcom-wl/6.30.233.271
-
sudo dkms install broadcom-wl/6.30.233.271
-
sudo systemctl restart dkms.service
-
modprobe wl
-
If this doesn’t work a reboot might help
-
If that doesn’t work, you’re going to need to want to either remove/install broadcom-wl-dkms from a hard line or copy the package over sneakernet. Terrible I know.
-
lspci | grep VGA
-
Intel
-
pacaur -S xf86-video-intel
-
Nvidia
-
pacaur -S nvidia nvidia-libgl nvidia-settings nvidia-utils cuda
-
Reference: NVIDIA - ArchWiki
-
AMD
-
pacaur -S amdgpu-pro
-
yay -S xf86-video-amdgpu
-
OpenCL stuff
-
pacaur -S opencl-headers ocl-icd opencl-amd amdapp-sdk
-
You may need to pacaur -Se amdapp-sdk and fix a dangling symlink: Remove dangling symlink before operating on it · cviebig/arch-aur-amdapp-sdk@97fde4b · GitHub
-
Reference
-
pacaur -Syu
-
pacaur -S cpio lbzip2 links lsof lzop mlocate net-tools openssh p7zip rsync sift the_silver_searcher time unace unrar unzip wireless_tools xz zip
-
pacaur -S bind-tools
-
pacaur -S python2 python2-setuptools
-
sudo easy_install-2.7 pip
-
pacaur -S python python-setuptools
-
sudo easy_install pip
-
CLI niceness
-
pacaur -S fish
-
chsh -s /usr/bin/fish
-
pacaur -S byobu
-
sudo pip install powerline-status psutil
-
pacaur -S python-pygit2
-
mdns
-
pacaur -S avahi nss-mdns
-
vi /etc/nsswitch.conf and append mdns to the hosts: line
-
sudo systemctl enable avahi-daemon.service
-
sudo systemctl start avahi-daemon.service
-
Reference: Avahi - ArchWiki
-
Arch feedback
-
pacaur -S pkgstats
-
pacaur -S dstat htop nmon
-
pacaur -S bmon iftop nbwmon nethogs nload slurm vnstat wavemon
-
pacaur -S baobab
-
sudo pip install glances
-
pacaur -S xorg xorg-server xorg-server-utils xorg-server-xephyr
-
sudo nvidia-xconfig
-
Be sure to add Option "NoLogo" to the /etc/X11/xorg.conf if you don't want the logo to flash w/ an Nvidia card
- pacaur -S lightdm lightdm-gtk-greeter accountsservice
- systemctl enable lightdm.service
-
WM & Friends
-
pacaur -S compton gnome-keyring gsimplecal hsetroot openbox network-manager-applet scrot tint2
-
Fonts (infinality-bundle)
-
infanility is dead. here’s how to remove it:
pacaur -S cairo
pacaur -S fontconfig
pacaur -S pkgbrowser
pacaur -Rns ibfonts-meta-extended
pacaur -S gsfonts
pacaur -S ttf-dejavu
pacaur -S cantarell-fonts
pacaur -S tt-droid
pacaur -S ttf-liberation
# Remove/replace rest of the fonts
pacaur -S fonts-meta-extended-lt
ln -s /etc/fonts/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d
ln -s /etc/fonts/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d
-
Powerline Fonts
-
git clone https://github.com/powerline/fonts.git
-
cd fonts; ./install.sh; cd ..; rm -rf fonts
-
Terminal
-
pacaur -S rxvt-unicode termite
-
File Manager (including iOS + Android support)
-
pacaur -S gvfs gvfs-afc gvfs-gphoto2 gvfs-mtp mtpfs thunar thunar-volman thunar-archive-plugin thunar-media-tags-plugin tumbler usbmuxd xarchiver
-
Clipboard Manager
-
pacaur -S copyq clipit
-
Notifications
-
pacaur -S dunst
-
Launcher
-
pacaur -S bc pastebinit albert
-
Search (recoll may be better, will test if it ever becomes a need/problem)
-
pacaur -S tracker
-
tracker daemon -s
-
tracker status
-
tracker-needle for search gui
-
pacaur -S ripgrep
-
Sound
-
pacaur -S alsa-utils pulseaudio pulseaudio-alsa pavucontrol pnmixer
-
Chromium
-
pacuar -S chromium
-
Google Chrome
-
pacaur -S google-chrome
-
pacaur -S google-chrome-beta
-
Firefox
-
pacaur -S firefox
-
Firefox Developer (use Firefox dependencies)
-
the AUR is broken and we want regular updates anyway
wget https://download.mozilla.org/?product=firefox-devedition-latest-ssl&os=linux64&lang=en-US
-
see also: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora/
-
tar xvfj firefox-{$version}.en-US.linux-x86_64.tar.bz2
-
sudo mv firefox /opt/firefox-developer
-
sudo ln -s /opt/firefox-developer/firefox /usr/bin/firefox-developer
-
Flash for Firefox
-
pacaur -S freshplayerplugin-git
-
Chek version: http://www.adobe.com/software/flash/about/
-
H.264 for Firefox
-
pacaur -S gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-ugly
-
about:config
-
media.gstreamer.enabled=true
-
media.mediasource.enabled=true
-
media.mediasource.mp4.enabled=true
-
media.mediasource.webm.enabled=true
-
Check support: https://www.youtube.com/html5
-
Firefox Developer Edition has issues w/ H.264
-
Google Talk
-
pacuar -S google-talkplugin
-
Set Default Browser
-
xdg-settings set default-web-browser google-chrome-beta.desktop
-
Settings are in ~/.config/mimeapps.list
-
You can debug via:
-
bash -x xdg-open http://www.google.com
-
General
-
pacaur -S gvim
-
make sure .vimrc is installed (see config)
-
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
-
vim +PluginInstall +qall
-
pacaur -S npm
-
sudo npm install http-server -g
-
pacaur -S racket
-
sudo pip install httpie
-
sudo pip install ipython[notebook]
-
Lensley
-
sudo easy_install-2.7 pip
-
sudo pip2 install envoy ll-xist==3.25 pycurl pyserial python-memcached
-
pacaur -S imagemagick openjpeg2
-
pacaur -S mysql-workbench
-
VR
-
pacaur -S unity-editor
-
pacaur -S osvr-core-git osvr-libfunctionality-git osvr-oculus-rift-git osvr-steamvr-git osvr-tracker-viewer-git
-
ARM
-
pacaur -S debootstrap qemu-user-static binfmt-support
-
uncomment [multilib] in /etc/pacman.conf
-
pacaur -Syu
-
pacaur -S wine winetricks lib32-alsa-lib lib32-alsa-plugins lib32-mpg123 lib32-libpulse lib32-gnutls samba
-
winetricks allfonts
-
wine 1Password-4.6.0.585.exe
-
where 1Password... is the installer
-
To run 1Password
-
wine 'C:\Program Files (x86)\1Password 4\1Password.exe'
-
see ~/.local/share/applications/wine/Programs/1Password/1Password 4.desktop
-
Browser plugin
-
Disable signature validation in 1Password > Help > Advanced
-
Install as Normal (ie via Extension Stores)
-
To autostart 1Password Helper
-
Add to .config/openbox/autostart
-
wine 'C:\Program Files (x86)\1Password 4\Agile1pAgent.exe'
-
See also:
-
Protocol
-
https://discussions.agilebits.com/discussion/2936/chrome-extension-on-linux/p2
-
http://niels.kobschaetzki.net/blog/2014/07/10/1password-4-in-linux/
-
New Product Request: 1Password for Linux [In Progress] - Page 9 — 1Password Support Community
-
Images
-
pacaur -S eog gthumb qiv
-
pacaur -S evince mcomix
-
pacaur -S gimp
-
pacaur -S okular
-
Music
-
pacaur -S clamz moc-svn mopidy mopidy-spotify spotify
-
Spotify may have issues w/ the AUR (2017-04-25)
gpg --recv-keys --keyserver hkp://pgp.mit.edu D9C4D26D0E604491
gpg --recv-keys --keyserver hkp://pgp.mit.edu 5CC908FDB71E12C2
pacaur -S libopenssl-1.0-compat libcurl-openssl-1.0
cd ~/.cache/pacaur/spotify
git clean -fdx
git pull origin # cheers agm28011997
git checkout 226c803
-
Reference:
-
Video
-
pacaur -S atomicparsley ffmpeg rtmpdump gnome-vfs gst-libav gst-plugins-bad gst-plugins-good libva-vdpau-driver libmtp lua-socket mpv vlc youtube-dl
-
new versions of vlc may segfault w/o intel-ucode update
- pacaur -S slack-desktop
-
pacaur -S dropbox dropbox-cli thunar-dropbox
-
Reference: Dropbox - ArchWiki
-
MAX file watches
-
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
-
Install
-
vi /etc/pacman.conf and enable [multilib] and [multilib-testing]
-
pacaur -S android-sdk android-sdk-platform-tools android-sdk-build-tools android-studio android-udev
-
infinality bundles preferred but maybe not available?
-
Permissions for sdk manager updates
-
sudo chown -R :lhl /opt/android-sdk
-
sudo chmod -R g+w /opt/android-sdk
-
Fix Fonts
-
sudo vi /opt/android-studio/bin/studio64.vmoptions
-
-Dawt.useSystemAAFontSettings=on
-
Reference: Android - ArchWiki
- pacaur -S steam
- requires multilib
-
pacaur -S bluez bluez-firmware bluez-libs bluez-utils pulseaudio-alsa pulseaudio-bluetooth
-
pacaur -S blueman
-
Notes
-
depending on your tlp settings, you may need to rfkill list and rfkill unblock bluetooth to enable Bluetooth. You can change settings in /etc/default/tlp
-
Once bluetooth is enabled, blueman-applet works great for searching, pairing, and setting up devices as an audio sink.
-
See: http://askubuntu.com/questions/180744/how-to-enable-hard-blocked-bluetooth-in-thinkpad-edge-320
-
Reference
-
name change in progress: Bluetooth headphones and Arch Linux: the endless battle
-
Autostart (on boot)
-
For advanced BT audio support use pulseaudio-modules-bt-git
-
https://aur.archlinux.org/packages/pulseaudio-modules-bt-git/
Sony MDR-1000XM3 Setup
## Requires pulseaudio-modules-bt-git (w/ libldac)
# echo 'load-module module-bluetooth-discover a2dp_config="ldac_eqmid=hq"' >> /etc/pulse/default.pa
# echo 'load-module module-bluez5-discover a2dp_config="ldac_eqmid=sq"' >> /etc/pulse/default.pa
$ pulseaudio -k; pulseaudio --start
# Reconnect w/ blueman or bluetoothctl
$ pactl list sinks | grep -e bluez -e a2dp_codec
Name: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink
Driver: module-bluez5-device.c
Monitor Source: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink.monitor
bluetooth.a2dp_codec = "LDAC"
device.api = "bluez"
bluez.path = "/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX"
bluez.class = "0x240404"
bluez.alias = "WH-1000XM3"
pacaur -S all-repository-fonts
pacaur -S nerd-fonts-git
See also: https://aur.archlinux.org/packages/ttf-google-fonts-git/
(updated too often to install)
pacaur -S cups cups-pdf
systemctl enable org.cups.cupsd
systemctl start org.cups.cupsd
### Add user to sys to be able to lpinfo as user (vigr, vigr -s)
# https://willhaley.com/blog/printing-in-arch-linux/
# https://wiki.archlinux.org/index.php/CUPS/Troubleshooting#Bad_permissions
/etc/udev/rules.d/10-dymo.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0922", ATTRS{idProduct}=="1001", MODE="0664", GROUP="lp", OWNER="lhl"
udevadm control --reload-rules
# replug device
# to check lsusb to get device bus etc, the ls -l /dev/bus/usb/[bus] to make sure permissions are correct
Dropbox Paper
Papyrus
Wunderlist
Wunderlistux
- Run installer script (be sure to review it yourself)
cd /usr/local/bin
sudo ln -s /opt/wunderlistux/Wunderlistux
Facebook Messenger
Messenger for Desktop
Caprine
GitHub - sindresorhus/caprine: Elegant Facebook Messenger desktop app
Evernote
Whatever
GitHub - sbrshk/whatever: An unofficial Evernote desktop client for Linux
-
Setup .ssh keys
-
Clone private dotfiles repo
-
Checkout onto home/local volume in case /data doesn’t mount
-
Symlink config
-
mv .config .config.local
-
ln -s dotfiles/common/config .config
breaks w/ every kernel update
pacaur -S broadcom-wl
sudo modprobe wl
if you have verification issues
https://aur.archlinux.org/packages/ncurses5-compat-libs/
gpg --keyserver pgp.mit.edu --recv-keys F7E48EDB
Compton not working
- glx issue, check w/ glxinfo | grep OpenGL to see what’s up
- no glx, bwaa, is it the nvidia drivers?
- try nvidia-beta nvidia-libgl-beta
- yep, that fixed it, isn’t that a bitch?
-
Clipboard Manager - function like ClipMenu
-
Clipit is not as nice as [ClipMenu for OS X](http://ClipMenu for OS X). GPaste looks good but requires a bajillion packages (and then the AUR fails to build).
-
gpaste
-
pacaur -S gobject-introspection
-
pacaur -S gpaste-git
-
SSB
-
Make it easy to launch executables
-
Better work on the favicon.ico
-
Sound
-
Smartly adjust volume and output (headphone, speaker, bluetooth speaker)
ip link set enp0s25 up
ip addr add 192.168.2.2/24 broadcast 192.168.2.255 dev enp0s25
ip route add default via 192.168.2.1
DNS
Domain name resolution - ArchWiki
echo 'nameserver 8.8.8.8' >> /etc/resolve.conf
1Password
-
1Password Anywhere
-
put into rc.local:
-
/usr/bin/http-server -p 8000 /data/Dropbox/1Password.agilekeychain &
-
vs keepass url next</title><title>price drop
-
https://itunes.apple.com/en/app/minikeepass-secure-password/id451661808?mt=8
Issues appear to be w/ the USB port itself…
-
If experiencing hangs while transferring files, this may be due to bugs with the UAS (USB Attached SCSI) system
-
debug (see hangups/resets) w/ journalctl -f
-
Disable the UAS module
-
sudo echo ‘blacklist uas’ > /etc/modprobe.d/usb3-drives.conf
-
See also:
-
Arch Linux ARM • View topic - [solved]system hang after attached USB hard disk
-
http://electronicdesign.com/embedded/whats-difference-between-usb-uasp-and-bot
http://blog.goodstuff.im/1password
GitHub - robbiev/multipass-chrome: Unofficial 1Password Chrome extension
http://www.lucianofiandesio.com/1password-in-linux
Network Sharing
dnsmasq
Advanced traffic control - ArchWiki
Arch Linux - netbrake 0.2-7 (x86_64)
Best Open Source Linux Software 2022
Wunderlist
Evernote
- pacaur -S nixnote-beta
geeknote-improved-git
-
pacaur -S lib32-gnutls samba
-
Notes:
-
Missing or broken libgnutls library | Knowledge Base | CodeWeavers
-
[SOLVED] ntlm_auth errors / Networking, Server, and Protection / Arch Linux Forums
SSB
https://aur.archlinux.org/packages/fogger-bzr/
GitHub - rubiojr/bottles: Turn Your Web Apps into Real Linux Apps :)
Übersicht for Linux
https://launchpad.net/~m-buck/+archive/ubuntu/gtk-desktop-info
https://code.launchpad.net/~m-buck/+junk/gtk-desktop-info
http://ubuntuforums.org/showthread.php?t=1010808
http://bloc.eurion.net/archives/2009/standalone-pygtk-desktop-widgets/
Almost works...
Dead project.
https://en.wikipedia.org/wiki/Screenlets
-
screenlets
-
pacaur -S python2-feedparser python2-pillow python2-pytz python2-numpy screenlets screenlets-pack-basic
-
sudo gdk-pixbuf-query-loaders --update-cache
-
sudo gtk-update-icon-cache -t -f /usr/share/icons/hicolor
byobu++
automated terminal management and history
Power Management
See also:
https://github.com/uncon/wiki/blob/master/arch_linux/xps13.md
Figure out
LemonBar
https://www.linux.org.ru/gallery/11843658.png
http://i.imgur.com/cVPylyx.png
Aliases
https://www.reddit.com/r/archlinux/comments/3sh9q4/what_aliasesbash_functions_do_you_use_to_that/
Fixing Tearing
this seems to work: [SOLVED] Tearless compositing. / Applications & Desktop Environments / Arch Linux Forums
see also:
[SOLVED] Nvidia tearing / Applications & Desktop Environments / Arch Linux Forums
graphics - Why is video tearing such a problem in Linux? - Unix & Linux Stack Exchange
Evernote w/ Wine
//
// winetricks wininet
// Evernote Cannot Connect To Internet - WineHQ Forums
pacaur -S lib32-openssl098
pacaur -S openssl098
// http://comments.gmane.org/gmane.comp.emulators.wine.bugs/396702
Time Zone switching
timedatectl set-timezone America/Los_Angeles
pacaur -S xautolock
Add to .xinitrc
xautolock -time 15 -locker 'systemctl suspend' -notify [margin] -notifier [notifier] &
Allow users to shutdown - ArchWiki
Don’t Lock if watching video:
-
locker calls script
-
script checks for video playing or app whitelist
-
fullscreen
-
or just when sound is active
cat /proc/asound/card*/pcm*/sub*/status | grep RUNNING
pacmd list-sink-inputs
-
bash - How to detect that the sound is currently playing in Linux? - Stack Overflow
-
ubuntu 11.10 - Detecting audio playing in a bash script - Super User
-
linux - Testing if audio devices / sound cards are currently playing? - Unix & Linux Stack Exchange
-
file operation
-
dstat? - raw amount
-
atop or iotop for process
-
Another option is to use: sudo iotop -aoP
-a Will show accumulated output
-o Will only output
-P Will only show processes instead of threads
-
This program will tell you how much a process has written to disk and read from disk since iotop was started.
-
http://serverfault.com/questions/169676/howto-check-disk-i-o-utilisation-per-process
-
How to check progress of running cp? - Unix & Linux Stack Exchange
-
linux - Determine if file is in the process of being written upon? - Server Fault
-
process - How can I pause/resume rsync - Unix & Linux Stack Exchange
-
linux - Move file but only if it's closed - Unix & Linux Stack Exchange
html - How can I determine if HTML5 player is running in browser? - Stack Overflow
Adapt lightsOn/lightsOn.sh at master · iye/lightsOn · GitHub
https://gist.github.com/boarpig/8118854
suspend/hibernate
Archlinux enabling hibernation - Programmable Production
https://feeding.cloud.geek.nz/posts/creating-a-modern-tiling-desktop-environment-using-i3/
Hibernate when i press power button / Newbie Corner / Arch Linux Forums
Notifications
GitHub - sboli/twmn: A notification system for tiling window managers
notify-send
http://www.knopwob.org/dunst/screenshots.html
GitHub - halhen/statnot: Status / Notification system for lightweight Window Managers
Moom/Resizer
- easy commands / help/kb shortcut to resize windows, smaller, left half etc
Styling Notifications
Themes/Stendhal at master · tatou-tatou/Themes · GitHub
https://www.reddit.com/r/unixporn/comments/3eqxba/i3gaps_gruvbox_inspired/
GitHub - zachbwh/bspwm_rice: My configs that I use for my bspwm environment
GitHub - atweiden/dotfiles: Dotfiles
https://github.com/knopwob/dunst/issues/114
https://nildeala.fr/2013/02/16/dunst-notifications-minimalistes-et-elegantes.html
https://www.reddit.com/r/unixporn/comments/3otrjh/i3gaps_got_bored_of_using_the_gruvbox_setup_for/
GitHub - TomboFry/dotfiles: [WIP] XTerm/urxvt/st, Oh-my-Zsh, Vim
https://plus.google.com/106152149097741431219/posts/f48dhBiRtpg
https://m.reddit.com/r/unixporn/comments/46g091
http://www.gulfweb.net/rlwalker/astronomy/calendar/GoogleCalendarSearchCommandLine.htm
GitHub - magdeoz/dotfiles: dotfiles, bspwm, lemobar, ranger, X
dotbot-user-study/jubnzv-dotfiles_install.conf.yaml at master · casey/dotbot-user-study · GitHub
-
Can’t have a ‘.’ in the filename
-
Need to be chmod a+x along path
-
need to be own by root# Arch Linux Install
Personal Install Guide/Notes. May be useful for you if you are experienced w/ Linux
-
Download ISO
-
From: Arch Linux - Downloads
-
Directly: Index of /archlinux/iso/latest/
-
Check Signature
-
gpg --verify archlinux-xxx.iso.sig archlinux-xxx.iso
-
Write to USB stick
-
lsblk -l
-
dd bs=4M if=archlinux.iso of=/dev/sdb && sync
-
run as root
-
/dev/sdb should be USB drive
-
you can double check device w/ fdisk -l
-
See Reference
-
High level, bare bones
-
More detailed, but lots of links
-
A complete personal guide
-
Get a network connection
-
ip link to get device
-
systemctl restart dhcpcd.service for hardline
-
WiFi (uses iwctl)
-
device list
-
station [wlan0] scan
-
station [wlan0] get-networks
-
station [wlan0] connect [SSID]
-
Make sure your clock is OK
-
timedatectl set-ntp true
-
timedatectl status
-
Figure out your storage devices
-
Blah blah blah: Installation guide - ArchWiki
-
lsblk -f
-
fdisk -l
-
cfdisk
-
Make File Systems and Mount
-
Traditional swap + ext4 + swap
-
mkfs.ext4 /dev/sda2
-
mkswap /dev/sda3
-
swapon /dev/sda3
-
mount /dev/sda2 /mnt
-
mkdir -p /mnt/boot
-
mkfs.fat -F32 /dev/sda1 (make sure partition type is set to EFI System in cfdisk)
-
mount /dev/sda1 /mnt/boot
-
EFI partition
-
Encrypted BTRFS + encrypted swap
-
cfdisk to gpt and make volumes
-
mkfs.vfat -F32 -n "EFI" /dev/nvme0n1p1
-
mkswap -L swap /dev/nvem0n1p2
-
cryptsetup luksFormat /dev/nvme0n1p3
cryptsetup open /dev/nme0n1p3 btrfs
mkfs.btrfs -L "arch" /dev/mapper/btrfs
mount /dev/mapper/btrfs /mnt
mount /dev/mapper/btrfs /mnt
cd /mnt
-
See:
-
Installing Arch Linux with an encrypted btrfs root, with GPT and UEFI support · GitHub
-
Make sure your arch key ring is up to date
-
pacman -S
-
pacman -S archlinux-keyring
-
Install the base system
-
pacstrap -i /mnt base base-devel linux linux-firmware linux-headers amd-ucode Intel-ucode
-
Generate fstab (w/ UUID)
-
genfstab -U /mnt > /mnt/etc/fstab
-
cat /mnt/etc/fstab
-
chroot
-
arch-chroot /mnt /bin/bash
-
Select a mirror
-
pacman -S reflector rsync
-
reflector --verbose --country 'United States' -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist
-
Update
-
pacman -Syu
-
pacman -Sy fish vim
-
cd /usr/bin; rm vi; ln -s vim vi
-
Locale
-
vi /etc/locale.gen and uncomment en_US.UTF-8 UTF-8
-
locale-gen
-
echo LANG=en_US.UTF-8 > /etc/locale.conf
-
Time
-
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
-
hwclock --systohc --utc
-
Hostname
-
echo '{$hostname}' > /etc/hostname
-
Root
-
passwd
-
Boot Loader
-
systemd-boot (gummiboot)
-
bootctl —path=/boot install
-
vi /boot/loader/entries/arch.conf
-
title Arch Linux
-
linux /vmlinuz-linux
-
initrd /initramfs-linux.img
-
options root=/dev/sda2 rw
-
vi /boot/loader/loader.conf
-
timeout 3
-
default arch
-
Notes
-
$esp = /boot if you’ve mounted things as I have (should be where the EFI folder is)
-
you need to boot from the boot stick as UEFI I order for UEFI to work
-
See also: ArchWiki:Archive - ArchWiki
-
You could use grub but it’s more of a PITA
-
GRUB UEFI - refuses to boot properly…
-
pacman -S dosfstools grub os-prober efibootmgr
-
grub-install —target=x86_64-efi —efi-directory=/boot —bootloader-id=grub —recheck
-
grub-mkconfig -o /boot/grub/grub.cfg
-
efibootmgr -v
-
Network Setup
-
Here’s a basic thing you could do:
-
Wired on startup
-
systemctl enable dhcpcd
-
Wireless
-
pacman -S dialog
-
wifi-menu
-
To simply start up the network once
-
ip link to get your network devices
-
ip link set {$interface_name} up to bring it up
-
dhcpcd {$interface_name} to get a dhcp lease
-
Lets save ourselves some trouble and set up NetworkManager now though (otherwise you will need to systemctl --type=service and systemctl disable other network services)
-
pacman -S networkmanager
-
sudo systemctl enable NetworkManager
-
sudo systemctl start NetworkManager
-
Network Accessibility
-
pacman -S openssh
-
systemctl enable sshd
-
systemctl start sshd
-
pacman -S avahi nss-mdns
-
vi /etc/nsswitch.conf and append mdns to the hosts: line
-
sudo systemctl enable avahi-daemon.service
-
sudo systemctl start avahi-daemon.service
-
Reference: Avahi - ArchWiki
-
Install optional Packages
-
Honestly, we can do most of the stuff we know we want or need now, or we can just reboot and do w/ it once we’re not in chroot (make a user of course)
-
Reboot
-
exit
-
umount -R /mnt
-
reboot
-
Reference
-
useradd -m -G wheel -s /usr/bin/fish lhl
-
passwd lhl
-
visudo
-
uncomment %wheel ALL=(ALL) ALL
-
makepkg won’t run as root so you need to make a local user first
-
Reference
-
Set up keys so packages will build
-
gpg —list-keys
-
makes sure your current user has a gpg database
-
echo ‘keyring /etc/pacman.d/gnupg/pubring.gpg’ >> ~/.gnupg/gpg.conf
-
Reference
-
Get Packages (as user)
-
sudo pacman -S git wget curl perl yajl expac bash-completion
-
cower
wget https://aur.archlinux.org/cgit/aur.git/snapshot/cower.tar.gz
tar xvfz cower.tar.gz
cd cower
makepkg
sudo pacman -U cower-{$version}.pkg.tar.xz
-
No longer needed but if you need to add keys…
-
$ gpg --recv-key 1EB2638FF56C0C53
-
gpg: key F56C0C53: public key "Dave Reisner [email protected]" imported
-
gpg: no ultimately trusted keys found
-
gpg: Total number processed: 1
-
gpg: imported: 1
-
makepkg requires /usr/bin/core_perl in the path
-
bash export PATH=/usr/bin:/usr/local/bin:/usr/bin/core_perl
-
fish set PATH /usr/bin /usr/local/bin /usr/bin/core_perl
-
pacaur
wget https://aur.archlinux.org/cgit/aur.git/snapshot/pacaur.tar.gz
tar xvfz pacaur.tar.gz
cd pacaur
makepkg
sudo pacman -U pacaur-{$version}.pkg.tar.xz
- We can now use pacaur instead of pacman to install both official arch and unofficial AUR packages.
NTFS is the best choice for data drives as it is the only modern FS that has support on Linux, OSX, and Windows.
-
pacaur -S ntfs-3g
-
NTFS doesn’t support POSIX permissions well for cross-platform mounts
-
Will fail to mount rw if there’s leftover metadata or other issues, usually fixable by ntfsfix
-
Rather than adding to fstab, better to use a custom script for mounting which will try to run ntfsfix (called via rc.local systemd oneshot - see rc.local section)
-
See also: Don’t use ntfsfix in Linux, just turn off Fast Boot in Windows « Arch Linux
-
Reference: NTFS-3G - ArchWiki
- pacaur -S btrfs-progs dosfstools exfat-utils f2fs-tools fuse-exfat gdisk gpart gparted ms-sys mtools nilfs-utils
- Note Linux can only mount journaled HFS+ partitions as read-only
-
Use: rc.local in Arch Linux (systemd) | Some Notes on the Machines
-
/etc/systemd/system/rc-local.service can't be symlink, doesn’t work, don't know why
-
sudo systemctl enable rc-local.service
-
Make sure /etc/rc.local is an executable script (this can be a symlink)
-
Alternatively: AUR (en) - rc-local
systemd-timesyncd might not work w/o systemd-networkd - this doesn’t necessarily play well with networkmanager
-
sudo timedatectl set-ntp true
-
sudo timedatectl status
-
Uncomment NTP in /etc/systemd/timesyncd.conf if necessary
-
Reference
-
How to switch from Network Manager to systemd-networkd on Linux
Alternative
- pacaur -S ntpdate
- sudo ntpdate -s time.nist.gov
-
Intel
-
pacaur -S intel-ucode
-
AMD
-
pacaur -S amd-ucode
-
Grub
# grub-mkconfig -o /boot/grub/grub.cfg
-
gummiboot
-
Add initrd /intel-ucode.img before other initrd in /boot/loader/entries/arch.conf
If laptop:
-
pacaur -S ethtool lm_sensors lsb-release smartmontools tlp tp_smapi x86_energy_perf_policy
-
pacaur -S powertop
-
sudo systemctl enable tlp.service
-
sudo systemctl enable tlp-sleep.service
-
sudo tlp start
-
Stats
-
4.6W idle w/ Lenovo X250 (i7-5600 2.6GHz, 8GB RAM, 512GB SSD) @ 30% backlight, 5GHz Wifi (70/70 quality, -22dB)
-
mjg59 | Reducing power consumption on Haswell and Broadwell systems
-
Wait for v4.2 kernel for better power? currently when idle, state is in pc6, 0% pc7
-
powertune --auto-tune increases discharge rate for some reason, but worth testing
-
Reference
If you have weird hardware, this may be an issue…
-
Reference
-
Find out what HW you have
-
lspci -k for PCI, or for USB lsusb -v
-
Broadcom
-
While there are open source drives, broadcom-wl (restricted) is supposedly the most stable. You will need to wait until setting up pacaur to install those (dkms version makes kernel upgrades less likely to break things)
-
pacaur -S broadcom-wl-dkms
-
If you don’t have wired ethernet or a USB wireless interface you will need to use the offline installation instructions:
-
modprobe wl
-
Realtek
-
Some Realtek drivers should be in the mainline kernel. If not
-
pacaur -S dkms linux-headers
-
Search for appropriate drivers AUR (en) - Packages
-
Kernel Upgrades
-
Regular
-
pacaur -S broadcom-wl
-
sudo modprobe wl
-
DKMS
-
While dkms is listed as less likely to break things, this hasn’t been the case for me. If you upgrade the kernel, you will probably want to pacuar -R broadcom-wl-dkms and pacaur -S broadcom-wl-dkms to reinstall before rebooting
-
If not you probably can do the following:
-
dkms status
-
sudo dkms remove broadcom-wl/6.30.233.271 --all
-
this should be whatever version is listed
-
sudo dkms build broadcom-wl/6.30.233.271
-
sudo dkms install broadcom-wl/6.30.233.271
-
sudo systemctl restart dkms.service
-
modprobe wl
-
If this doesn’t work a reboot might help
-
If that doesn’t work, you’re going to need to want to either remove/install broadcom-wl-dkms from a hard line or copy the package over sneakernet. Terrible I know.
-
lspci | grep VGA
-
Intel
-
pacaur -S xf86-video-intel
-
Nvidia
-
pacaur -S nvidia nvidia-libgl nvidia-settings nvidia-utils cuda
-
Reference: NVIDIA - ArchWiki
-
AMD
-
pacaur -S amdgpu-pro
-
yay -S xf86-video-amdgpu
-
OpenCL stuff
-
pacaur -S opencl-headers ocl-icd opencl-amd amdapp-sdk
-
You may need to pacaur -Se amdapp-sdk and fix a dangling symlink: Remove dangling symlink before operating on it · cviebig/arch-aur-amdapp-sdk@97fde4b · GitHub
-
Reference
-
pacaur -Syu
-
pacaur -S cpio lbzip2 links lsof lzop mlocate net-tools openssh p7zip rsync sift the_silver_searcher time unace unrar unzip wireless_tools xz zip
-
pacaur -S bind-tools
-
pacaur -S python2 python2-setuptools
-
sudo easy_install-2.7 pip
-
pacaur -S python python-setuptools
-
sudo easy_install pip
-
CLI niceness
-
pacaur -S fish
-
chsh -s /usr/bin/fish
-
pacaur -S byobu
-
sudo pip install powerline-status psutil
-
pacaur -S python-pygit2
-
mdns
-
pacaur -S avahi nss-mdns
-
vi /etc/nsswitch.conf and append mdns to the hosts: line
-
sudo systemctl enable avahi-daemon.service
-
sudo systemctl start avahi-daemon.service
-
Reference: Avahi - ArchWiki
-
Arch feedback
-
pacaur -S pkgstats
-
pacaur -S dstat htop nmon
-
pacaur -S bmon iftop nbwmon nethogs nload slurm vnstat wavemon
-
pacaur -S baobab
-
sudo pip install glances
-
pacaur -S xorg xorg-server xorg-server-utils xorg-server-xephyr
-
sudo nvidia-xconfig
-
Be sure to add Option "NoLogo" to the /etc/X11/xorg.conf if you don't want the logo to flash w/ an Nvidia card
- pacaur -S lightdm lightdm-gtk-greeter accountsservice
- systemctl enable lightdm.service
-
WM & Friends
-
pacaur -S compton gnome-keyring gsimplecal hsetroot openbox network-manager-applet scrot tint2
-
Fonts (infinality-bundle)
-
infanility is dead. here’s how to remove it:
pacaur -S cairo
pacaur -S fontconfig
pacaur -S pkgbrowser
pacaur -Rns ibfonts-meta-extended
pacaur -S gsfonts
pacaur -S ttf-dejavu
pacaur -S cantarell-fonts
pacaur -S tt-droid
pacaur -S ttf-liberation
# Remove/replace rest of the fonts
pacaur -S fonts-meta-extended-lt
ln -s /etc/fonts/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d
ln -s /etc/fonts/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d
-
Powerline Fonts
-
git clone https://github.com/powerline/fonts.git
-
cd fonts; ./install.sh; cd ..; rm -rf fonts
-
Terminal
-
pacaur -S rxvt-unicode termite
-
File Manager (including iOS + Android support)
-
pacaur -S gvfs gvfs-afc gvfs-gphoto2 gvfs-mtp mtpfs thunar thunar-volman thunar-archive-plugin thunar-media-tags-plugin tumbler usbmuxd xarchiver
-
Clipboard Manager
-
pacaur -S copyq clipit
-
Notifications
-
pacaur -S dunst
-
Launcher
-
pacaur -S bc pastebinit albert
-
Search (recoll may be better, will test if it ever becomes a need/problem)
-
pacaur -S tracker
-
tracker daemon -s
-
tracker status
-
tracker-needle for search gui
-
pacaur -S ripgrep
-
Sound
-
pacaur -S alsa-utils pulseaudio pulseaudio-alsa pavucontrol pnmixer
-
Chromium
-
pacuar -S chromium
-
Google Chrome
-
pacaur -S google-chrome
-
pacaur -S google-chrome-beta
-
Firefox
-
pacaur -S firefox
-
Firefox Developer (use Firefox dependencies)
-
the AUR is broken and we want regular updates anyway
wget https://download.mozilla.org/?product=firefox-devedition-latest-ssl&os=linux64&lang=en-US
-
see also: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora/
-
tar xvfj firefox-{$version}.en-US.linux-x86_64.tar.bz2
-
sudo mv firefox /opt/firefox-developer
-
sudo ln -s /opt/firefox-developer/firefox /usr/bin/firefox-developer
-
Flash for Firefox
-
pacaur -S freshplayerplugin-git
-
Chek version: http://www.adobe.com/software/flash/about/
-
H.264 for Firefox
-
pacaur -S gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-ugly
-
about:config
-
media.gstreamer.enabled=true
-
media.mediasource.enabled=true
-
media.mediasource.mp4.enabled=true
-
media.mediasource.webm.enabled=true
-
Check support: https://www.youtube.com/html5
-
Firefox Developer Edition has issues w/ H.264
-
Google Talk
-
pacuar -S google-talkplugin
-
Set Default Browser
-
xdg-settings set default-web-browser google-chrome-beta.desktop
-
Settings are in ~/.config/mimeapps.list
-
You can debug via:
-
bash -x xdg-open http://www.google.com
-
General
-
pacaur -S gvim
-
make sure .vimrc is installed (see config)
-
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
-
vim +PluginInstall +qall
-
pacaur -S npm
-
sudo npm install http-server -g
-
pacaur -S racket
-
sudo pip install httpie
-
sudo pip install ipython[notebook]
-
Lensley
-
sudo easy_install-2.7 pip
-
sudo pip2 install envoy ll-xist==3.25 pycurl pyserial python-memcached
-
pacaur -S imagemagick openjpeg2
-
pacaur -S mysql-workbench
-
VR
-
pacaur -S unity-editor
-
pacaur -S osvr-core-git osvr-libfunctionality-git osvr-oculus-rift-git osvr-steamvr-git osvr-tracker-viewer-git
-
ARM
-
pacaur -S debootstrap qemu-user-static binfmt-support
-
uncomment [multilib] in /etc/pacman.conf
-
pacaur -Syu
-
pacaur -S wine winetricks lib32-alsa-lib lib32-alsa-plugins lib32-mpg123 lib32-libpulse lib32-gnutls samba
-
winetricks allfonts
-
wine 1Password-4.6.0.585.exe
-
where 1Password... is the installer
-
To run 1Password
-
wine 'C:\Program Files (x86)\1Password 4\1Password.exe'
-
see ~/.local/share/applications/wine/Programs/1Password/1Password 4.desktop
-
Browser plugin
-
Disable signature validation in 1Password > Help > Advanced
-
Install as Normal (ie via Extension Stores)
-
To autostart 1Password Helper
-
Add to .config/openbox/autostart
-
wine 'C:\Program Files (x86)\1Password 4\Agile1pAgent.exe'
-
See also:
-
Protocol
-
https://discussions.agilebits.com/discussion/2936/chrome-extension-on-linux/p2
-
http://niels.kobschaetzki.net/blog/2014/07/10/1password-4-in-linux/
-
New Product Request: 1Password for Linux [In Progress] - Page 9 — 1Password Support Community
-
Images
-
pacaur -S eog gthumb qiv
-
pacaur -S evince mcomix
-
pacaur -S gimp
-
pacaur -S okular
-
Music
-
pacaur -S clamz moc-svn mopidy mopidy-spotify spotify
-
Spotify may have issues w/ the AUR (2017-04-25)
gpg --recv-keys --keyserver hkp://pgp.mit.edu D9C4D26D0E604491
gpg --recv-keys --keyserver hkp://pgp.mit.edu 5CC908FDB71E12C2
pacaur -S libopenssl-1.0-compat libcurl-openssl-1.0
cd ~/.cache/pacaur/spotify
git clean -fdx
git pull origin # cheers agm28011997
git checkout 226c803
-
Reference:
-
Video
-
pacaur -S atomicparsley ffmpeg rtmpdump gnome-vfs gst-libav gst-plugins-bad gst-plugins-good libva-vdpau-driver libmtp lua-socket mpv vlc youtube-dl
-
new versions of vlc may segfault w/o intel-ucode update
- pacaur -S slack-desktop
-
pacaur -S dropbox dropbox-cli thunar-dropbox
-
Reference: Dropbox - ArchWiki
-
MAX file watches
-
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
-
Install
-
vi /etc/pacman.conf and enable [multilib] and [multilib-testing]
-
pacaur -S android-sdk android-sdk-platform-tools android-sdk-build-tools android-studio android-udev
-
infinality bundles preferred but maybe not available?
-
Permissions for sdk manager updates
-
sudo chown -R :lhl /opt/android-sdk
-
sudo chmod -R g+w /opt/android-sdk
-
Fix Fonts
-
sudo vi /opt/android-studio/bin/studio64.vmoptions
-
-Dawt.useSystemAAFontSettings=on
-
Reference: Android - ArchWiki
- pacaur -S steam
- requires multilib
-
pacaur -S bluez bluez-firmware bluez-libs bluez-utils pulseaudio-alsa pulseaudio-bluetooth
-
pacaur -S blueman
-
Notes
-
depending on your tlp settings, you may need to rfkill list and rfkill unblock bluetooth to enable Bluetooth. You can change settings in /etc/default/tlp
-
Once bluetooth is enabled, blueman-applet works great for searching, pairing, and setting up devices as an audio sink.
-
See: http://askubuntu.com/questions/180744/how-to-enable-hard-blocked-bluetooth-in-thinkpad-edge-320
-
Reference
-
name change in progress: Bluetooth headphones and Arch Linux: the endless battle
-
Autostart (on boot)
-
For advanced BT audio support use pulseaudio-modules-bt-git
-
https://aur.archlinux.org/packages/pulseaudio-modules-bt-git/
Sony MDR-1000XM3 Setup
## Requires pulseaudio-modules-bt-git (w/ libldac)
# echo 'load-module module-bluetooth-discover a2dp_config="ldac_eqmid=hq"' >> /etc/pulse/default.pa
# echo 'load-module module-bluez5-discover a2dp_config="ldac_eqmid=sq"' >> /etc/pulse/default.pa
$ pulseaudio -k; pulseaudio --start
# Reconnect w/ blueman or bluetoothctl
$ pactl list sinks | grep -e bluez -e a2dp_codec
Name: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink
Driver: module-bluez5-device.c
Monitor Source: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink.monitor
bluetooth.a2dp_codec = "LDAC"
device.api = "bluez"
bluez.path = "/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX"
bluez.class = "0x240404"
bluez.alias = "WH-1000XM3"
pacaur -S all-repository-fonts
pacaur -S nerd-fonts-git
See also: https://aur.archlinux.org/packages/ttf-google-fonts-git/
(updated too often to install)
pacaur -S cups cups-pdf
systemctl enable org.cups.cupsd
systemctl start org.cups.cupsd
### Add user to sys to be able to lpinfo as user (vigr, vigr -s)
# https://willhaley.com/blog/printing-in-arch-linux/
# https://wiki.archlinux.org/index.php/CUPS/Troubleshooting#Bad_permissions
/etc/udev/rules.d/10-dymo.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0922", ATTRS{idProduct}=="1001", MODE="0664", GROUP="lp", OWNER="lhl"
udevadm control --reload-rules
# replug device
# to check lsusb to get device bus etc, the ls -l /dev/bus/usb/[bus] to make sure permissions are correct
Dropbox Paper
Papyrus
Wunderlist
Wunderlistux
- Run installer script (be sure to review it yourself)
cd /usr/local/bin
sudo ln -s /opt/wunderlistux/Wunderlistux
Facebook Messenger
Messenger for Desktop
Caprine
GitHub - sindresorhus/caprine: Elegant Facebook Messenger desktop app
Evernote
Whatever
GitHub - sbrshk/whatever: An unofficial Evernote desktop client for Linux
-
Setup .ssh keys
-
Clone private dotfiles repo
-
Checkout onto home/local volume in case /data doesn’t mount
-
Symlink config
-
mv .config .config.local
-
ln -s dotfiles/common/config .config
breaks w/ every kernel update
pacaur -S broadcom-wl
sudo modprobe wl
if you have verification issues
https://aur.archlinux.org/packages/ncurses5-compat-libs/
gpg --keyserver pgp.mit.edu --recv-keys F7E48EDB
Compton not working
- glx issue, check w/ glxinfo | grep OpenGL to see what’s up
- no glx, bwaa, is it the nvidia drivers?
- try nvidia-beta nvidia-libgl-beta
- yep, that fixed it, isn’t that a bitch?
-
Clipboard Manager - function like ClipMenu
-
Clipit is not as nice as [ClipMenu for OS X](http://ClipMenu for OS X). GPaste looks good but requires a bajillion packages (and then the AUR fails to build).
-
gpaste
-
pacaur -S gobject-introspection
-
pacaur -S gpaste-git
-
SSB
-
Make it easy to launch executables
-
Better work on the favicon.ico
-
Sound
-
Smartly adjust volume and output (headphone, speaker, bluetooth speaker)
ip link set enp0s25 up
ip addr add 192.168.2.2/24 broadcast 192.168.2.255 dev enp0s25
ip route add default via 192.168.2.1
DNS
Domain name resolution - ArchWiki
echo 'nameserver 8.8.8.8' >> /etc/resolve.conf
1Password
-
1Password Anywhere
-
put into rc.local:
-
/usr/bin/http-server -p 8000 /data/Dropbox/1Password.agilekeychain &
-
vs keepass url next</title><title>price drop
-
https://itunes.apple.com/en/app/minikeepass-secure-password/id451661808?mt=8
Issues appear to be w/ the USB port itself…
-
If experiencing hangs while transferring files, this may be due to bugs with the UAS (USB Attached SCSI) system
-
debug (see hangups/resets) w/ journalctl -f
-
Disable the UAS module
-
sudo echo ‘blacklist uas’ > /etc/modprobe.d/usb3-drives.conf
-
See also:
-
Arch Linux ARM • View topic - [solved]system hang after attached USB hard disk
-
http://electronicdesign.com/embedded/whats-difference-between-usb-uasp-and-bot
http://blog.goodstuff.im/1password
GitHub - robbiev/multipass-chrome: Unofficial 1Password Chrome extension
http://www.lucianofiandesio.com/1password-in-linux
Network Sharing
dnsmasq
Advanced traffic control - ArchWiki
Arch Linux - netbrake 0.2-7 (x86_64)
http://freecode.com/projects/pyshaper/
Wunderlist
Evernote
- pacaur -S nixnote-beta
geeknote-improved-git
-
pacaur -S lib32-gnutls samba
-
Notes:
-
Missing or broken libgnutls library | Knowledge Base | CodeWeavers
-
[SOLVED] ntlm_auth errors / Networking, Server, and Protection / Arch Linux Forums
SSB
https://aur.archlinux.org/packages/fogger-bzr/
GitHub - rubiojr/bottles: Turn Your Web Apps into Real Linux Apps :)
Übersicht for Linux
https://launchpad.net/~m-buck/+archive/ubuntu/gtk-desktop-info
https://code.launchpad.net/~m-buck/+junk/gtk-desktop-info
http://ubuntuforums.org/showthread.php?t=1010808
http://bloc.eurion.net/archives/2009/standalone-pygtk-desktop-widgets/
Almost works...
Dead project.
https://launchpad.net/screenlets
-
screenlets
-
pacaur -S python2-feedparser python2-pillow python2-pytz python2-numpy screenlets screenlets-pack-basic
-
sudo gdk-pixbuf-query-loaders --update-cache
-
sudo gtk-update-icon-cache -t -f /usr/share/icons/hicolor
byobu++
automated terminal management and history
Power Management
See also:
https://github.com/uncon/wiki/blob/master/arch_linux/xps13.md
Figure out
LemonBar
https://www.linux.org.ru/gallery/11843658.png
http://i.imgur.com/cVPylyx.png
Aliases
https://www.reddit.com/r/archlinux/comments/3sh9q4/what_aliasesbash_functions_do_you_use_to_that/
Fixing Tearing
this seems to work: [SOLVED] Tearless compositing. / Applications & Desktop Environments / Arch Linux Forums
see also:
[SOLVED] Nvidia tearing / Applications & Desktop Environments / Arch Linux Forums
graphics - Why is video tearing such a problem in Linux? - Unix & Linux Stack Exchange
Evernote w/ Wine
//
// winetricks wininet
// Evernote Cannot Connect To Internet - WineHQ Forums
pacaur -S lib32-openssl098
pacaur -S openssl098
// http://comments.gmane.org/gmane.comp.emulators.wine.bugs/396702
Time Zone switching
timedatectl set-timezone America/Los_Angeles
pacaur -S xautolock
Add to .xinitrc
xautolock -time 15 -locker 'systemctl suspend' -notify [margin] -notifier [notifier] &
Allow users to shutdown - ArchWiki
Don’t Lock if watching video:
-
locker calls script
-
script checks for video playing or app whitelist
-
fullscreen
-
or just when sound is active
cat /proc/asound/card*/pcm*/sub*/status | grep RUNNING
pacmd list-sink-inputs
-
bash - How to detect that the sound is currently playing in Linux? - Stack Overflow
-
http://superuser.com/questions/393448/detecting-audio-playing-in-a-bash-script
-
linux - Testing if audio devices / sound cards are currently playing? - Unix & Linux Stack Exchange
-
file operation
-
dstat? - raw amount
-
atop or iotop for process
-
Another option is to use: sudo iotop -aoP
-a Will show accumulated output
-o Will only output
-P Will only show processes instead of threads
-
This program will tell you how much a process has written to disk and read from disk since iotop was started.
-
http://serverfault.com/questions/169676/howto-check-disk-i-o-utilisation-per-process
-
How to check progress of running cp? - Unix & Linux Stack Exchange
-
linux - Determine if file is in the process of being written upon? - Server Fault
-
process - How can I pause/resume rsync - Unix & Linux Stack Exchange
-
linux - Move file but only if it's closed - Unix & Linux Stack Exchange
html - How can I determine if HTML5 player is running in browser? - Stack Overflow
Adapt lightsOn/lightsOn.sh at master · iye/lightsOn · GitHub
https://aur.archlinux.org/packages/caffeine-ng
https://gist.github.com/boarpig/8118854
suspend/hibernate
Archlinux enabling hibernation - Programmable Production
https://feeding.cloud.geek.nz/posts/creating-a-modern-tiling-desktop-environment-using-i3/
Hibernate when i press power button / Newbie Corner / Arch Linux Forums
Notifications
GitHub - sboli/twmn: A notification system for tiling window managers
notify-send
http://www.knopwob.org/dunst/screenshots.html
GitHub - halhen/statnot: Status / Notification system for lightweight Window Managers
Moom/Resizer
- easy commands / help/kb shortcut to resize windows, smaller, left half etc
Styling Notifications
Themes/Stendhal at master · tatou-tatou/Themes · GitHub
https://www.reddit.com/r/unixporn/comments/3eqxba/i3gaps_gruvbox_inspired/
GitHub - zachbwh/bspwm_rice: My configs that I use for my bspwm environment
GitHub - atweiden/dotfiles: Dotfiles
https://github.com/knopwob/dunst/issues/114
https://nildeala.fr/2013/02/16/dunst-notifications-minimalistes-et-elegantes.html
https://www.reddit.com/r/unixporn/comments/3otrjh/i3gaps_got_bored_of_using_the_gruvbox_setup_for/
GitHub - TomboFry/dotfiles: [WIP] XTerm/urxvt/st, Oh-my-Zsh, Vim
https://plus.google.com/106152149097741431219/posts/f48dhBiRtpg
https://m.reddit.com/r/unixporn/comments/46g091
http://www.gulfweb.net/rlwalker/astronomy/calendar/GoogleCalendarSearchCommandLine.htm
GitHub - magdeoz/dotfiles: dotfiles, bspwm, lemobar, ranger, X
dotbot-user-study/jubnzv-dotfiles_install.conf.yaml at master · casey/dotbot-user-study · GitHub
-
Can’t have a ‘.’ in the filename
-
Need to be chmod a+x along path
-
need to be own by rootArch Linux Install Personal Install Guide/Notes. May be useful for you if you are experienced w/ Linux
Create a USB Boot Stick
-
Download ISO
-
Check Signature
gpg --verify archlinux-xxx.iso.sig archlinux-xxx.iso
-
Write to USB stick
-
lsblk -l
-
dd bs=4M if=archlinux.iso of=/dev/sdb && sync
-
run as root
-
/dev/sdb
should be USB drive -
you can double check device w/
fdisk -l
-
Docs: https://wiki.archlinux.org/index.php/USB_flash_installation_media#In_GNU.2FLinux
-
-
Initial Boot and Getting into New System
-
See Reference
-
https://wiki.archlinux.org/index.php/Installation_guide
- High level, bare bones
-
https://wiki.archlinux.org/index.php/Beginners'_guide
- More detailed, but lots of links
-
http://www.cdavis.us/wiki/index.php/Arch_Linux_Install_Guide
- A complete personal guide
-
https://wiki.archlinux.org/index.php/Installation_guide
-
Get a network connection
-
ip link
to get device -
systemctl restart dhcpcd.service
for hardline - WiFi (uses
iwctl
)device list
station [wlan0] scan
station [wlan0] get-networks
station [wlan0] connect [SSID]
- See: https://wiki.archlinux.org/title/installation_guide#Connect_to_the_internet
-
-
Make sure your clock is OK
timedatectl set-ntp true
timedatectl status
-
Figure out your storage devices
- Blah blah blah: https://wiki.archlinux.org/index.php/Beginners'_guide#Prepare_the_storage_devices
lsblk -f
fdisk -l
cfdisk
-
Make File Systems and Mount
-
Traditional swap + ext4 + swap
mkfs.ext4 /dev/sda2
mkswap /dev/sda3
swapon /dev/sda3
mount /dev/sda2 /mnt
mkdir -p /mnt/boot
-
mkfs.fat -F32 /dev/sda1
(make sure partition type is set to EFI System in cfdisk) -
mount /dev/sda1 /mnt/boot
- EFI partition
-
Encrypted BTRFS + encrypted swap
-
cfdisk
to gpt and make volumes mkfs.vfat -F32 -n "EFI" /dev/nvme0n1p1
mkswap -L swap /dev/nvem0n1p2
-
cryptsetup luksFormat /dev/nvme0n1p3
cryptsetup open /dev/nme0n1p3 btrfs mkfs.btrfs -L "arch" /dev/mapper/btrfs mount /dev/mapper/btrfs /mnt mount /dev/mapper/btrfs /mnt cd /mnt
-
-
See:
-
Make sure your arch key ring is up to date
pacman -S
pacman -S archlinux-keyring
-
-
Install the base system
-
pacstrap -i /mnt base base-devel
linux linux-firmware linux-headers amd-ucode Intel-ucode
-
-
Generate fstab (w/ UUID)
genfstab -U /mnt > /mnt/etc/fstab
cat /mnt/etc/fstab
-
chroot
arch-chroot /mnt /bin/bash
In New System (chroot)
-
Select a mirror
-
pacman -S reflector rsync
- https://wiki.archlinux.org/index.php/Reflector
reflector --verbose --country 'United States' -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist
-
-
Update
pacman -Syu
pacman -Sy fish vim
cd /usr/bin; rm vi; ln -s vim vi
-
Locale
-
vi /etc/locale.gen
and uncommenten_US.UTF-8 UTF-8
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
-
-
Time
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
hwclock --systohc --utc
-
Hostname
echo '{$hostname}' > /etc/hostname
-
Root
passwd
-
Boot Loader
-
systemd-boot (gummiboot)
-
bootctl —path=/boot install
-
vi /boot/loader/entries/arch.conf
- title Arch Linux - linux /vmlinuz-linux - initrd /initramfs-linux.img - options root=/dev/sda2 rw
-
vi /boot/loader/loader.conf
- timeout 3 - default arch
-
-
Notes
- $esp = /boot if you’ve mounted things as I have (should be where the EFI folder is)
- you need to boot from the boot stick as UEFI I order for UEFI to work
- See also: https://wiki.archlinux.org/index.php/Archboot
- You could use grub but it’s more of a PITA
- GRUB UEFI - refuses to boot properly…
pacman -S dosfstools grub os-prober efibootmgr
grub-install —target=x86_64-efi —efi-directory=/boot —bootloader-id=grub —recheck
grub-mkconfig -o /boot/grub/grub.cfg
efibootmgr -v
- GRUB UEFI - refuses to boot properly…
-
-
Network Setup
- Here’s a basic thing you could do:
- Wired on startup
systemctl enable dhcpcd
- Wireless
pacman -S dialog
wifi-menu
- Wired on startup
- To simply start up the network once
-
ip link
to get your network devices -
ip link set {$interface_name} up
to bring it up -
dhcpcd {$interface_name}
to get a dhcp lease
-
- Lets save ourselves some trouble and set up NetworkManager now though (otherwise you will need to
systemctl --type=service
andsystemctl disable
other network services) pacman -S networkmanager
sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager
- Here’s a basic thing you could do:
-
Network Accessibility
pacman -S openssh
systemctl enable sshd
systemctl start sshd
pacman -S avahi nss-mdns
-
vi /etc/nsswitch.conf
and append mdns to thehosts:
line sudo systemctl enable avahi-daemon.service
sudo systemctl start avahi-daemon.service
- Reference: https://wiki.archlinux.org/index.php/Avahi
-
Install optional Packages
- Honestly, we can do most of the stuff we know we want or need now, or we can just reboot and do w/ it once we’re not in chroot (make a user of course)
-
Reboot
exit
umount -R /mnt
reboot
Create a Local User
- Reference
useradd -m -G wheel -s /usr/bin/fish lhl
passwd lhl
-
visudo
- uncomment
%``wheel
ALL=(ALL) ALL
- uncomment
Install pacaur for Package Management
-
makepkg
won’t run as root so you need to make a local user first - Reference
- Set up keys so packages will build
-
gpg —list-keys
- makes sure your current user has a gpg database
echo ‘keyring /etc/pacman.d/gnupg/pubring.gpg’ >> ~/.gnupg/gpg.conf
- Reference
-
- Get Packages (as user)
sudo pacman -S git wget curl perl yajl expac bash-completion
- cower
wget https://aur.archlinux.org/cgit/aur.git/snapshot/cower.tar.gz
tar xvfz cower.tar.gz
cd cower
makepkg
sudo pacman -U cower-{$version}.pkg.tar.xz
- No longer needed but if you need to add keys…
- $ gpg --recv-key 1EB2638FF56C0C53
- gpg: key F56C0C53: public key "Dave Reisner [email protected]" imported
- gpg: no ultimately trusted keys found
- gpg: Total number processed: 1
- gpg: imported: 1
- makepkg requires
/usr/bin/core_perl
in the path- bash
export PATH=/usr/bin:/usr/local/bin:/usr/bin/core_perl
- fish
set PATH /usr/bin /usr/local/bin /usr/bin/core_perl
- bash
- No longer needed but if you need to add keys…
- pacaur wget https://aur.archlinux.org/cgit/aur.git/snapshot/pacaur.tar.gz tar xvfz pacaur.tar.gz cd pacaur makepkg sudo pacman -U pacaur-{$version}.pkg.tar.xz
- We can now use
pacaur
instead of pacman to install both official arch and unofficial AUR packages.
NTFS Drive Mounting
NTFS is the best choice for data drives as it is the only modern FS that has support on Linux, OSX, and Windows.
pacaur -S ntfs-3g
- NTFS doesn’t support POSIX permissions well for cross-platform mounts
- Will fail to mount rw if there’s leftover metadata or other issues, usually fixable by
ntfsfix
- Rather than adding to fstab, better to use a custom script for mounting which will try to run ntfsfix (called via rc.local systemd oneshot - see rc.local section)
- See also: https://sudopacman.wordpress.com/2015/01/09/dont-use-ntfsfix-in-linux-just-turn-off-fast-boot-in-windows/
- Reference: https://wiki.archlinux.org/index.php/NTFS-3G
Other File Systems
pacaur -S btrfs-progs dosfstools exfat-utils f2fs-tools fuse-exfat gdisk gpart gparted ms-sys mtools nilfs-utils
- Note Linux can only mount journaled HFS+ partitions as read-only
rc.local w/ systemd
- Use: http://notes.ponderworthy.com/rclocal-in-arch-linux-systemd
-
/etc/systemd/system/rc-local.service
can't be symlink, doesn’t work, don't know why
-
sudo systemctl enable rc-local.service
- Make sure
/etc/rc.local
is an executable script (this can be a symlink) - Alternatively: https://aur.archlinux.org/packages/rc-local/
NTP
systemd-timesyncd might not work w/o systemd-networkd - this doesn’t necessarily play well with networkmanager
sudo timedatectl set-ntp true
sudo timedatectl status
- Uncomment NTP in
/etc/systemd/timesyncd.conf
if necessary - Reference
Alternative
pacaur -S ntpdate
sudo ntpdate -s time.nist.gov
CPU Drivers
-
Intel
pacaur -S intel-ucode
-
AMD
pacaur -S amd-ucode
-
Grub
-
gummiboot
- Add
initrd /intel-ucode.img
before other initrd in/boot/loader/entries/arch.conf
- Add
Power Management
If laptop:
pacaur -S ethtool lm_sensors lsb-release smartmontools tlp tp_smapi x86_energy_perf_policy
pacaur -S powertop
sudo systemctl enable tlp.service
sudo systemctl enable tlp-sleep.service
sudo tlp start
- Stats
- 4.6W idle w/ Lenovo X250 (i7-5600 2.6GHz, 8GB RAM, 512GB SSD) @ 30% backlight, 5GHz Wifi (70/70 quality, -22dB)
-
https://mjg59.dreamwidth.org/34868.html
- Wait for v4.2 kernel for better power? currently when idle, state is in pc6, 0% pc7
-
powertune --auto-tune
increases discharge rate for some reason, but worth testing
-
https://mjg59.dreamwidth.org/34868.html
- 4.6W idle w/ Lenovo X250 (i7-5600 2.6GHz, 8GB RAM, 512GB SSD) @ 30% backlight, 5GHz Wifi (70/70 quality, -22dB)
- Reference
Wifi Drivers
If you have weird hardware, this may be an issue…
- Reference
- Find out what HW you have
-
lspci -k
for PCI, or for USBlsusb -v
-
- Broadcom
- While there are open source drives,
broadcom-wl
(restricted) is supposedly the most stable. You will need to wait until setting up pacaur to install those (dkms version makes kernel upgrades less likely to break things) -
pacaur -S broadcom-wl-dkms
- If you don’t have wired ethernet or a USB wireless interface you will need to use the offline installation instructions:
modprobe wl
- While there are open source drives,
- Realtek
- Some Realtek drivers should be in the mainline kernel. If not
pacaur -S dkms linux-headers
- Search for appropriate drivers https://aur.archlinux.org/packages/?O=0&SeB=nd&K=realtek&outdated=&SB=n&SO=a&PP=50&do_Search=Go
- Kernel Upgrades
- Regular
pacaur -S broadcom-wl
sudo modprobe wl
- DKMS
- While dkms is listed as less likely to break things, this hasn’t been the case for me. If you upgrade the kernel, you will probably want to
pacuar -R broadcom-wl-dkms
andpacaur -S broadcom-wl-dkms
to reinstall before rebooting - If not you probably can do the following:
dkms status
-
sudo dkms remove broadcom-wl/6.30.233.271 --all
- this should be whatever version is listed
sudo dkms build broadcom-wl/6.30.233.271
sudo dkms install broadcom-wl/6.30.233.271
sudo systemctl restart dkms.service
-
modprobe wl
- If this doesn’t work a reboot might help
- While dkms is listed as less likely to break things, this hasn’t been the case for me. If you upgrade the kernel, you will probably want to
- If that doesn’t work, you’re going to need to want to either remove/install
broadcom-wl-dkms
from a hard line or copy the package over sneakernet. Terrible I know.
- Regular
Video Card Drivers
lspci | grep VGA
- Intel
pacaur -S xf86-video-intel
- Nvidia
pacaur -S nvidia nvidia-libgl nvidia-settings nvidia-utils cuda
- Reference: https://wiki.archlinux.org/index.php/NVIDIA
- AMD
pacaur -S amdgpu-pro
yay -S xf86-video-amdgpu
- OpenCL stuff
-
pacaur -S opencl-headers ocl-icd opencl-amd amdapp-sdk
- You may need to
pacaur -Se amdapp-sdk
and fix a dangling symlink: https://github.com/cviebig/arch-aur-amdapp-sdk/commit/97fde4b432ff2bdda186da4d81bc24a2241111a9
- You may need to
-
- Reference
Basic Apps
pacaur -Syu
pacaur -S cpio lbzip2 links lsof lzop mlocate net-tools openssh p7zip rsync sift the_silver_searcher time unace unrar unzip wireless_tools xz zip
pacaur -S bind-tools
pacaur -S python2 python2-setuptools
sudo easy_install-2.7 pip
pacaur -S python python-setuptools
sudo easy_install pip
- CLI niceness
pacaur -S fish
chsh -s /usr/bin/fish
pacaur -S byobu
sudo pip install powerline-status psutil
pacaur -S python-pygit2
- mdns
pacaur -S avahi nss-mdns
-
vi /etc/nsswitch.conf
and append mdns to thehosts:
line sudo systemctl enable avahi-daemon.service
sudo systemctl start avahi-daemon.service
- Reference: https://wiki.archlinux.org/index.php/Avahi
- Arch feedback
pacaur -S pkgstats
Monitoring Tools
pacaur -S dstat htop nmon
-
pacaur -S bmon iftop nbwmon nethogs nload slurm vnstat wavemon
pacaur -S baobab
sudo pip install glances
XWindows
pacaur -S xorg xorg-server xorg-server-utils xorg-server-xephyr
sudo nvidia-xconfig
- Be sure to add
Option "NoLogo"
to the/etc/X11/xorg.conf
if you don't want the logo to flash w/ an Nvidia card
LightDM
pacaur -S lightdm lightdm-gtk-greeter accountsservice
systemctl enable lightdm.service
GUI
-
WM & Friends
pacaur -S compton gnome-keyring gsimplecal hsetroot openbox network-manager-applet scrot tint2
-
Fonts (infinality-bundle)
-
infanility is dead. here’s how to remove it:
-
https://gist.github.com/cryzed/e002e7057435f02cc7894b9e748c5671 pacaur -S cairo pacaur -S fontconfig pacaur -S pkgbrowser pacaur -Rns ibfonts-meta-extended pacaur -S gsfonts pacaur -S ttf-dejavu pacaur -S cantarell-fonts pacaur -S tt-droid pacaur -S ttf-liberation
pacaur -S fonts-meta-extended-lt ln -s /etc/fonts/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d ln -s /etc/fonts/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d
-
-
-
Powerline Fonts
git clone https://github.com/powerline/fonts.git
cd fonts; ./install.sh; cd ..; rm -rf fonts
-
Terminal
pacaur -S rxvt-unicode termite
- See also: https://randomfoo.net/2018/06/30/switching-from-urxvt-to-termite
-
File Manager (including iOS + Android support)
pacaur -S gvfs gvfs-afc gvfs-gphoto2 gvfs-mtp mtpfs thunar thunar-volman thunar-archive-plugin thunar-media-tags-plugin tumbler usbmuxd xarchiver
-
Clipboard Manager
pacaur -S copyq clipit
-
Notifications
pacaur -S dunst
-
Launcher
pacaur -S bc pastebinit albert
-
Search (recoll may be better, will test if it ever becomes a need/problem)
pacaur -S tracker
tracker daemon -s
tracker status
-
tracker-needle
for search gui pacaur -S ripgrep
-
Sound
pacaur -S alsa-utils pulseaudio pulseaudio-alsa pavucontrol pnmixer
Browsers
- Chromium
pacuar -S chromium
- Google Chrome
pacaur -S google-chrome
pacaur -S google-chrome-beta
- Firefox
pacaur -S firefox
- Firefox Developer (use Firefox dependencies)
- the AUR is broken and we want regular updates anyway
- wget https://download.mozilla.org/?product=firefox-devedition-latest-ssl&os=linux64&lang=en-US
tar xvfj firefox-{$version}.en-US.linux-x86_64.tar.bz2
sudo mv firefox /opt/firefox-developer
sudo ln -s /opt/firefox-developer/firefox /usr/bin/firefox-developer
- Flash for Firefox
pacaur -S freshplayerplugin-git
- Chek version: http://www.adobe.com/software/flash/about/
- H.264 for Firefox
pacaur -S gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-ugly
- about:config
- media.gstreamer.enabled=true
- media.mediasource.enabled=true
- media.mediasource.mp4.enabled=true
- media.mediasource.webm.enabled=true
- Check support: https://www.youtube.com/html5
- Firefox Developer Edition has issues w/ H.264
- Google Talk
pacuar -S google-talkplugin
- Set Default Browser
xdg-settings set default-web-browser google-chrome-beta.desktop
- Settings are in
~/.config/mimeapps.list
- You can debug via:
bash -x xdg-open http://www.google.com
- See https://wiki.archlinux.org/index.php/Default_applications
Development
- General
-
pacaur -S gvim
- make sure .vimrc is installed (see config)
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
vim +PluginInstall +qall
pacaur -S npm
sudo npm install http-server -g
pacaur -S racket
sudo pip install httpie
sudo pip install ipython[notebook]
-
- Lensley
sudo easy_install-2.7 pip
sudo pip2 install envoy ll-xist==3.25 pycurl pyserial python-memcached
pacaur -S imagemagick openjpeg2
pacaur -S mysql-workbench
- VR
pacaur -S unity-editor
pacaur -S osvr-core-git osvr-libfunctionality-git osvr-oculus-rift-git osvr-steamvr-git osvr-tracker-viewer-git
- ARM
pacaur -S debootstrap qemu-user-static binfmt-support
WINE/1Password
- uncomment [multilib] in /etc/pacman.conf
pacaur -Syu
pacaur -S wine winetricks lib32-alsa-lib lib32-alsa-plugins lib32-mpg123 lib32-libpulse lib32-gnutls samba
winetricks allfonts
-
wine 1Password-4.6.0.585.exe
- where 1Password... is the installer
- To run 1Password
wine 'C:\Program Files (x86)\1Password 4\1Password.exe'
- see
~/.local/share/applications/wine/Programs/1Password/1Password 4.desktop
- Browser plugin
- Disable signature validation in 1Password > Help > Advanced
- Install as Normal (ie via Extension Stores)
- To autostart 1Password Helper
- Add to
.config/openbox/autostart
wine 'C:\Program Files (x86)\1Password 4\Agile1pAgent.exe'
- Add to
- See also:
Multimedia
- Images
pacaur -S eog gthumb qiv
pacaur -S evince mcomix
pacaur -S gimp
-
pacaur
``-S okular
- Music
pacaur -S clamz moc-svn mopidy mopidy-spotify spotify
- Spotify may have issues w/ the AUR (2017-04-25) gpg --recv-keys --keyserver hkp://pgp.mit.edu D9C4D26D0E604491 gpg --recv-keys --keyserver hkp://pgp.mit.edu 5CC908FDB71E12C2 pacaur -S libopenssl-1.0-compat libcurl-openssl-1.0 cd ~/.cache/pacaur/spotify git clean -fdx git pull origin # cheers agm28011997 git checkout 226c803
- Reference:
- Video
-
pacaur -S atomicparsley ffmpeg rtmpdump gnome-vfs gst-libav gst-plugins-bad gst-plugins-good libva-vdpau-driver libmtp lua-socket mpv vlc youtube-dl
- new versions of vlc may segfault w/o intel-ucode update
-
Slack
-
pacaur -S slack-desktop
Dropbox pacaur -S dropbox dropbox-cli thunar-dropbox
- Reference: https://wiki.archlinux.org/index.php/Dropbox
- MAX file watches
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
Android Development
- Install
-
vi /etc/pacman.conf
and enable[multilib]
and[multilib-testing]
pacaur -S android-sdk android-sdk-platform-tools android-sdk-build-tools android-studio android-udev
- infinality bundles preferred but maybe not available?
-
- Permissions for sdk manager updates
sudo chown -R :lhl /opt/android-sdk
sudo chmod -R g+w /opt/android-sdk
- Fix Fonts
-
sudo vi /opt/android-studio/bin/studio64.vmoptions
-Dawt.useSystemAAFontSettings=on
-
- Reference: https://wiki.archlinux.org/index.php/Android
Steam
pacaur -S steam
- requires
multilib
Bluetooth
pacaur -S bluez bluez-firmware bluez-libs bluez-utils pulseaudio-alsa pulseaudio-bluetooth
pacaur -S blueman
- Notes
- depending on your tlp settings, you may need to
rfkill list
andrfkill unblock bluetooth
to enable Bluetooth. You can change settings in/etc/default/tlp
- Once bluetooth is enabled,
blueman-applet
works great for searching, pairing, and setting up devices as an audio sink. - See: http://askubuntu.com/questions/180744/how-to-enable-hard-blocked-bluetooth-in-thinkpad-edge-320
- depending on your tlp settings, you may need to
- Reference
- Autostart (on boot)
- For advanced BT audio support use
pulseaudio-modules-bt-git
Sony MDR-1000XM3 Setup
## Requires pulseaudio-modules-bt-git (w/ libldac) # echo 'load-module module-bluetooth-discover a2dp_config="ldac_eqmid=hq"' >> /etc/pulse/default.pa # echo 'load-module module-bluez5-discover a2dp_config="ldac_eqmid=sq"' >> /etc/pulse/default.pa $ pulseaudio -k; pulseaudio --start # Reconnect w/ blueman or bluetoothctl $ pactl list sinks | grep -e bluez -e a2dp_codec Name: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink Driver: module-bluez5-device.c Monitor Source: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink.monitor bluetooth.a2dp_codec = "LDAC" device.api = "bluez" bluez.path = "/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX" bluez.class = "0x240404" bluez.alias = "WH-1000XM3"
Fonts
pacaur -S all-repository-fonts pacaur -S nerd-fonts-git
See also: https://aur.archlinux.org/packages/ttf-google-fonts-git/ (updated too often to install)
https://github.com/ryanoasis/nerd-fonts
Printing
pacaur -S cups cups-pdf systemctl enable org.cups.cupsd systemctl start org.cups.cupsd ### Add user to sys to be able to lpinfo as user (vigr, vigr -s) # https://willhaley.com/blog/printing-in-arch-linux/ # https://wiki.archlinux.org/index.php/CUPS/Troubleshooting#Bad_permissions /etc/udev/rules.d/10-dymo.rules SUBSYSTEMS=="usb", ATTRS{idVendor}=="0922", ATTRS{idProduct}=="1001", MODE="0664", GROUP="lp", OWNER="lhl" udevadm control --reload-rules # replug device # to check lsusb to get device bus etc, the ls -l /dev/bus/usb/[bus] to make sure permissions are correct
Electron Apps
Dropbox Paper Papyrus
Wunderlist Wunderlistux https://github.com/edipox/wunderlistux
- Run installer script (be sure to review it yourself) cd /usr/local/bin sudo ln -s /opt/wunderlistux/Wunderlistux
Facebook Messenger Messenger for Desktop https://github.com/aluxian/Messenger-for-Desktop
Caprine https://github.com/sindresorhus/caprine
Evernote Whatever https://github.com/CellarD0-0r/whatever
Config
- Setup .ssh keys
- Clone private dotfiles repo
- Checkout onto home/local volume in case /data doesn’t mount
- Symlink config
mv .config .config.local
ln -s dotfiles/common/config .config
Maintenance
wifi
breaks w/ every kernel update
pacaur -S broadcom-wl sudo modprobe wl
ncurses5-compat-libs
if you have verification issues https://aur.archlinux.org/packages/ncurses5-compat-libs/
gpg --keyserver pgp.mit.edu --recv-keys F7E48EDB
Compton not working
- glx issue, check w/
glxinfo | grep OpenGL
to see what’s up - no glx, bwaa, is it the nvidia drivers?
- try
nvidia-beta nvidia-libgl-beta
- yep, that fixed it, isn’t that a bitch?
TODO
- Clipboard Manager - function like ClipMenu
- Clipit is not as nice as ClipMenu for OS X. GPaste looks good but requires a bajillion packages (and then the AUR fails to build).
- gpaste
pacaur -S gobject-introspection
pacaur -S gpaste-git
- gpaste
- Clipit is not as nice as ClipMenu for OS X. GPaste looks good but requires a bajillion packages (and then the AUR fails to build).
- SSB
- Make it easy to launch executables
- Better work on the favicon.ico
- Sound
- Smartly adjust volume and output (headphone, speaker, bluetooth speaker)
Extra Ref/WIP
ip link set enp0s25 up ip addr add 192.168.2.2/24 broadcast 192.168.2.255 dev enp0s25 ip route add default via 192.168.2.1
DNS https://wiki.archlinux.org/index.php/Resolv.conf echo 'nameserver 8.8.8.8' >> /etc/resolve.conf
1Password
- 1Password Anywhere
- put into
rc.local
:/usr/bin/http-server -p 8000 /data/Dropbox/1Password.agilekeychain &
- put into
- vs keepass http://www.slant.co/topics/900/compare/~lastpass_vs_1password_vs_keepass
USB 3 Drive Troubleshooting
Issues appear to be w/ the USB port itself…
- If experiencing hangs while transferring files, this may be due to bugs with the UAS (USB Attached SCSI) system
- debug (see hangups/resets) w/
journalctl -f
- Disable the UAS module
sudo echo ‘blacklist uas’ > /etc/modprobe.d/usb3-drives.conf
- See also:
http://blog.goodstuff.im/1password https://github.com/asianmack/1password-anywhere https://github.com/Gyran/chrome-1passwordanywhere-extension https://learn2.agilebits.com/1Password4/Security/keychain-design.html https://github.com/openpassword/blimey https://github.com/robbiev/multipass-chrome http://www.lucianofiandesio.com/1password-in-linux
Network Sharing https://wiki.archlinux.org/index.php/NetworkManager dnsmasq https://wiki.archlinux.org/index.php/Advanced_traffic_control https://www.archlinux.org/packages/community/x86_64/netbrake/ http://freecode.com/projects/pyshaper/
Wunderlist
Evernote
pacaur -S nixnote-beta
http://www.geeknote.me/ geeknote-improved-git
pacaur -S lib32-gnutls samba
- Notes:
SSB https://aur.archlinux.org/packages/fogger-bzr/ https://github.com/rubiojr/bottles
Übersicht for Linux http://tracesof.net/uebersicht/
http://www.webupd8.org/2009/04/conky-like-desktop-info-application.html https://launchpad.net/~m-buck/+archive/ubuntu/gtk-desktop-info https://code.launchpad.net/~m-buck/+junk/gtk-desktop-info http://ubuntuforums.org/showthread.php?t=1010808 http://bloc.eurion.net/archives/2009/standalone-pygtk-desktop-widgets/
Almost works... Dead project. https://launchpad.net/screenlets https://en.wikipedia.org/wiki/Screenlets
- screenlets
pacaur -S python2-feedparser python2-pillow python2-pytz python2-numpy screenlets screenlets-pack-basic
sudo gdk-pixbuf-query-loaders --update-cache
sudo gtk-update-icon-cache -t -f /usr/share/icons/hicolor
byobu++ automated terminal management and history
Power Management https://wiki.archlinux.org/index.php/Power_management#Power_management_with_systemd https://wiki.archlinux.org/index.php/Power_management#Sleep_hooks
See also: https://github.com/uncon/wiki/blob/master/arch_linux/xps13.md
Figure out https://wiki.archlinux.org/index.php/Openbox#obm-xdg
LemonBar https://www.linux.org.ru/gallery/11843658.png
http://i.imgur.com/cVPylyx.png https://wiki.archlinux.org/index.php/Lemonbar
Aliases https://www.reddit.com/r/archlinux/comments/3sh9q4/what_aliasesbash_functions_do_you_use_to_that/
Fixing Tearing this seems to work: https://bbs.archlinux.org/viewtopic.php?id=161403 see also: https://bbs.archlinux.org/viewtopic.php?id=173890 https://bbs.archlinux.org/viewtopic.php?id=199445 http://unix.stackexchange.com/questions/182801/why-is-video-tearing-such-a-problem-in-linux
Evernote w/ Wine // // winetricks wininet // https://forum.winehq.org/viewtopic.php?p=74609 pacaur -S lib32-openssl098 pacaur -S openssl098 // http://comments.gmane.org/gmane.comp.emulators.wine.bugs/396702
Time Zone switching https://wiki.archlinux.org/index.php/time
timedatectl set-timezone America/Los_Angeles
Suspend on Idle
pacaur -S xautolock Add to .xinitrc xautolock -time 15 -locker 'systemctl suspend' -notify [margin] -notifier [notifier] &
https://wiki.archlinux.org/index.php/Allow_users_to_shutdown
Don’t Lock if watching video:
-
locker calls script
-
script checks for video playing or app whitelist
-
fullscreen
-
or just when sound is active cat /proc/asound/card*/pcm*/sub*/status | grep RUNNING pacmd list-sink-inputs
- http://stackoverflow.com/questions/17404443/how-to-detect-that-the-sound-is-currently-playing-in-linux - http://superuser.com/questions/393448/detecting-audio-playing-in-a-bash-script - http://unix.stackexchange.com/questions/61337/testing-from-a-script-if-audio-devices-are-in-silent
-
file operation
- dstat? - raw amount
- atop or iotop for process
- Another option is to use:
sudo iotop -aoP
-a Will show accumulated output -o Will only output -P Will only show processes instead of threads - This program will tell you how much a process has written to disk and read from disk since iotop was started.
- http://serverfault.com/questions/169676/howto-check-disk-i-o-utilisation-per-process
- Another option is to use:
- https://wiki.archlinux.org/index.php/Zeitgeist
- http://unix.stackexchange.com/questions/66795/how-to-check-progress-of-running-cp
- http://askubuntu.com/questions/14252/how-in-a-script-can-i-determine-if-a-file-is-currently-being-written-to-by-ano
- http://serverfault.com/questions/415596/determine-if-file-is-in-the-process-of-being-written-upon
- http://unix.stackexchange.com/questions/5959/how-can-i-pause-resume-rsync
- http://unix.stackexchange.com/questions/176387/move-file-but-only-if-its-closed
Adapt https://github.com/iye/lightsOn/blob/master/lightsOn.sh
https://aur.archlinux.org/packages/caffeine-ng https://gist.github.com/boarpig/8118854
suspend/hibernate http://blog.programmableproduction.com/2016/02/22/ArchLinux-Powermanagement-Setting-Hibernate/ https://wiki.archlinux.org/index.php/Power_management#Hybrid_sleep https://wiki.archlinux.org/index.php/Laptop#Power_management https://wiki.archlinux.org/index.php/hibernate-script https://feeding.cloud.geek.nz/posts/creating-a-modern-tiling-desktop-environment-using-i3/ https://bbs.archlinux.org/viewtopic.php?id=150867 https://wiki.archlinux.org/index.php/Power_management#Delayed_hibernation_service_file
Notifications https://github.com/sboli/twmn notify-send http://askubuntu.com/questions/65184/the-notify-send-bubble-looks-ugly-with-openbox-yellow-black-and-non-transpare http://www.knopwob.org/dunst/screenshots.html https://github.com/halhen/statnot
Moom/Resizer
- easy commands / help/kb shortcut to resize windows, smaller, left half etc
Styling Notifications https://github.com/tatou-tatou/Themes/tree/master/Stendhal https://www.reddit.com/r/unixporn/comments/3eqxba/i3gaps_gruvbox_inspired/ http://dotshare.it/dots/1013/ https://github.com/zachbwh/bspwm_rice https://github.com/atweiden/dotfiles
https://github.com/knopwob/dunst/issues/114
knopwob/dunst#114 https://nildeala.fr/2013/02/16/dunst-notifications-minimalistes-et-elegantes.html https://www.reddit.com/r/unixporn/comments/3otrjh/i3gaps_got_bored_of_using_the_gruvbox_setup_for/ https://github.com/TomboFry/dotfiles https://plus.google.com/106152149097741431219/posts/f48dhBiRtpg https://m.reddit.com/r/unixporn/comments/46g091 http://www.gulfweb.net/rlwalker/astronomy/calendar/GoogleCalendarSearchCommandLine.htm https://github.com/magdeoz/i3-Arch-config https://github.com/casey/dotbot-user-study/blob/master/configs/jubnzv-dotfiles_install.conf.yaml
sudoers.d
-
Can’t have a ‘.’ in the filename
-
Need to be chmod a+x along path
-
need to be own by root# Arch Linux Install
Personal Install Guide/Notes. May be useful for you if you are experienced w/ Linux
-
Download ISO
-
From: Arch Linux - Downloads
-
Directly: Index of /archlinux/iso/latest/
-
Check Signature
-
gpg --verify archlinux-xxx.iso.sig archlinux-xxx.iso
-
Write to USB stick
-
lsblk -l
-
dd bs=4M if=archlinux.iso of=/dev/sdb && sync
-
run as root
-
/dev/sdb should be USB drive
-
you can double check device w/ fdisk -l
-
See Reference
-
High level, bare bones
-
More detailed, but lots of links
-
A complete personal guide
-
Get a network connection
-
ip link to get device
-
systemctl restart dhcpcd.service for hardline
-
WiFi (uses iwctl)
-
device list
-
station [wlan0] scan
-
station [wlan0] get-networks
-
station [wlan0] connect [SSID]
-
Make sure your clock is OK
-
timedatectl set-ntp true
-
timedatectl status
-
Figure out your storage devices
-
Blah blah blah: Installation guide - ArchWiki
-
lsblk -f
-
fdisk -l
-
cfdisk
-
Make File Systems and Mount
-
Traditional swap + ext4 + swap
-
mkfs.ext4 /dev/sda2
-
mkswap /dev/sda3
-
swapon /dev/sda3
-
mount /dev/sda2 /mnt
-
mkdir -p /mnt/boot
-
mkfs.fat -F32 /dev/sda1 (make sure partition type is set to EFI System in cfdisk)
-
mount /dev/sda1 /mnt/boot
-
EFI partition
-
Encrypted BTRFS + encrypted swap
-
cfdisk to gpt and make volumes
-
mkfs.vfat -F32 -n "EFI" /dev/nvme0n1p1
-
mkswap -L swap /dev/nvem0n1p2
-
cryptsetup luksFormat /dev/nvme0n1p3
cryptsetup open /dev/nme0n1p3 btrfs
mkfs.btrfs -L "arch" /dev/mapper/btrfs
mount /dev/mapper/btrfs /mnt
mount /dev/mapper/btrfs /mnt
cd /mnt
-
See:
-
Installing Arch Linux with an encrypted btrfs root, with GPT and UEFI support · GitHub
-
Make sure your arch key ring is up to date
-
pacman -S
-
pacman -S archlinux-keyring
-
Install the base system
-
pacstrap -i /mnt base base-devel linux linux-firmware linux-headers amd-ucode Intel-ucode
-
Generate fstab (w/ UUID)
-
genfstab -U /mnt > /mnt/etc/fstab
-
cat /mnt/etc/fstab
-
chroot
-
arch-chroot /mnt /bin/bash
-
Select a mirror
-
pacman -S reflector rsync
-
reflector --verbose --country 'United States' -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist
-
Update
-
pacman -Syu
-
pacman -Sy fish vim
-
cd /usr/bin; rm vi; ln -s vim vi
-
Locale
-
vi /etc/locale.gen and uncomment en_US.UTF-8 UTF-8
-
locale-gen
-
echo LANG=en_US.UTF-8 > /etc/locale.conf
-
Time
-
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
-
hwclock --systohc --utc
-
Hostname
-
echo '{$hostname}' > /etc/hostname
-
Root
-
passwd
-
Boot Loader
-
systemd-boot (gummiboot)
-
bootctl —path=/boot install
-
vi /boot/loader/entries/arch.conf
-
title Arch Linux
-
linux /vmlinuz-linux
-
initrd /initramfs-linux.img
-
options root=/dev/sda2 rw
-
vi /boot/loader/loader.conf
-
timeout 3
-
default arch
-
Notes
-
$esp = /boot if you’ve mounted things as I have (should be where the EFI folder is)
-
you need to boot from the boot stick as UEFI I order for UEFI to work
-
See also: ArchWiki:Archive - ArchWiki
-
You could use grub but it’s more of a PITA
-
GRUB UEFI - refuses to boot properly…
-
pacman -S dosfstools grub os-prober efibootmgr
-
grub-install —target=x86_64-efi —efi-directory=/boot —bootloader-id=grub —recheck
-
grub-mkconfig -o /boot/grub/grub.cfg
-
efibootmgr -v
-
Network Setup
-
Here’s a basic thing you could do:
-
Wired on startup
-
systemctl enable dhcpcd
-
Wireless
-
pacman -S dialog
-
wifi-menu
-
To simply start up the network once
-
ip link to get your network devices
-
ip link set {$interface_name} up to bring it up
-
dhcpcd {$interface_name} to get a dhcp lease
-
Lets save ourselves some trouble and set up NetworkManager now though (otherwise you will need to systemctl --type=service and systemctl disable other network services)
-
pacman -S networkmanager
-
sudo systemctl enable NetworkManager
-
sudo systemctl start NetworkManager
-
Network Accessibility
-
pacman -S openssh
-
systemctl enable sshd
-
systemctl start sshd
-
pacman -S avahi nss-mdns
-
vi /etc/nsswitch.conf and append mdns to the hosts: line
-
sudo systemctl enable avahi-daemon.service
-
sudo systemctl start avahi-daemon.service
-
Reference: Avahi - ArchWiki
-
Install optional Packages
-
Honestly, we can do most of the stuff we know we want or need now, or we can just reboot and do w/ it once we’re not in chroot (make a user of course)
-
Reboot
-
exit
-
umount -R /mnt
-
reboot
-
Reference
-
useradd -m -G wheel -s /usr/bin/fish lhl
-
passwd lhl
-
visudo
-
uncomment %wheel ALL=(ALL) ALL
-
makepkg won’t run as root so you need to make a local user first
-
Reference
-
Set up keys so packages will build
-
gpg —list-keys
-
makes sure your current user has a gpg database
-
echo ‘keyring /etc/pacman.d/gnupg/pubring.gpg’ >> ~/.gnupg/gpg.conf
-
Reference
-
Get Packages (as user)
-
sudo pacman -S git wget curl perl yajl expac bash-completion
-
cower
wget https://aur.archlinux.org/cgit/aur.git/snapshot/cower.tar.gz
tar xvfz cower.tar.gz
cd cower
makepkg
sudo pacman -U cower-{$version}.pkg.tar.xz
-
No longer needed but if you need to add keys…
-
$ gpg --recv-key 1EB2638FF56C0C53
-
gpg: key F56C0C53: public key "Dave Reisner [email protected]" imported
-
gpg: no ultimately trusted keys found
-
gpg: Total number processed: 1
-
gpg: imported: 1
-
makepkg requires /usr/bin/core_perl in the path
-
bash export PATH=/usr/bin:/usr/local/bin:/usr/bin/core_perl
-
fish set PATH /usr/bin /usr/local/bin /usr/bin/core_perl
-
pacaur
wget https://aur.archlinux.org/cgit/aur.git/snapshot/pacaur.tar.gz
tar xvfz pacaur.tar.gz
cd pacaur
makepkg
sudo pacman -U pacaur-{$version}.pkg.tar.xz
- We can now use pacaur instead of pacman to install both official arch and unofficial AUR packages.
NTFS is the best choice for data drives as it is the only modern FS that has support on Linux, OSX, and Windows.
-
pacaur -S ntfs-3g
-
NTFS doesn’t support POSIX permissions well for cross-platform mounts
-
Will fail to mount rw if there’s leftover metadata or other issues, usually fixable by ntfsfix
-
Rather than adding to fstab, better to use a custom script for mounting which will try to run ntfsfix (called via rc.local systemd oneshot - see rc.local section)
-
See also: Don’t use ntfsfix in Linux, just turn off Fast Boot in Windows « Arch Linux
-
Reference: NTFS-3G - ArchWiki
- pacaur -S btrfs-progs dosfstools exfat-utils f2fs-tools fuse-exfat gdisk gpart gparted ms-sys mtools nilfs-utils
- Note Linux can only mount journaled HFS+ partitions as read-only
-
Use: rc.local in Arch Linux (systemd) | Some Notes on the Machines
-
/etc/systemd/system/rc-local.service can't be symlink, doesn’t work, don't know why
-
sudo systemctl enable rc-local.service
-
Make sure /etc/rc.local is an executable script (this can be a symlink)
-
Alternatively: AUR (en) - rc-local
systemd-timesyncd might not work w/o systemd-networkd - this doesn’t necessarily play well with networkmanager
-
sudo timedatectl set-ntp true
-
sudo timedatectl status
-
Uncomment NTP in /etc/systemd/timesyncd.conf if necessary
-
Reference
-
http://xmodulo.com/switch-from-networkmanager-to-systemd-networkd.html
Alternative
- pacaur -S ntpdate
- sudo ntpdate -s time.nist.gov
-
Intel
-
pacaur -S intel-ucode
-
AMD
-
pacaur -S amd-ucode
-
Grub
# grub-mkconfig -o /boot/grub/grub.cfg
-
gummiboot
-
Add initrd /intel-ucode.img before other initrd in /boot/loader/entries/arch.conf
If laptop:
-
pacaur -S ethtool lm_sensors lsb-release smartmontools tlp tp_smapi x86_energy_perf_policy
-
pacaur -S powertop
-
sudo systemctl enable tlp.service
-
sudo systemctl enable tlp-sleep.service
-
sudo tlp start
-
Stats
-
4.6W idle w/ Lenovo X250 (i7-5600 2.6GHz, 8GB RAM, 512GB SSD) @ 30% backlight, 5GHz Wifi (70/70 quality, -22dB)
-
Wait for v4.2 kernel for better power? currently when idle, state is in pc6, 0% pc7
-
powertune --auto-tune increases discharge rate for some reason, but worth testing
-
Reference
If you have weird hardware, this may be an issue…
-
Reference
-
Find out what HW you have
-
lspci -k for PCI, or for USB lsusb -v
-
Broadcom
-
While there are open source drives, broadcom-wl (restricted) is supposedly the most stable. You will need to wait until setting up pacaur to install those (dkms version makes kernel upgrades less likely to break things)
-
pacaur -S broadcom-wl-dkms
-
If you don’t have wired ethernet or a USB wireless interface you will need to use the offline installation instructions:
-
modprobe wl
-
Realtek
-
Some Realtek drivers should be in the mainline kernel. If not
-
pacaur -S dkms linux-headers
-
Search for appropriate drivers AUR (en) - Packages
-
Kernel Upgrades
-
Regular
-
pacaur -S broadcom-wl
-
sudo modprobe wl
-
DKMS
-
While dkms is listed as less likely to break things, this hasn’t been the case for me. If you upgrade the kernel, you will probably want to pacuar -R broadcom-wl-dkms and pacaur -S broadcom-wl-dkms to reinstall before rebooting
-
If not you probably can do the following:
-
dkms status
-
sudo dkms remove broadcom-wl/6.30.233.271 --all
-
this should be whatever version is listed
-
sudo dkms build broadcom-wl/6.30.233.271
-
sudo dkms install broadcom-wl/6.30.233.271
-
sudo systemctl restart dkms.service
-
modprobe wl
-
If this doesn’t work a reboot might help
-
If that doesn’t work, you’re going to need to want to either remove/install broadcom-wl-dkms from a hard line or copy the package over sneakernet. Terrible I know.
-
lspci | grep VGA
-
Intel
-
pacaur -S xf86-video-intel
-
Nvidia
-
pacaur -S nvidia nvidia-libgl nvidia-settings nvidia-utils cuda
-
Reference: NVIDIA - ArchWiki
-
AMD
-
pacaur -S amdgpu-pro
-
yay -S xf86-video-amdgpu
-
OpenCL stuff
-
pacaur -S opencl-headers ocl-icd opencl-amd amdapp-sdk
-
You may need to pacaur -Se amdapp-sdk and fix a dangling symlink: Remove dangling symlink before operating on it · cviebig/arch-aur-amdapp-sdk@97fde4b · GitHub
-
Reference
-
pacaur -Syu
-
pacaur -S cpio lbzip2 links lsof lzop mlocate net-tools openssh p7zip rsync sift the_silver_searcher time unace unrar unzip wireless_tools xz zip
-
pacaur -S bind-tools
-
pacaur -S python2 python2-setuptools
-
sudo easy_install-2.7 pip
-
pacaur -S python python-setuptools
-
sudo easy_install pip
-
CLI niceness
-
pacaur -S fish
-
chsh -s /usr/bin/fish
-
pacaur -S byobu
-
sudo pip install powerline-status psutil
-
pacaur -S python-pygit2
-
mdns
-
pacaur -S avahi nss-mdns
-
vi /etc/nsswitch.conf and append mdns to the hosts: line
-
sudo systemctl enable avahi-daemon.service
-
sudo systemctl start avahi-daemon.service
-
Reference: Avahi - ArchWiki
-
Arch feedback
-
pacaur -S pkgstats
-
pacaur -S dstat htop nmon
-
pacaur -S bmon iftop nbwmon nethogs nload slurm vnstat wavemon
-
pacaur -S baobab
-
sudo pip install glances
-
pacaur -S xorg xorg-server xorg-server-utils xorg-server-xephyr
-
sudo nvidia-xconfig
-
Be sure to add Option "NoLogo" to the /etc/X11/xorg.conf if you don't want the logo to flash w/ an Nvidia card
- pacaur -S lightdm lightdm-gtk-greeter accountsservice
- systemctl enable lightdm.service
-
WM & Friends
-
pacaur -S compton gnome-keyring gsimplecal hsetroot openbox network-manager-applet scrot tint2
-
Fonts (infinality-bundle)
-
infanility is dead. here’s how to remove it:
pacaur -S cairo
pacaur -S fontconfig
pacaur -S pkgbrowser
pacaur -Rns ibfonts-meta-extended
pacaur -S gsfonts
pacaur -S ttf-dejavu
pacaur -S cantarell-fonts
pacaur -S tt-droid
pacaur -S ttf-liberation
# Remove/replace rest of the fonts
pacaur -S fonts-meta-extended-lt
ln -s /etc/fonts/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d
ln -s /etc/fonts/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d
-
Powerline Fonts
-
git clone https://github.com/powerline/fonts.git
-
cd fonts; ./install.sh; cd ..; rm -rf fonts
-
Terminal
-
pacaur -S rxvt-unicode termite
-
File Manager (including iOS + Android support)
-
pacaur -S gvfs gvfs-afc gvfs-gphoto2 gvfs-mtp mtpfs thunar thunar-volman thunar-archive-plugin thunar-media-tags-plugin tumbler usbmuxd xarchiver
-
Clipboard Manager
-
pacaur -S copyq clipit
-
Notifications
-
pacaur -S dunst
-
Launcher
-
pacaur -S bc pastebinit albert
-
Search (recoll may be better, will test if it ever becomes a need/problem)
-
pacaur -S tracker
-
tracker daemon -s
-
tracker status
-
tracker-needle for search gui
-
pacaur -S ripgrep
-
Sound
-
pacaur -S alsa-utils pulseaudio pulseaudio-alsa pavucontrol pnmixer
-
Chromium
-
pacuar -S chromium
-
Google Chrome
-
pacaur -S google-chrome
-
pacaur -S google-chrome-beta
-
Firefox
-
pacaur -S firefox
-
Firefox Developer (use Firefox dependencies)
-
the AUR is broken and we want regular updates anyway
wget https://download.mozilla.org/?product=firefox-devedition-latest-ssl&os=linux64&lang=en-US
-
see also: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora/
-
tar xvfj firefox-{$version}.en-US.linux-x86_64.tar.bz2
-
sudo mv firefox /opt/firefox-developer
-
sudo ln -s /opt/firefox-developer/firefox /usr/bin/firefox-developer
-
Flash for Firefox
-
pacaur -S freshplayerplugin-git
-
Chek version: http://www.adobe.com/software/flash/about/
-
H.264 for Firefox
-
pacaur -S gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-ugly
-
about:config
-
media.gstreamer.enabled=true
-
media.mediasource.enabled=true
-
media.mediasource.mp4.enabled=true
-
media.mediasource.webm.enabled=true
-
Check support: https://www.youtube.com/html5
-
Firefox Developer Edition has issues w/ H.264
-
Google Talk
-
pacuar -S google-talkplugin
-
Set Default Browser
-
xdg-settings set default-web-browser google-chrome-beta.desktop
-
Settings are in ~/.config/mimeapps.list
-
You can debug via:
-
bash -x xdg-open http://www.google.com
-
General
-
pacaur -S gvim
-
make sure .vimrc is installed (see config)
-
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
-
vim +PluginInstall +qall
-
pacaur -S npm
-
sudo npm install http-server -g
-
pacaur -S racket
-
sudo pip install httpie
-
sudo pip install ipython[notebook]
-
Lensley
-
sudo easy_install-2.7 pip
-
sudo pip2 install envoy ll-xist==3.25 pycurl pyserial python-memcached
-
pacaur -S imagemagick openjpeg2
-
pacaur -S mysql-workbench
-
VR
-
pacaur -S unity-editor
-
pacaur -S osvr-core-git osvr-libfunctionality-git osvr-oculus-rift-git osvr-steamvr-git osvr-tracker-viewer-git
-
ARM
-
pacaur -S debootstrap qemu-user-static binfmt-support
-
uncomment [multilib] in /etc/pacman.conf
-
pacaur -Syu
-
pacaur -S wine winetricks lib32-alsa-lib lib32-alsa-plugins lib32-mpg123 lib32-libpulse lib32-gnutls samba
-
winetricks allfonts
-
wine 1Password-4.6.0.585.exe
-
where 1Password... is the installer
-
To run 1Password
-
wine 'C:\Program Files (x86)\1Password 4\1Password.exe'
-
see ~/.local/share/applications/wine/Programs/1Password/1Password 4.desktop
-
Browser plugin
-
Disable signature validation in 1Password > Help > Advanced
-
Install as Normal (ie via Extension Stores)
-
To autostart 1Password Helper
-
Add to .config/openbox/autostart
-
wine 'C:\Program Files (x86)\1Password 4\Agile1pAgent.exe'
-
See also:
-
Protocol
-
https://discussions.agilebits.com/discussion/2936/chrome-extension-on-linux/p2
-
http://niels.kobschaetzki.net/blog/2014/07/10/1password-4-in-linux/
-
New Product Request: 1Password for Linux [In Progress] - Page 9 — 1Password Support Community
-
Images
-
pacaur -S eog gthumb qiv
-
pacaur -S evince mcomix
-
pacaur -S gimp
-
pacaur -S okular
-
Music
-
pacaur -S clamz moc-svn mopidy mopidy-spotify spotify
-
Spotify may have issues w/ the AUR (2017-04-25)
gpg --recv-keys --keyserver hkp://pgp.mit.edu D9C4D26D0E604491
gpg --recv-keys --keyserver hkp://pgp.mit.edu 5CC908FDB71E12C2
pacaur -S libopenssl-1.0-compat libcurl-openssl-1.0
cd ~/.cache/pacaur/spotify
git clean -fdx
git pull origin # cheers agm28011997
git checkout 226c803
-
Reference:
-
Video
-
pacaur -S atomicparsley ffmpeg rtmpdump gnome-vfs gst-libav gst-plugins-bad gst-plugins-good libva-vdpau-driver libmtp lua-socket mpv vlc youtube-dl
-
new versions of vlc may segfault w/o intel-ucode update
- pacaur -S slack-desktop
-
pacaur -S dropbox dropbox-cli thunar-dropbox
-
Reference: Dropbox - ArchWiki
-
MAX file watches
-
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
-
Install
-
vi /etc/pacman.conf and enable [multilib] and [multilib-testing]
-
pacaur -S android-sdk android-sdk-platform-tools android-sdk-build-tools android-studio android-udev
-
infinality bundles preferred but maybe not available?
-
Permissions for sdk manager updates
-
sudo chown -R :lhl /opt/android-sdk
-
sudo chmod -R g+w /opt/android-sdk
-
Fix Fonts
-
sudo vi /opt/android-studio/bin/studio64.vmoptions
-
-Dawt.useSystemAAFontSettings=on
-
Reference: Android - ArchWiki
- pacaur -S steam
- requires multilib
-
pacaur -S bluez bluez-firmware bluez-libs bluez-utils pulseaudio-alsa pulseaudio-bluetooth
-
pacaur -S blueman
-
Notes
-
depending on your tlp settings, you may need to rfkill list and rfkill unblock bluetooth to enable Bluetooth. You can change settings in /etc/default/tlp
-
Once bluetooth is enabled, blueman-applet works great for searching, pairing, and setting up devices as an audio sink.
-
See: http://askubuntu.com/questions/180744/how-to-enable-hard-blocked-bluetooth-in-thinkpad-edge-320
-
Reference
-
name change in progress: Bluetooth headphones and Arch Linux: the endless battle
-
Autostart (on boot)
-
For advanced BT audio support use pulseaudio-modules-bt-git
-
https://aur.archlinux.org/packages/pulseaudio-modules-bt-git/
Sony MDR-1000XM3 Setup
## Requires pulseaudio-modules-bt-git (w/ libldac)
# echo 'load-module module-bluetooth-discover a2dp_config="ldac_eqmid=hq"' >> /etc/pulse/default.pa
# echo 'load-module module-bluez5-discover a2dp_config="ldac_eqmid=sq"' >> /etc/pulse/default.pa
$ pulseaudio -k; pulseaudio --start
# Reconnect w/ blueman or bluetoothctl
$ pactl list sinks | grep -e bluez -e a2dp_codec
Name: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink
Driver: module-bluez5-device.c
Monitor Source: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink.monitor
bluetooth.a2dp_codec = "LDAC"
device.api = "bluez"
bluez.path = "/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX"
bluez.class = "0x240404"
bluez.alias = "WH-1000XM3"
pacaur -S all-repository-fonts
pacaur -S nerd-fonts-git
See also: https://aur.archlinux.org/packages/ttf-google-fonts-git/
(updated too often to install)
pacaur -S cups cups-pdf
systemctl enable org.cups.cupsd
systemctl start org.cups.cupsd
### Add user to sys to be able to lpinfo as user (vigr, vigr -s)
# https://willhaley.com/blog/printing-in-arch-linux/
# https://wiki.archlinux.org/index.php/CUPS/Troubleshooting#Bad_permissions
/etc/udev/rules.d/10-dymo.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0922", ATTRS{idProduct}=="1001", MODE="0664", GROUP="lp", OWNER="lhl"
udevadm control --reload-rules
# replug device
# to check lsusb to get device bus etc, the ls -l /dev/bus/usb/[bus] to make sure permissions are correct
Dropbox Paper
Papyrus
Wunderlist
Wunderlistux
- Run installer script (be sure to review it yourself)
cd /usr/local/bin
sudo ln -s /opt/wunderlistux/Wunderlistux
Facebook Messenger
Messenger for Desktop
Caprine
GitHub - sindresorhus/caprine: Elegant Facebook Messenger desktop app
Evernote
Whatever
GitHub - sbrshk/whatever: An unofficial Evernote desktop client for Linux
-
Setup .ssh keys
-
Clone private dotfiles repo
-
Checkout onto home/local volume in case /data doesn’t mount
-
Symlink config
-
mv .config .config.local
-
ln -s dotfiles/common/config .config
breaks w/ every kernel update
pacaur -S broadcom-wl
sudo modprobe wl
if you have verification issues
https://aur.archlinux.org/packages/ncurses5-compat-libs/
gpg --keyserver pgp.mit.edu --recv-keys F7E48EDB
Compton not working
- glx issue, check w/ glxinfo | grep OpenGL to see what’s up
- no glx, bwaa, is it the nvidia drivers?
- try nvidia-beta nvidia-libgl-beta
- yep, that fixed it, isn’t that a bitch?
-
Clipboard Manager - function like ClipMenu
-
Clipit is not as nice as [ClipMenu for OS X](http://ClipMenu for OS X). GPaste looks good but requires a bajillion packages (and then the AUR fails to build).
-
gpaste
-
pacaur -S gobject-introspection
-
pacaur -S gpaste-git
-
SSB
-
Make it easy to launch executables
-
Better work on the favicon.ico
-
Sound
-
Smartly adjust volume and output (headphone, speaker, bluetooth speaker)
ip link set enp0s25 up
ip addr add 192.168.2.2/24 broadcast 192.168.2.255 dev enp0s25
ip route add default via 192.168.2.1
DNS
Domain name resolution - ArchWiki
echo 'nameserver 8.8.8.8' >> /etc/resolve.conf
1Password
-
1Password Anywhere
-
put into rc.local:
-
/usr/bin/http-server -p 8000 /data/Dropbox/1Password.agilekeychain &
-
vs keepass url next</title><title>price drop
-
https://itunes.apple.com/en/app/minikeepass-secure-password/id451661808?mt=8
Issues appear to be w/ the USB port itself…
-
If experiencing hangs while transferring files, this may be due to bugs with the UAS (USB Attached SCSI) system
-
debug (see hangups/resets) w/ journalctl -f
-
Disable the UAS module
-
sudo echo ‘blacklist uas’ > /etc/modprobe.d/usb3-drives.conf
-
See also:
-
Arch Linux ARM • View topic - [solved]system hang after attached USB hard disk
-
http://electronicdesign.com/embedded/whats-difference-between-usb-uasp-and-bot
http://blog.goodstuff.im/1password
GitHub - robbiev/multipass-chrome: Unofficial 1Password Chrome extension
http://www.lucianofiandesio.com/1password-in-linux
Network Sharing
dnsmasq
Advanced traffic control - ArchWiki
Arch Linux - netbrake 0.2-7 (x86_64)
http://freecode.com/projects/pyshaper/
Wunderlist
Evernote
- pacaur -S nixnote-beta
geeknote-improved-git
-
pacaur -S lib32-gnutls samba
-
Notes:
-
Missing or broken libgnutls library | Knowledge Base | CodeWeavers
-
[SOLVED] ntlm_auth errors / Networking, Server, and Protection / Arch Linux Forums
SSB
https://aur.archlinux.org/packages/fogger-bzr/
GitHub - rubiojr/bottles: Turn Your Web Apps into Real Linux Apps :)
Übersicht for Linux
https://launchpad.net/~m-buck/+archive/ubuntu/gtk-desktop-info
https://code.launchpad.net/~m-buck/+junk/gtk-desktop-info
http://ubuntuforums.org/showthread.php?t=1010808
http://bloc.eurion.net/archives/2009/standalone-pygtk-desktop-widgets/
Almost works...
Dead project.
https://launchpad.net/screenlets
-
screenlets
-
pacaur -S python2-feedparser python2-pillow python2-pytz python2-numpy screenlets screenlets-pack-basic
-
sudo gdk-pixbuf-query-loaders --update-cache
-
sudo gtk-update-icon-cache -t -f /usr/share/icons/hicolor
byobu++
automated terminal management and history
Power Management
See also:
https://github.com/uncon/wiki/blob/master/arch_linux/xps13.md
Figure out
LemonBar
https://www.linux.org.ru/gallery/11843658.png
http://i.imgur.com/cVPylyx.png
Aliases
https://www.reddit.com/r/archlinux/comments/3sh9q4/what_aliasesbash_functions_do_you_use_to_that/
Fixing Tearing
this seems to work: [SOLVED] Tearless compositing. / Applications & Desktop Environments / Arch Linux Forums
see also:
[SOLVED] Nvidia tearing / Applications & Desktop Environments / Arch Linux Forums
graphics - Why is video tearing such a problem in Linux? - Unix & Linux Stack Exchange
Evernote w/ Wine
//
// winetricks wininet
// Evernote Cannot Connect To Internet - WineHQ Forums
pacaur -S lib32-openssl098
pacaur -S openssl098
// http://comments.gmane.org/gmane.comp.emulators.wine.bugs/396702
Time Zone switching
timedatectl set-timezone America/Los_Angeles
pacaur -S xautolock
Add to .xinitrc
xautolock -time 15 -locker 'systemctl suspend' -notify [margin] -notifier [notifier] &
Allow users to shutdown - ArchWiki
Don’t Lock if watching video:
-
locker calls script
-
script checks for video playing or app whitelist
-
fullscreen
-
or just when sound is active
cat /proc/asound/card*/pcm*/sub*/status | grep RUNNING
pacmd list-sink-inputs
-
bash - How to detect that the sound is currently playing in Linux? - Stack Overflow
-
ubuntu 11.10 - Detecting audio playing in a bash script - Super User
-
linux - Testing if audio devices / sound cards are currently playing? - Unix & Linux Stack Exchange
-
file operation
-
dstat? - raw amount
-
atop or iotop for process
-
Another option is to use: sudo iotop -aoP
-a Will show accumulated output
-o Will only output
-P Will only show processes instead of threads
-
This program will tell you how much a process has written to disk and read from disk since iotop was started.
-
http://serverfault.com/questions/169676/howto-check-disk-i-o-utilisation-per-process
-
How to check progress of running cp? - Unix & Linux Stack Exchange
-
linux - Determine if file is in the process of being written upon? - Server Fault
-
process - How can I pause/resume rsync - Unix & Linux Stack Exchange
-
linux - Move file but only if it's closed - Unix & Linux Stack Exchange
html - How can I determine if HTML5 player is running in browser? - Stack Overflow
Adapt lightsOn/lightsOn.sh at master · iye/lightsOn · GitHub
https://aur.archlinux.org/packages/caffeine-ng
https://gist.github.com/boarpig/8118854
suspend/hibernate
Archlinux enabling hibernation - Programmable Production
https://feeding.cloud.geek.nz/posts/creating-a-modern-tiling-desktop-environment-using-i3/
Hibernate when i press power button / Newbie Corner / Arch Linux Forums
Notifications
GitHub - sboli/twmn: A notification system for tiling window managers
notify-send
http://www.knopwob.org/dunst/screenshots.html
GitHub - halhen/statnot: Status / Notification system for lightweight Window Managers
Moom/Resizer
- easy commands / help/kb shortcut to resize windows, smaller, left half etc
Styling Notifications
Themes/Stendhal at master · tatou-tatou/Themes · GitHub
https://www.reddit.com/r/unixporn/comments/3eqxba/i3gaps_gruvbox_inspired/
GitHub - zachbwh/bspwm_rice: My configs that I use for my bspwm environment
GitHub - atweiden/dotfiles: Dotfiles
https://github.com/knopwob/dunst/issues/114
https://nildeala.fr/2013/02/16/dunst-notifications-minimalistes-et-elegantes.html
https://www.reddit.com/r/unixporn/comments/3otrjh/i3gaps_got_bored_of_using_the_gruvbox_setup_for/
GitHub - TomboFry/dotfiles: [WIP] XTerm/urxvt/st, Oh-my-Zsh, Vim
https://plus.google.com/106152149097741431219/posts/f48dhBiRtpg
https://m.reddit.com/r/unixporn/comments/46g091
http://www.gulfweb.net/rlwalker/astronomy/calendar/GoogleCalendarSearchCommandLine.htm
GitHub - magdeoz/dotfiles: dotfiles, bspwm, lemobar, ranger, X
dotbot-user-study/jubnzv-dotfiles_install.conf.yaml at master · casey/dotbot-user-study · GitHub
- Can’t have a ‘.’ in the filename
- Need to be chmod a+x along path
- need to be own by root
-
-
-
-
If you have weird hardware, this may be an issue…
-
Reference
-
Find out what HW you have
-
lspci -k for PCI, or for USB lsusb -v
-
Broadcom
-
While there are open source drives, broadcom-wl (restricted) is supposedly the most stable. You will need to wait until setting up pacaur to install those (dkms version makes kernel upgrades less likely to break things)
-
pacaur -S broadcom-wl-dkms
-
If you don’t have wired ethernet or a USB wireless interface you will need to use the offline installation instructions:
-
modprobe wl
-
Realtek
-
Some Realtek drivers should be in the mainline kernel. If not
-
pacaur -S dkms linux-headers
-
Search for appropriate drivers AUR (en) - Packages
-
Kernel Upgrades
-
Regular
-
pacaur -S broadcom-wl
-
sudo modprobe wl
-
DKMS
-
While dkms is listed as less likely to break things, this hasn’t been the case for me. If you upgrade the kernel, you will probably want to pacuar -R broadcom-wl-dkms and pacaur -S broadcom-wl-dkms to reinstall before rebooting
-
If not you probably can do the following:
-
dkms status
-
sudo dkms remove broadcom-wl/6.30.233.271 --all
-
this should be whatever version is listed
-
sudo dkms build broadcom-wl/6.30.233.271
-
sudo dkms install broadcom-wl/6.30.233.271
-
sudo systemctl restart dkms.service
-
modprobe wl
-
If this doesn’t work a reboot might help
-
If that doesn’t work, you’re going to need to want to either remove/install broadcom-wl-dkms from a hard line or copy the package over sneakernet. Terrible I know.
-
lspci | grep VGA
-
Intel
-
pacaur -S xf86-video-intel
-
Nvidia
-
pacaur -S nvidia nvidia-libgl nvidia-settings nvidia-utils cuda
-
Reference: NVIDIA - ArchWiki
-
AMD
-
pacaur -S amdgpu-pro
-
yay -S xf86-video-amdgpu
-
OpenCL stuff
-
pacaur -S opencl-headers ocl-icd opencl-amd amdapp-sdk
-
You may need to pacaur -Se amdapp-sdk and fix a dangling symlink: Remove dangling symlink before operating on it · cviebig/arch-aur-amdapp-sdk@97fde4b · GitHub
-
Reference
-
pacaur -Syu
-
pacaur -S cpio lbzip2 links lsof lzop mlocate net-tools openssh p7zip rsync sift the_silver_searcher time unace unrar unzip wireless_tools xz zip
-
pacaur -S bind-tools
-
pacaur -S python2 python2-setuptools
-
sudo easy_install-2.7 pip
-
pacaur -S python python-setuptools
-
sudo easy_install pip
-
CLI niceness
-
pacaur -S fish
-
chsh -s /usr/bin/fish
-
pacaur -S byobu
-
sudo pip install powerline-status psutil
-
pacaur -S python-pygit2
-
mdns
-
pacaur -S avahi nss-mdns
-
vi /etc/nsswitch.conf and append mdns to the hosts: line
-
sudo systemctl enable avahi-daemon.service
-
sudo systemctl start avahi-daemon.service
-
Reference: Avahi - ArchWiki
-
Arch feedback
-
pacaur -S pkgstats
-
pacaur -S dstat htop nmon
-
pacaur -S bmon iftop nbwmon nethogs nload slurm vnstat wavemon
-
pacaur -S baobab
-
sudo pip install glances
-
pacaur -S xorg xorg-server xorg-server-utils xorg-server-xephyr
-
sudo nvidia-xconfig
-
Be sure to add Option "NoLogo" to the /etc/X11/xorg.conf if you don't want the logo to flash w/ an Nvidia card
- pacaur -S lightdm lightdm-gtk-greeter accountsservice
- systemctl enable lightdm.service
-
WM & Friends
-
pacaur -S compton gnome-keyring gsimplecal hsetroot openbox network-manager-applet scrot tint2
-
Fonts (infinality-bundle)
-
infanility is dead. here’s how to remove it:
pacaur -S cairo
pacaur -S fontconfig
pacaur -S pkgbrowser
pacaur -Rns ibfonts-meta-extended
pacaur -S gsfonts
pacaur -S ttf-dejavu
pacaur -S cantarell-fonts
pacaur -S tt-droid
pacaur -S ttf-liberation
# Remove/replace rest of the fonts
pacaur -S fonts-meta-extended-lt
ln -s /etc/fonts/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d
ln -s /etc/fonts/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d
-
Powerline Fonts
-
git clone https://github.com/powerline/fonts.git
-
cd fonts; ./install.sh; cd ..; rm -rf fonts
-
Terminal
-
pacaur -S rxvt-unicode termite
-
File Manager (including iOS + Android support)
-
pacaur -S gvfs gvfs-afc gvfs-gphoto2 gvfs-mtp mtpfs thunar thunar-volman thunar-archive-plugin thunar-media-tags-plugin tumbler usbmuxd xarchiver
-
Clipboard Manager
-
pacaur -S copyq clipit
-
Notifications
-
pacaur -S dunst
-
Launcher
-
pacaur -S bc pastebinit albert
-
Search (recoll may be better, will test if it ever becomes a need/problem)
-
pacaur -S tracker
-
tracker daemon -s
-
tracker status
-
tracker-needle for search gui
-
pacaur -S ripgrep
-
Sound
-
pacaur -S alsa-utils pulseaudio pulseaudio-alsa pavucontrol pnmixer
-
Chromium
-
pacuar -S chromium
-
Google Chrome
-
pacaur -S google-chrome
-
pacaur -S google-chrome-beta
-
Firefox
-
pacaur -S firefox
-
Firefox Developer (use Firefox dependencies)
-
the AUR is broken and we want regular updates anyway
wget https://download.mozilla.org/?product=firefox-devedition-latest-ssl&os=linux64&lang=en-US
-
see also: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora/
-
tar xvfj firefox-{$version}.en-US.linux-x86_64.tar.bz2
-
sudo mv firefox /opt/firefox-developer
-
sudo ln -s /opt/firefox-developer/firefox /usr/bin/firefox-developer
-
Flash for Firefox
-
pacaur -S freshplayerplugin-git
-
Chek version: Adobe - Download Adobe Acrobat Reader DC
-
H.264 for Firefox
-
pacaur -S gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-ugly
-
about:config
-
media.gstreamer.enabled=true
-
media.mediasource.enabled=true
-
media.mediasource.mp4.enabled=true
-
media.mediasource.webm.enabled=true
-
Check support: https://www.youtube.com/html5
-
Firefox Developer Edition has issues w/ H.264
-
Google Talk
-
pacuar -S google-talkplugin
-
Set Default Browser
-
xdg-settings set default-web-browser google-chrome-beta.desktop
-
Settings are in ~/.config/mimeapps.list
-
You can debug via:
-
bash -x xdg-open http://www.google.com
-
General
-
pacaur -S gvim
-
make sure .vimrc is installed (see config)
-
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
-
vim +PluginInstall +qall
-
pacaur -S npm
-
sudo npm install http-server -g
-
pacaur -S racket
-
sudo pip install httpie
-
sudo pip install ipython[notebook]
-
Lensley
-
sudo easy_install-2.7 pip
-
sudo pip2 install envoy ll-xist==3.25 pycurl pyserial python-memcached
-
pacaur -S imagemagick openjpeg2
-
pacaur -S mysql-workbench
-
VR
-
pacaur -S unity-editor
-
pacaur -S osvr-core-git osvr-libfunctionality-git osvr-oculus-rift-git osvr-steamvr-git osvr-tracker-viewer-git
-
ARM
-
pacaur -S debootstrap qemu-user-static binfmt-support
-
uncomment [multilib] in /etc/pacman.conf
-
pacaur -Syu
-
pacaur -S wine winetricks lib32-alsa-lib lib32-alsa-plugins lib32-mpg123 lib32-libpulse lib32-gnutls samba
-
winetricks allfonts
-
wine 1Password-4.6.0.585.exe
-
where 1Password... is the installer
-
To run 1Password
-
wine 'C:\Program Files (x86)\1Password 4\1Password.exe'
-
see ~/.local/share/applications/wine/Programs/1Password/1Password 4.desktop
-
Browser plugin
-
Disable signature validation in 1Password > Help > Advanced
-
Install as Normal (ie via Extension Stores)
-
To autostart 1Password Helper
-
Add to .config/openbox/autostart
-
wine 'C:\Program Files (x86)\1Password 4\Agile1pAgent.exe'
-
See also:
-
Protocol
-
Chrome Extension on Linux - Page 2 — 1Password Support Community
-
http://niels.kobschaetzki.net/blog/2014/07/10/1password-4-in-linux/
-
New Product Request: 1Password for Linux [In Progress] - Page 9 — 1Password Support Community
-
Images
-
pacaur -S eog gthumb qiv
-
pacaur -S evince mcomix
-
pacaur -S gimp
-
pacaur -S okular
-
Music
-
pacaur -S clamz moc-svn mopidy mopidy-spotify spotify
-
Spotify may have issues w/ the AUR (2017-04-25)
gpg --recv-keys --keyserver hkp://pgp.mit.edu D9C4D26D0E604491
gpg --recv-keys --keyserver hkp://pgp.mit.edu 5CC908FDB71E12C2
pacaur -S libopenssl-1.0-compat libcurl-openssl-1.0
cd ~/.cache/pacaur/spotify
git clean -fdx
git pull origin # cheers agm28011997
git checkout 226c803
-
Reference:
-
Video
-
pacaur -S atomicparsley ffmpeg rtmpdump gnome-vfs gst-libav gst-plugins-bad gst-plugins-good libva-vdpau-driver libmtp lua-socket mpv vlc youtube-dl
-
new versions of vlc may segfault w/o intel-ucode update
- pacaur -S slack-desktop
-
pacaur -S dropbox dropbox-cli thunar-dropbox
-
Reference: Dropbox - ArchWiki
-
MAX file watches
-
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
-
Install
-
vi /etc/pacman.conf and enable [multilib] and [multilib-testing]
-
pacaur -S android-sdk android-sdk-platform-tools android-sdk-build-tools android-studio android-udev
-
infinality bundles preferred but maybe not available?
-
Permissions for sdk manager updates
-
sudo chown -R :lhl /opt/android-sdk
-
sudo chmod -R g+w /opt/android-sdk
-
Fix Fonts
-
sudo vi /opt/android-studio/bin/studio64.vmoptions
-
-Dawt.useSystemAAFontSettings=on
-
Reference: Android - ArchWiki
- pacaur -S steam
- requires multilib
-
pacaur -S bluez bluez-firmware bluez-libs bluez-utils pulseaudio-alsa pulseaudio-bluetooth
-
pacaur -S blueman
-
Notes
-
depending on your tlp settings, you may need to rfkill list and rfkill unblock bluetooth to enable Bluetooth. You can change settings in /etc/default/tlp
-
Once bluetooth is enabled, blueman-applet works great for searching, pairing, and setting up devices as an audio sink.
-
See: 12.04 - How to enable hard-blocked bluetooth in Thinkpad Edge 320 - Ask Ubuntu
-
Reference
-
name change in progress: Bluetooth headphones and Arch Linux: the endless battle
-
Autostart (on boot)
-
For advanced BT audio support use pulseaudio-modules-bt-git
-
https://aur.archlinux.org/packages/pulseaudio-modules-bt-git/
Sony MDR-1000XM3 Setup
## Requires pulseaudio-modules-bt-git (w/ libldac)
# echo 'load-module module-bluetooth-discover a2dp_config="ldac_eqmid=hq"' >> /etc/pulse/default.pa
# echo 'load-module module-bluez5-discover a2dp_config="ldac_eqmid=sq"' >> /etc/pulse/default.pa
$ pulseaudio -k; pulseaudio --start
# Reconnect w/ blueman or bluetoothctl
$ pactl list sinks | grep -e bluez -e a2dp_codec
Name: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink
Driver: module-bluez5-device.c
Monitor Source: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink.monitor
bluetooth.a2dp_codec = "LDAC"
device.api = "bluez"
bluez.path = "/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX"
bluez.class = "0x240404"
bluez.alias = "WH-1000XM3"
pacaur -S all-repository-fonts
pacaur -S nerd-fonts-git
See also: https://aur.archlinux.org/packages/ttf-google-fonts-git/
(updated too often to install)
pacaur -S cups cups-pdf
systemctl enable org.cups.cupsd
systemctl start org.cups.cupsd
### Add user to sys to be able to lpinfo as user (vigr, vigr -s)
# https://willhaley.com/blog/printing-in-arch-linux/
# https://wiki.archlinux.org/index.php/CUPS/Troubleshooting#Bad_permissions
/etc/udev/rules.d/10-dymo.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0922", ATTRS{idProduct}=="1001", MODE="0664", GROUP="lp", OWNER="lhl"
udevadm control --reload-rules
# replug device
# to check lsusb to get device bus etc, the ls -l /dev/bus/usb/[bus] to make sure permissions are correct
Dropbox Paper
Papyrus
Wunderlist
Wunderlistux
- Run installer script (be sure to review it yourself)
cd /usr/local/bin
sudo ln -s /opt/wunderlistux/Wunderlistux
Facebook Messenger
Messenger for Desktop
Caprine
GitHub - sindresorhus/caprine: Elegant Facebook Messenger desktop app
Evernote
Whatever
GitHub - sbrshk/whatever: An unofficial Evernote desktop client for Linux
-
Setup .ssh keys
-
Clone private dotfiles repo
-
Checkout onto home/local volume in case /data doesn’t mount
-
Symlink config
-
mv .config .config.local
-
ln -s dotfiles/common/config .config