Do You Write Code With Your Mouse?
A book to use more of the keyboard, less of the mouse.
What Will This Book Bring You?
A scalable development environment where you mainly use your keyboard to increase your efficiency.
Your Mouseless Development Environment will include these tools:
Arch Linux
Zsh
i3 window manager
tmux
Neovim
You don't like some of them? No problem! You can replace Vim by your IDE, or Arch Linux by Ubuntu. I show you the "how" and you decide the "what".
A mouseless environment is often centered around the Linux shell. If you don't use a shell often, that's fine too. You'll learn step by step.
Precise explanations how to configure everything, depending on your needs. You'll be in control, deciding what's more efficient for you.
Knowledge about Linux and the terminal. You'll learn to use timeless, customizable, and powerful tools.
How to build a personalized installer to bring all your tools and their configurations easily on any computer.
Author(s): Matthieu Cneude
Edition: 1
Year: 2021
Language: English
Pages: 222
Introduction
Acknowledgments
Welcome, Mouseless Developers
Who Should Read This Book?
What Is a Mouseless Development Environment?
What Do You Need to Follow Along?
Creating Your Own Cheatsheets
Experimenting Is Key
Styling Conventions
Choose Your Tools
In a Nutshell
Part I - Arch Linux
A General Linux Overview
Diving Inside Linux
The Linux Filesystem
Linux Distributions
Packages and Repositories
Why Arch Linux?
The Glory of Rolling Distributions
The Arch Linux Community
Official Repositories and the Arch User Repositories (AUR)
The Fabulous Manual
Troubleshooting
General Recommendations
Using VMWare Software
In a Nutshell
Going Deeper
The Power Is In Your Fingers
Efficient Typing: The Two Rules
The First Week
The Second Week
Speed and Accuracy
In A Nutshell
Going Deeper
Preparing Your System for Arch Linux
Prerequisites
Burning the Arch Linux ISO
Configuring the Arch Linux Live System
Keyboard Layout
Connecting to the Internet
System Clock
BIOS or UEFI?
Partitioning the Hard Disk
Wiping Your Hard Disk
Using fdisk
Boot Partition
Root and Swap Partition
Formatting the Partitions
The UEFI Boot partition
Root and Swap Filesystems
Mounting the Filesystems
Mounting the Root Partition
UEFI and The Boot Partition
Continuing The Installation
In a Nutshell
Going Deeper
Installing Arch Linux
Installing the Base Packages
Mounting Automatically Partitions With fstab
Changing The Root Directory with arch-chroot
The Root User's Password
Through Time and Space: Configuring the Timezone
Choose Your Locale
Naming Your New World
GRUB, The Linux Bootloader
Bootloader With a UEFI
Bootloader With a BIOS
Enabling the Network Manager
Diving in the Shell
Command-Line 101
A Good Complement to the Manual
Input Output Redirections
Pipes
Input and Arguments
Rebooting The System
Troubleshooting Pacman
In a Nutshell
Going Deeper
Welcome To Arch Linux
Connecting to The Internet, Third Round
Using a Cable
Using the Wi-Fi
Installing the Manuals
Processes
The Init Process: systemd
Logging the Init Process With journald
Processes As Files
Environment Variables
Creating A New User
The Default Text Editors
The Return of the Environment Variable
Trying visudo Again
First Steps In Neovim
Neovim Modes
Editing with Neovim
Using Sudo
Best Practices For Linux Shells
Strings
Globbing
Strings And Quotes
In a Nutshell
Going Deeper
Links
Manual
Graphical Interface
The X Window System
The X What?
Installing X
URxvt, Our Terminal Emulator
Video Terminals and TTYs
Installing i3 Window Manager
Launching X
Installing Fonts
Launching i3
Graphic Cards and Video Drivers
In a Nutshell
Going Deeper
Part II - The Tools
First Steps in i3 Window Manager
Screen Resolution
The Basics of i3
i3bar and i3status
Installing Your Favorite Browser
Program Launcher
Copy and Paste
Pasting From a PDF
The Book Companion
Troubleshooting
In a Nutshell
Going Deeper
Configuring URxvt
The Colors of the Terminal
Making URxvt Prettier
Configuring URxvt
Character Fonts
Window Default
URxvt Daemon
In a Nutshell
Going Deeper
The Basics of Neovim
Neovim Modes
Configuring Neovim
Forget the Arrow Keys
Switching To Insert Mode
Undo And Redo
Motions
Horizontal Motions
Vertical Motions
Scrolling commands
The Language of Neovim
Operators
Text Objects
A Basic Configuration
Neovim's Options
Swap Files
Undo Tree
General Options
In a Nutshell
Going Deeper
Arch Linux Package Managers
Operations and Options
Official Repositories
Updating Your System
Removing Packages
Searching Packages
Pacman's Cache
The Arch User Repository (AUR)
The Package Manager Yay
Clearing Yay Cache
Installing Packages With Yay
Adding Tabs for URxvt
Neovim Language Extensions
Pacman Troubleshooting
Pacman Configuration
In a Nutshell
Going Deeper
Dotfiles
Hard and Symbolic Links
Hard Links
Symbolic Links
The Structure of the Dotfiles Project
Our First Bash Script
Running A Shell Script
Linux Permissions
Making Our Dotfiles Public
The SSH Protocol
Adding Your SSH Public Key to GitHub
In a Nutshell
Going Deeper
General Articles
Getting Inspired
i3: A Deeper Dive
How To Use i3?
General Organization
The Default Shortcuts
Configuring i3
Configuration Files
Default Configuration
Program Launcher
Moving Windows and Changing Focus
Split containers
Workspaces
Resizing Windows
Locking Your Screen
Lock, Shutdown, and Reboot Menu
Wallpaper
Floating windows
Colors and Style
Scratchpad
The i3 Status Bar
Managing Your Screen
Updating Our Dotfiles
In a Nutshell
Going Deeper
The Z-Shell (Zsh)
Framework Or No Framework?
Zsh Config Files
Basic Zsh Configuration
Environment Variables
Aliases
Options
Zsh Completion System
Pimp My Zsh Prompt
Zsh Directory Stack
Zsh, Your New Best Friend
Zsh With Vim Flavors
Enabling the Vi Mode
Changing Cursor
Vim Mapping For Completion
Editing Commands In Neovim
Zsh Plugins
Zsh Additional Completion
Zsh Syntax Highlighting
Jumping To A Parent Directory
Custom Scripts
The Fuzzy Finder fzf
Automatically Starting i3
In a Nutshell
Going Deeper
Zsh Documentation
Author's dotfiles
Improving Your Mouseless Development Environment
Improving the Dotfiles Install Script
Adding And Configuring Fonts
Installing Fonts
Changing URxvt's Fonts
Changing i3's Fonts
Desktop Notifications With Dunst
Automatically Mounting Devices
Visual Configuration
Remapping Your Caps Lock
A New Escape Key
Two Keys in One
The Problem of the External Keyboard
Git diff
In a Nutshell
Going Deeper
Neovim: A Deeper Dive
Neovim Spatial Organization
Buffers
Windows
Tabs
Argument List (arglist)
Mapping Keystrokes
Jump! Jump! Jump!
Jump List
Change List
Method Jump
Repeating Keystrokes
Single Repeat
Complex Repeat: The Macro
The Command Window
Revisiting the Undo Tree
Plugins
Plugin Manager
Closing Buffers Without Closing Windows
Managing Windows Easily
Navigating Through The Buffer List
Manipulating the Undo Tree
Automatically Installing the Plugin Manager
In a Nutshell
Going Deeper
The Terminal Multiplexer tmux
What's tmux?
Why use Tmux?
Background Operations
More Terminals! Everywhere!
Saving tmux Sessions
Remote Pair Programming
How to use tmux?
General Organization
tmux Workflow
Managing tmux Sessions
Configuring tmux
The Essentials of tmux
Increasing The Maximum Output Lines
Managing Windows
Design
Plugins
The tmux Plugins Manager
Fuzzy Search And Copy with fzf and Extrakto
Creating tmux Sessions Automatically
i3 Scratchpad Running tmux
Choosing Your tmux Session With fzf
In a nutshell
Going Deeper
Neovim Plugins
The Language Server Protocol
The Plugin coc.vim
Extensions to coc.vim
tmux completion
Fuzzy Finder in Neovim With fzf
Navigating files
Linter
Surrounding
Navigating in Open Buffers
Text Objects
Register History
Snippets
Search And Replace
Status Bar
Color Scheme
Manual Pages In Neovim
The Undo-tree
Tmux
Startup
Git
Syntax Highlighting
Misc
In a Nutshell
Going Deeper
Mouseless Browsers
Lynx
Help
Navigation
History
Page Data
Bookmarks
Downloading
Options
Quitting Lynx
Qutebrowser
Basics
Navigation
Tabs
Modes
Browser Plugins
Firefox
Chrome
In a Nutshell
Going Deeper
Part III - Arch Linux Installer
The System Installer
The Project
The User Interface
Preliminary Configuration
Is It the Good Time?
Return Code and Operators
Output Redirection
UEFI or BIOS, That Is The Question
Choosing The Hard Disk
Bash arrays
Pipes
Awk
Grep
Putting Everything Together
In a Nutshell
Going Deeper
Partitioning and Installing Arch Linux
Size of the Partitions
Erasing the Hard Disk
Creating Partitions
Boot Partition With BIOS or UEFI
Automating fdisk
Formatting partitions
General Case
Special Case
Generating fstab And Installing Arch Linux
The Adventure Continue!
The End of the Installer
In a Nutshell
Going Deeper
Creating Users and Passwords
Getting Back the Block Devices and the Boot Mode
Naming Your Newborn System
Installing The Bootloader GRUB
Clock and Timezone
Configuring the Locales
Root Password and User Creation
Arch Linux Is Now Fully Configured
In a Nutshell
Going Deeper
Installing The Tools
The List of Applications
Groups of Applications
Parsing the CSV
Updating the System
Installing the Packages
Permission For Power: sudo
Invoking The Last Installer Script
In a Nutshell
Going Deeper
The User Installer
Usual Linux Directories
Installing Packages From the AUR
Installing the Dotfiles
The One Command To Invoke The Installer
In a Nutshell
Going Deeper
This is the End
Going Deeper