Table of Contents
- Introduction
- Why Arch Linux?
- Hardware specification of the laptop
-
Base installation of Arch Linux
- Prepare USB stick (on other computer with Ubuntu Linux 14.04)
- Prepare Windows 10 (for computer games) for dual booting
- Boot Arch Linux
- Adjust tty font size
- Create partitions
- Format and mount partitions
- Connect to internet
- Run the installer
- genfstab
- Netctl
- arch-chroot
- Locale and time zone
- initramfs
- Boot Loader
- Network
- Set root password
- Configuring Arch Linux after booting to the new system
- Conclusion
- Additional links
Introduction
I configured Arch Linux on the new Thinkpad X1 Carbon (4th generation) with dual booting to the pre-installed Windows 10 (for games I occasionally play). I got close to the 100% of laptop functionality working on the Arch Linux, confirming the rumor that Thinkpads work well with Linux. Setup should be very similar on modern laptops with GPT/UEFI.
Even if Arch wiki is very comprehensive, it needs a bit of reading to decide what is right for the particular hardware. Dual booting with windows and UEFI/GPT are not as well documented as the plain old linux installations.
To see my thoughts after a few months of usage you can jump to Conclusion.
This post was written in and is readable in the Emacs org mode format.
Why Arch Linux?
This section is for informative purposes only. If you are only interested in the installation you can skip to Base installation of Arch Linux.
Minimalist distributions teach you Linux
When some people hear that Arch starts without a GIU they think that using it is “masochistic”. Firstly, you probably don’t need majority of packages bundled with distributions like ubuntu.
Secondly, while Ubuntu may take you “75%” there, you don’t understand how different things got there and treat your OS like magical box, so you can’t improve it. While Arch starts from “20%”, by going “20%->75%” the learning experience allows you to eventually reach “100%” faster than users who want to go from “75% -> 100%”. Therefore, majority of users of distributions like Ubuntu are stuck around “80%”.
Vs other minimalistic distributions – Gentoo and Slackware
-
systemd is the future
Other “minimalist” distributions like Gentoo or Slackware did not adapt the systemd yet. You may not like systemd, but you can’t deny it’s winning.
-
No need to compile packages (Gentoo)
What’s the benefit of waiting a week until all packages compile for your OS? On Arch you can choose between pre-installing packages via pacman and building them with makepkg. If I want to just check out some program, or use it once per month (e.g. gimp) I wouldn’t want to compile it.
-
No manual dependency resolution (Slackware)
Understanding dependencies of your packages is good. You can simply run
pacman -Si gtk3
to see dependencies of a package. Resolving each package manually is too time consuming to be worth it.
Rolling release schedule is good
If you need to run the same Linux version on 100s of machines in the large organization I get why you wouldn’t want rolling release schedule.
- I was much more frequently hit by missing this “new cool flag” in old distributions, rather than I am hit by the bleeding edge packages in Arch Linux.
- If something goes wrong, you can always open a bug and downgrade to older version.
- In the new containerised world servers have less “intervined” dependencies, so it’s easier to just run the latest software from Arch.
- Bugs caused by upgrades in distributions with huge releases are harder to debug. Since everything changes at once it’s harder to isolate the failure.
Arch wiki is awesome
Even when I was using different Linux distributions I was using Arch wiki as my primary source of Linux knowledge. Any other distribution is not nearly as well documented as Arch. If you end up getting majority of your info about Linux from Arch wiki, why not switch to Arch?
Hardware specification of the laptop
This section is for informative purposes only. If you are only interested in the installation you can skip to Base installation of Arch Linux.
Serial number
sudo cat /sys/devices/virtual/dmi/id/product_serial
R90KNV08
Desktop management information
Extracted from:
sudo dmidecode
System Information
System Information Manufacturer: LENOVO Product Name: 20FBCTO1WW Version: ThinkPad X1 Carbon 4th Serial Number: R90KNV08 UUID: 8648D14C-33F4-11B2-A85C-EDB510BB0156 Wake-up Type: Power Switch SKU Number: LENOVO_MT_20FB_BU_Think_FM_ThinkPad X1 Carbon 4th Family: ThinkPad X1 Carbon 4th
Processor
Handle 0x0007, DMI type 4, 48 bytes Processor Information Socket Designation: U3E1 Type: Central Processor Family: Core i7 Manufacturer: Intel(R) Corporation ID: E3 06 04 00 FF FB EB BF Signature: Type 0, Family 6, Model 78, Stepping 3 Flags: FPU (Floating-point unit on-chip) VME (Virtual mode extension) DE (Debugging extension) PSE (Page size extension) TSC (Time stamp counter) MSR (Model specific registers) PAE (Physical address extension) MCE (Machine check exception) CX8 (CMPXCHG8 instruction supported) APIC (On-chip APIC hardware supported) SEP (Fast system call) MTRR (Memory type range registers) PGE (Page global enable) MCA (Machine check architecture) CMOV (Conditional move instruction supported) PAT (Page attribute table) PSE-36 (36-bit page size extension) CLFSH (CLFLUSH instruction supported) DS (Debug store) ACPI (ACPI supported) MMX (MMX technology supported) FXSR (FXSAVE and FXSTOR instructions supported) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) SS (Self-snoop) HTT (Multi-threading) TM (Thermal monitor supported) PBE (Pending break enabled) Version: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz Voltage: 1.0 V External Clock: 100 MHz Max Speed: 8300 MHz Current Speed: 2500 MHz Status: Populated, Enabled Upgrade: Other L1 Cache Handle: 0x0004 L2 Cache Handle: 0x0005 L3 Cache Handle: 0x0006 Serial Number: None Asset Tag: None Part Number: None Core Count: 2 Core Enabled: 2 Thread Count: 4 Characteristics: 64-bit capable Multi-Core Hardware Thread Execute Protection Enhanced Virtualization Power/Performance Control
Memory
8gb in total, 2x of following:
Memory Device Array Handle: 0x0008 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: Chip Set: None Locator: ChannelB-DIMM0 Bank Locator: BANK 2 Type: LPDDR3 Type Detail: Synchronous Speed: 1867 MHz Manufacturer: Samsung Serial Number: None Asset Tag: None Part Number: K4E6E304EE-EGCF Rank: 2 Configured Clock Speed: 1867 MHz Minimum Voltage: Unknown Maximum Voltage: Unknown Configured Voltage: 1.2 V
Motherboard
Base Board Information Manufacturer: LENOVO Product Name: 20FBCTO1WW Version: SDK0J40697 WIN Serial Number: W1KS65P10SY Asset Tag: Not Available
Plugs
- HDMI
- 3 USB (no type C)
- Mini DisplayPort
- Mini jack
- OneLink
Battery
Portable Battery Location: Front Manufacturer: SMP Name: 00HW029 Design Capacity: 52060 mWh Design Voltage: 15200 mV SBDS Version: 03.01 Maximum Error: Unknown SBDS Serial Number: 057C SBDS Manufacture Date: 2016-05-24 SBDS Chemistry: LiP OEM-specific Information: 0x00000000
Cards slots
Handle 0x0021, DMI type 9, 17 bytes System Slot Information Designation: Media Card Slot Type: Other Current Usage: Available Length: Other Characteristics: Hot-plug devices are supported Bus Address: 0000:00:00.0 Handle 0x0022, DMI type 9, 17 bytes System Slot Information Designation: SmartCard Slot Type: Other Current Usage: Available Length: Other Characteristics: Hot-plug devices are supported Bus Address: 0000:00:00.0 Handle 0x0023, DMI type 9, 17 bytes System Slot Information Designation: SimCard Slot Type: Other Current Usage: Available Length: Other Characteristics: None Bus Address: 0000:00:00.0
BIOS
BIOS Information Vendor: LENOVO Version: N1FET38W (1.12 ) Release Date: 03/30/2016 Address: 0xE0000 Runtime Size: 128 kB ROM Size: 16384 kB Characteristics: PCI is supported PNP is supported BIOS is upgradeable BIOS shadowing is allowed Boot from CD is supported Selectable boot is supported EDD is supported 3.5"/720 kB floppy services are supported (int 13h) Print screen service is supported (int 5h) 8042 keyboard services are supported (int 9h) Serial services are supported (int 14h) Printer services are supported (int 17h) CGA/mono video services are supported (int 10h) ACPI is supported USB legacy is supported BIOS boot specification is supported Targeted content distribution is supported UEFI is supported BIOS Revision: 1.12 Firmware Revision: 1.8
No ethernet, but converter is provided
OneLink to ethernet converter have been provided. I didn’t test it on Arch.
Handle 0x0019, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: Not Available Internal Connector Type: None External Reference Designator: Ethernet External Connector Type: RJ-45 Port Type: Network Port
CPU Cache
Handle 0x0003, DMI type 7, 19 bytes Cache Information Socket Designation: L1 Cache Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal Installed Size: 64 kB Maximum Size: 64 kB Supported SRAM Types: Synchronous Installed SRAM Type: Synchronous Speed: Unknown Error Correction Type: Parity System Type: Data Associativity: 8-way Set-associative Handle 0x0004, DMI type 7, 19 bytes Cache Information Socket Designation: L1 Cache Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal Installed Size: 64 kB Maximum Size: 64 kB Supported SRAM Types: Synchronous Installed SRAM Type: Synchronous Speed: Unknown Error Correction Type: Parity System Type: Instruction Associativity: 8-way Set-associative Handle 0x0005, DMI type 7, 19 bytes Cache Information Socket Designation: L2 Cache Configuration: Enabled, Not Socketed, Level 2 Operational Mode: Write Back Location: Internal Installed Size: 512 kB Maximum Size: 512 kB Supported SRAM Types: Synchronous Installed SRAM Type: Synchronous Speed: Unknown Error Correction Type: Single-bit ECC System Type: Unified Associativity: 4-way Set-associative Handle 0x0006, DMI type 7, 19 bytes Cache Information Socket Designation: L3 Cache Configuration: Enabled, Not Socketed, Level 3 Operational Mode: Write Back Location: Internal Installed Size: 4096 kB Maximum Size: 4096 kB Supported SRAM Types: Synchronous Installed SRAM Type: Synchronous Speed: Unknown Error Correction Type: Multi-bit ECC System Type: Unified Associativity: 16-way Set-associative
Pointing devices
Handle 0x0034, DMI type 21, 7 bytes Built-in Pointing Device Type: Track Point Interface: PS/2 Buttons: 3 Handle 0x0035, DMI type 21, 7 bytes Built-in Pointing Device Type: Touch Pad Interface: PS/2 Buttons: 2
Base installation of Arch Linux
I mostly followed steps from https://wiki.archlinux.org/index.php/beginners’_guide with customization for Windows dual booting, uefi, gpt and HiDPI screen.
Prepare USB stick (on other computer with Ubuntu Linux 14.04)
Download
I downloaded the 2016.06.01
image via torrent from https://www.archlinux.org/download/.
Upload it to the usb stick
Since the laptop don’t have the CD, USB is the best booting option. More detailed description is at Arch wiki article about USB flash installation media.
Prepare Windows 10 (for computer games) for dual booting
You may want to take a look at Dual boot with Windows wiki entry.
Shrink the Windows partition from Windows
Even if partition resizing is also supported from Linux, I feel like it’s safer to do it from Windows.
- Press start button
- Search for “Create and format hard disk partitions”
- Right click C:/ and “Shrink Volume”
-
Shrinking limitations
Windows only lets me to reclaim 233 gb out of 474 gb. I tried defragmentation or cleaning up some unnecessary files with no luck. I think it’s not that bad, since I can mount the NTFS partition from arch. Therefore, I can keep the most space hungry files like movies on this partition.
Check that Windows boots into the UEFI/GPT mode
Disable Fast Startup
If you don’t, Linux NTFS driver may damage the NTFS disk. Windows 10 instructions.
Boot Arch Linux
Disable secure boot
It prevents Arch from booting.
- Restart computer
- Press Enter
- F1->Security->Secure Boot
- Change to disabled
- Save and restart
Boot
- Press Enter
- F12
- Choose usb stick
- Arch
Adjust tty font size
Default tty font size if very small due to the HiDPI resolution. You can adjust it with:
cd /usr/share/kbd/consolefonts ls | grep -P "[2-9]\d+\.ps" # Find big fonts. setfont latarcyrheb-sun32 # The biggest one I found.
It’s a good idea to persist the font. Add it later to /etc/vconsole.conf
, after you install a new OS:
KEYMAP=us FONT=latarcyrheb-sun32
Create partitions
No need for swap partition
Since the laptop have 8 GB of RAM it’s plenty. Since 8 GB is more than plenty for a desktop, if OS would run out of 8 GBs it likely means that some program leaks memory and it’s better to fail fast. If I decide afterwards that I need it for features like hibernation I can always use a swap file.
EFI system partition already exists
Since laptop came with the UEFI support, the EFI system partition already exists. You can check it by
gdisk /dev/sda
p to list partition table. See that the first entry (/dev/sda1) is the “EFI system partition”
Create partition for Arch with gdisk
I decided I’ll go with a single Linux partition, since my movies and music will be stored on the NTFS partition. I used gdisk to create a new partition. gdisk is installed by default on the usb stick.
gdisk /dev/sda
p to list all partition tables. Based on this I found that my new partition should be placed between sectors 507793408 and 998166527. n to create a new partition. All default options were reasonable. w to save
Format and mount partitions
I went for ext4.
Why not F2FS?
Since the laptop have the SSD, I was contemplating trying out the F2FS. It’s only slightly faster according to some benchmarks. ext4 have additional features and is more standard so it seems like safer bet.
I have been thinking that maybe F2FS would result in less “SSD tear”. I have been reading than in “desktop” usage SSD tear is almost never an issue and other components in laptop would fail first, so we don’t have to worry about it.
Why not ext3?
There exist some drivers that let windows read and copy files from ext filesystem. Even if support for using ext4 from Windows is worse than ext3, I won’t be using Windows often. If you plan to frequently boot to Windows you may consider ext3 for better Windows compatibility.
Format and mount the Linux partition
lsblk /dev/sda mkfs.ext4 /dev/sda5 mount /dev/sda5 /mnt
Boot partition
-
What is this EFISTUB about?
Section about EFISTUB may be a bit confusing. Note that most EFI boot loaders are EFISTUBs themselves (they both create EFI entries). In particular, systemd-boot will create EFISTUB entries for itself. Bootling Linux using the kernel EFISTUB means you just skip the bootloader. In almost all cases you want to go for bootloader like systemd-boot.
-
Mount existing EFI system partition to /mnt/boot
Since I don’t plan to use EFISTUB as a bootloader and use systemd-boot, I just need to mount our EFI system partition at /mnt/boot.
mkdir -p /mnt/boot mount /dev/sda1 /mnt/boot
-
Do not format the /mnt/boot
systemd-boot will be installed on top of existing Windows boot loader. It will detect the existing windows boot loader and set up the dual booting.
Connect to internet
iw dev # Find an interfrace wifi-menu -o wlp4s0 # pass an interface from the previous command
Run the installer
pacstrap -i /mnt base base-devel
genfstab
genfstab -U /mnt >> /mnt/etc/fstab
Netctl
cp -R /etc/netctl /mnt/etc/netctl
arch-chroot
arch-chroot /mnt /bin/bash
Locale and time zone
# Uncomment en_GB.UTF-8 UTF-8 in /etc/locale.gen locale-gen echo "LANG=en_GB.UTF-8" > /etc/locale.conf tzselect ln -s /usr/share/zoneinfo/Europe/London /etc/localtime hwclock --systohc --utc
I must admit that I had some issues with GB locale after the installation. I switched to US locale and I did not have problems with it yet. IMO, even if you are in the UK, more things will work as you expect when you go with the US locale.
Also, if you install gnome, it stores it’s own locale settings and you need to set them later. To set it, I recommend installing gnome-initial-setup
and restarting the X server.
initramfs
Run:
mkinitcpio -p linux
Problem with missing vmlinuz-linux
Initially I have been getting an error:
ERROR: specified kernel image does not exist; /boot/vmlinuz-linux
The problem was that I mounted the /mnt/boot after running the pacstrap. Pacstrap writes the vmlinuz-linux to /mnt/boot.
Problem with missing firmware
I also got some warnings about some missing firmware.
Warning: Possibly missing firmware wd719x Possibly missing firmware aic94xx
Strangely the problem somehow resolved itself. Some installation must have pulled the package. As this post mentions, missing firmware can be found in AUR.
After it is installed:
modinfo wd719x | grep description modinfo aic94xx | grep description
description: Western Digital WD7193/7197/7296 SCSI driver description: Adaptec aic94xx SAS/SATA driver
Boot Loader
After brief investigation, I decided that I prefer the systemd-boot as an x86_64 UEFI bootloader.
It will be installed on top of existing bootloader
I previously mounted EFI system partition to /boot. This partition has a pre-existing Windows boot loader. systemd-boot will be installed on top of that and it will auto-detect and properly handle the previously installed boot loader.
Install systemd-boot
bootctl install
/boot/loader/loader.conf
timeout 4 default arch editor 0
/boot/loader/entries/arch.conf
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=PARTUUID=c0181663-6019-4a2c-b45a-ab6c112f1aa0 rw
PARTUUID is a GUID of your new partition. Beware that GUID is case sensitive in this case. You can find it using:
blkid -s PARTUUID -o value /dev/sdb5
No need for windows entry in /boot/loader/entries/
systemd-boot auto-detects Windows, so there is no need for the windows entry. My /boot/loader/entries/
directory only contains arch.conf and I can dual boot to Windows.
Windows plays along well
I heard stories that in such setup Windows does not like to play along and messes up the EFI system partition.
I did not experience it. I am running “bleeding edge” Windows 10 develop preview, so it may have been fixed at some point.
Network
Suspicious Unnamed/non-netdev interface
At some point later I noticed a suspcious device when running “iw dev”:
Unnamed/non-netdev interface wdev 0x3 addr ... type P2P-device
Just in case, I disabled the p2p interface:
sudo echo "p2p_disabled=1" >> /etc/wpa_supplicant/wpa_supplicant.conf
Set root password
passwd
Configuring Arch Linux after booting to the new system
At this point I am able to dual boot to Arch/Windows. A few more things after rebooting:
Create the user account
useradd -m kozikow passwd kozikow visudo # in this file configure your user as a sudoer reboot
Hardware support
Input devices
There are two alternative input libraries x86-input-evdev
and x86-input-libinput
. After reading two articles I decided to go with x86-input-libinput
. Some user mentioned: “With xf86-input-libinput, the trackpoint(and middle button scrolling) works out of the box on my ThinkPad, while xf86-input-evdev requires some additional settings”.
Indeed, with libinput everything reasonably worked after the installation.
-
Keyboard hardware buttons
Almost all keyboard “hardware” buttons work as expected, including sound and brightness. There are two minor problems:
-
Airplane mode button
It sucesfully turns on the airplane mode, but turning it off doesn’t work well. After turning the airplane mode off I have to run:
sudo systemctl restart netctl-auto@wlp4s0.service
-
F11 and F12
I don’t know what these buttons supposed to do, but pressing them currently have no effect.
-
Airplane mode button
-
Adjust trackpoint sensitivity
The only annoyance was too slow trackpoint. Methods from arch wiki didn’t work for me, probably since they were meant for the old evdev.
-
Xinput method
pacman -S xorg-xinput xinput list | grep TrackPoint # Find an id of tracpoint. 12 in my case. xinput --set-prop 12 'libinput Accel Speed' 1.0
Persisting this method requires adding the set-prop command to the .xinitrc (before
exec gnome-session
). -
Device parameters method
/usr/local/bin/my_init.sh
:echo 180 > /sys/bus/serio/devices/serio2/sensitivity
Even if there are multiple devices in sys/bus/serio/devices, only the touchpad have a sensitivity file present. Also see this post.
I tried to persist it using systemd, but it’s a wrong way to go in this case. You need udev rule. See https://bbs.archlinux.org/viewtopic.php?id=165213.
You can see existing udev description using
udevadm info -a -p /sys/bus/serio/devices/serio2
. My/etc/udev/rules.d/10-trackpoint.rules
:ACTION=="add",SUBSYSTEM=="input",ATTR{name}=="TPPS/2 IBM TrackPoint",ATTR{device/sensitivity}="180",ATTR{device/speed}="180"
-
Recomended values
xinput method ranges between -1.0 and 1.0. I went for 1.0. sensitivity ranges between 128 and 250. I went for 180. It is quite speedy and it took me a few days to adjust, but now it’s much more efficient.
-
Xinput method
Graphics
Almost everything worked as expected after installing xorg and gnome.
-
libgl
I had to choose a libgl library when install xorg. There were 4 alternative libgl implementations. I went for mesa-libgl, since alternatives were from nvidia and this thinkpad has an integrated intel graphics card.
-
Screen Resolution
To verify that you are running the best resolution, WQHD (2560×1440), run:
xrandr 1 ↵
Screen 0: minimum 320 x 200, current 2560 x 1440, maximum 8192 x 8192 eDP-1 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 310mm x 174mm 2560x1440 60.00*+ ...
-
Some applications have problems with HiDPI
You make take a look first at the Arch Wiki HiDPI section.
Majority of applications, including chromium, emacs and termite correctly handled the HiDPI. Some apps, like xscreensaver or xterm were displaying too small windows, not aware of the HiDPI screen. It seems that HiDPI is correctly handled system wide (xdpyinfo reports correct dpi and resolution), but just some old apps did not adapt yet. I tried messing with ~/.Xresources. After no success, I decided that it’s not worth it, since the only affect app I use is xscreensaver.
Sound
Sound and microphone worked without any special setup.
HDMI
The laptop comes with built in HDMI port.
-
Video (4K TV)
When I plug the HDMI it “just works”. Resolution is not auto detected and by default I only see “part” of the screen. In gnome, I had to go to Settings->Displays and change the resolution of the secondary screen. 4K resolution (4096×2160) is supported. Mirroring displays works as expected on the TV, although I had some issues with mirroring using a projector.
-
Sound over HDMI
By default, sound plays from the laptop speaker. In gnome, I can choose to play it over HDMI in Settings->Sound.
Auto starting
- For init scripts that apply system wide you need to create a systemd service (Type=oneshot for just init scripts)
- For init scripts that interact with devices you need to create a udev rule.
- For user specific configuration that applies to graphical interface, add it to
~/.xinitrc
. - For you shell configuration add it to
~/.bashrc
(or~/.zshrc
in my case). - To auto start gnome apps:
mkdir -p ~/.config/autostart cp /usr/share/applications/emacs.desktop ~/.config/autostart # Some apps may also be in ~/.local/share/applications
Auto-connect to wifi
It’s nice to automatially connect to wifi when you boot, rather than run wifi-menu
every time.
sudo pacman -S wpa_actiond # find an interface name with iv dev sudo systemctl enable netctl-auto@wlp4s0.service
Also see: Netctl wiki entry Wireless network configuration wiki entry To disable the service and add a new wifi entry I simply use this bash alias:
wifi() { sudo systemctl disable netctl-auto@wlp4s0.service sudo wifi-menu sudo systemctl enable netctl-auto@wlp4s0.service }
My personal preferences about desktip software
Window manager
Mass installing “gnome” package is against the arch philosophy, as it pulls many unnecessary things with it. If you have extra time you should pick invididual gnome packages or go for lighter WM. If you want an easy way out you can just:
pacman -S gnome gnome-initial-setup xorg-xinit xterm xorg-utils echo "exec gnome-session" >> ~/.xinitrc startx
-
Remove not used gnome packages
Gnome pulls lots of stuff that I never used. You may want to uninstall some packages that you don’t use from gnome:
pacman -Q | grep gnome # See how much things you have just installed. pacman -Rc gnome-keyring gnome-contacts gnome-calculator empathy gnome-terminal
-
Problem with gnome-terminal not starting
gnome-terminal worked initially, but then it refused to start. I much more prefer termite as an terminal and it didn’t experience the same issue. My ~/.config/termite/config.
-
Tiling window manager
Personally, I just spend 99% of my time in 3 programs: emacs, chromium and termite+tmux. I do the tiling and workspace management inside Emacs or tmux. I would get minimal additional benefit out of a tiling wm. The only things I need from the window manager are supplied by plain gnome:
- Switch focus to emacs/chromium/termite with wmctrl.
- Move window one monitor left (
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-left
) and right (move-to-monitor-right
) - Auto maximize windows and remove decorations with https://aur.archlinux.org/packages/maximus/.
- Auto start apps
Screen lock
gnome-screensaver was buggy when I tried to use it and I decided to use xscreensaver instead.
If you want a xscreensaver with an image as a screensaver:
sudo pacman -S xscreensaver sudo pacman -S libgnome # Required if you use gnome. Pacman do not pick it by default. # See http://askubuntu.com/questions/74200/how-do-i-use-a-photos-directory-as-my-screensaver xscreensaver-demo # Opens a GUI to configure echo "xscreensaver -no-splash &" >> ~/.xinitrc # Make sure it's before any exec entry. xscreensaver-command -lock # Command to lock screen
Also see XScreenSaver wiki entry. You can bind it to a key in gnome settings->keyboard->custom shortcuts. You may also bind it using gsettings set
command.
File manager
I didn’t like the default gnome nautilus file manager and I installed thunar instead.
Video player
vlc is the most reasonable choice in this category.
Things I didn’t configure yet
TODO Verify that SSD trims are aplied. Optimize for SSDs
TODO Auto mount windows disk and choose the the ntfs implementation
Basic mount works. I did not configure auto mounting yet. I’ve also heard that alternative ntfs impelementation, NTFS-3G, is better than kernel version.
TODO Try fingerprint sensor
TODO Try card readers.
- SimCard
- SmartCard
- Media Card
TODO Disk encryption
TODO Benchmark battery
Althought it seems to last pretty long.
TODO Figure out power management
Currently I just use some settings from xscreensaver https://wiki.archlinux.org/index.php/Power_management#Power_management_with_systemd
Conclusion
The laptop itself
After a few months of usage my thoughts about the laptop are: WQHD screen:
- Almost all apps I use regularly handle it well, including chromium, emacs, termite (terminal), thunar and transmission
- The only two apps that don’t handle WQHD well are xscreensaver and gimp. I feel that there would be a way of making them work if I really wanted.
Keyboard: After few months of I use I must say that keyboard does not feel “as good”. I may be overly snobish regarding keyboards, as I bought over 5 mechanical keyboards. I never expected laptop keys to feel as good as mechanical keyboard, but I slightly preferred feeling of the mac book keyboard.
Others:
- As I got used to trackpoint I find it more efficient than trackpad or mouse
- I didn’t try the sim card of fingerprint readers yet
- I didn’t have any other problems with anything hardware related
- battery life seems to be ok, but I didn’t measure it
- I believe accidental damage coverage to be a good deal. For 10% of the laptop cost I bought a 4 year coverage that will cover fixing my laptop in any scenario, even if I drop it or spill water on it.
Arch Linux
I like the choice of Arch as the operating system. In addition to my laptop I also run arch in docker on all my servers and it’s beneficial to use the same OS at home and at work.
I didn’t have any big problems with running random software packages I needed at some point, including things like connecting to the vpn or watching movies.
Additional links
Thinkpad Carbon arch wiki entries
Thinkwiki
Many links on http://www.thinkwiki.org/wiki/ThinkWiki are interesting, for example: http://www.thinkwiki.org/wiki/X1_Linux_Tweaks