178 lines
3.8 KiB
Markdown
178 lines
3.8 KiB
Markdown
uses https://github.com/rexim/dotfiles for configuration
|
|
and in a proxmox vm;
|
|
my settings: 2 sockets 5 cores
|
|
100GB disk size
|
|
12GB mem
|
|
default everything else (seabios, i440fx)
|
|
|
|
|
|
part 1
|
|
arch install:
|
|
|
|
archlinux-2026.03.01-x86_64.iso
|
|
|
|
updated before running archinstall
|
|
|
|
```bash
|
|
sudo pacman -Sy archinstall
|
|
```
|
|
|
|
in archinstall;
|
|
disk: ext4
|
|
bootloader: grub
|
|
network: network manager
|
|
user: create with sudo
|
|
profile: minimal
|
|
audio: pipewire
|
|
|
|
post archinstall;
|
|
|
|
```bash
|
|
sudo pacman -S xorg-server xorg-xinit emacs dmenu git zsh rxvt-unicode tmux
|
|
# zsh,rvxt,tmux from tsoding dotfiles https://github.com/rexim/dotfiles
|
|
```
|
|
|
|
clone dotfiles;
|
|
```bash
|
|
git clone https://github.com/rexim/dotfiles ~/dotfiles
|
|
cd ~/dotfiles
|
|
bash deploy.sh MANIFEST.linux
|
|
```
|
|
|
|
setup launch;
|
|
```bash
|
|
emacs
|
|
```
|
|
M-x package-install <RET> exwm
|
|
|
|
|
|
real launch;
|
|
```bash
|
|
startx
|
|
```
|
|
|
|
should launch the gui version of exwm/emacs.
|
|
|
|
part 2
|
|
emacs/exwm setup
|
|
|
|
C-x C-f (ctrl-x ctrl-f) find-file >~/.xinitrc
|
|
|
|
```bash
|
|
exec emacs
|
|
```
|
|
the official exwm wiki says for arch users to NOT use dbus.
|
|
i consulted the all knowing orb and it said if apps (web browsers..etc) complain about dbus to use a modern replacement: dbus-run-session. this is untested (will hopefully remove once tested)
|
|
|
|
|
|
C-x C-f again to ~/.emacs
|
|
|
|
|
|
```elisp
|
|
|
|
(require 'package)
|
|
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
|
|
(package-initialize)
|
|
|
|
(unless (package-installed-p 'exwm)
|
|
(package-refresh-contents)
|
|
(package-install 'exwm))
|
|
|
|
(require 'exwm)
|
|
(menu-bar-mode -1)
|
|
(tool-bar-mode -1)
|
|
(scroll-bar-mode -1)
|
|
|
|
(exwm-input-set-key (kbd "M-<return>")
|
|
(lambda () (interactive) (start-process "" nil "urxvt")))
|
|
(exwm-input-set-key (kbd "M-w") #'exwm-workspace-switch)
|
|
(exwm-input-set-key (kbd "M-r") #'exwm-reset)
|
|
|
|
(dotimes (i 10)
|
|
(exwm-input-set-key (kbd (format "M-%d" i))
|
|
`(lambda () (interactive (exwm-workspace-switch-create ,i))))
|
|
|
|
(exwm-wm-mode)
|
|
```
|
|
|
|
exwm-enable is outdated, when used user is instructed to change it to exwm-wm-mode
|
|
|
|
post-setup installing;
|
|
|
|
```bash
|
|
sudo pacman -S firefox ttf-dejavu noto-fonts xclip scrot xf86-video-qxl
|
|
```
|
|
|
|
```bash
|
|
sudo pacman -S pipewire pipewire-pulse wireplumber
|
|
|
|
systemctl --user enable pipewire pipewire-pulse wireplumber
|
|
systemctl --user start pipewire pipewire-pulse wireplumber
|
|
```
|
|
|
|
launching applications (example);
|
|
|
|
startx and launch firefox from EXWM with M-Return to open urxvt, then type ```firefox &```
|
|
|
|
Or bind a key in ~/.emacs:
|
|
```bash
|
|
(exwm-input-set-key (kbd "M-f")
|
|
(lambda () (interactive) (start-process "" nil "firefox")))
|
|
```
|
|
|
|
workspaces are numbered 0-9. M-0 through M-9 switches to or creates that workspace. M-w opens an interactive switcher. To move a window to another workspace:
|
|
|
|
```M-x exwm-workspace-move-window```
|
|
|
|
|
|
**navigation**
|
|
|
|
```
|
|
M-0 through M-9 # switch/create workspace
|
|
M-w # interactive workspace switcher
|
|
M-r # reset/refresh window (use if a window gets stuck)
|
|
C-x o # cycle between open Emacs buffers/windows
|
|
C-x b # switch buffer by name
|
|
C-x k # kill (close) current buffer
|
|
```
|
|
|
|
**launching things**
|
|
|
|
```
|
|
M-Return # open urxvt terminal
|
|
M-e # open eshell
|
|
M-f # open firefox (if you add the bind)
|
|
M-x # run any Emacs command by name
|
|
```
|
|
|
|
**files**
|
|
|
|
```
|
|
C-x C-f # open/find file
|
|
C-x C-s # save file
|
|
C-x C-w # save file as
|
|
C-x C-c # quit Emacs (closes everything)
|
|
```
|
|
|
|
**windows/splits**
|
|
|
|
```
|
|
C-x 2 # split horizontally
|
|
C-x 3 # split vertically
|
|
C-x 1 # close all splits, keep current
|
|
C-x 0 # close current split
|
|
```
|
|
|
|
inside urxvt/eshell
|
|
|
|
```
|
|
M-x exwm-workspace-move-window # move current X window to another workspace
|
|
in urxvt: Ctrl+Shift+C/V # copy/paste
|
|
```
|
|
|
|
EXWM window modes
|
|
EXWM windows have two modes:
|
|
|
|
line mode (default): Emacs keybinds work, good for reading
|
|
char mode: all input goes to the X app (e.g. typing in browser). Toggle with M-r or i to enter char mode, M-r to exit back to line mode
|