2.5 KiB
MyI3Repo
This repository contains a very minimal and practical i3 window manager configuration. It is designed to stay close to upstream i3 behavior while adding a few convenience features for daily use.
The goal is:
- Predictable tiling behavior
- Keyboard-driven workflow
- Minimal visual noise
- Easy extensibility via simple shell scripts
No external theming frameworks or heavy abstractions are used.
Concept: Application Settings
All user-configurable applications are defined inside the settings/ directory.
Each file contains only the binary name, for example:
firefox
The i3 config itself handles the exec logic and simply reads these files.
This keeps configuration clean and avoids hardcoding application names.
If an application does not exist on the system, the installer will warn the user.
Features
- i3 (X11) based setup
- Focus follows mouse
- Simple, readable keybindings
- Keyboard layout switching (e.g.
ch_de↔us_workman) - Keyboard-driven window movement and resizing
- Minimal logout / power overlay
- Multi-monitor friendly (
xrandr) - No hidden logic or frameworks
Required Packages (Arch Linux)
Core
i3-wmxorg-serverxorg-xinitdmenuorrofi
Utilities
xrandrsetxkbmappicom(optional)feh(optional)playerctl(optional)brightnessctl(optional)
Installation
1. Clone the repository
git clone https://github.com/JGH0/MyI3Config.git
cd MyI3Repo
2. Run the installer
./install.sh
The installer will:
- Ask if you want to install the i3 configuration
- Copy the config to
~/.config/i3 - Ask which terminal, browser, file manager, and calculator you want to use
- Validate that the chosen applications exist
- Write the selected application names into
settings/*.sh
If an application is not found, you will be asked again.
3. Log into i3
When starting i3 for the first time:
- Do NOT generate a new config
- Use the installed configuration
packages.txt
The packages.txt file contains a suggested list of packages you may want to install.
It is intentionally not installed automatically to keep full user control.
Example:
sudo pacman -S --needed - < packages.txt
Notes
- This configuration is intentionally minimal
- Everything is plain text and easy to understand
- No magic, no hidden behavior
- You are encouraged to fork and modify this setup to your needs