mirror of
https://github.com/dzaczek/Uconsole-i3.git
synced 2026-02-11 12:49:41 +00:00
Enhanced documentation and add installation script
- Added comprehensive keyboard shortcuts documentation with detailed tables: * Basic operations (window management, launcher, config reload) * Window focus and movement (vim-style keybindings) * Window layout controls (split, stacking, tabbed, fullscreen) * Workspace navigation and assignments * Screenshot shortcuts (file and clipboard modes) * Audio controls (volume, MOC player) * Resize mode instructions - Fixed typos in README (temple -> template, comming -> coming, etc.) - Added Quick Installation section with automated script - Added Features section listing all major components - Improved manual installation instructions formatting - Created install.sh script for automated installation: * Installs all required dependencies * Builds and installs i3-gaps from source * Configures LXDE autostart for i3 * Installs SuckLess Terminal * Copies configuration files and scripts * Creates necessary directories * Provides clear installation progress and next steps
This commit is contained in:
parent
5d8306dc19
commit
0c61c35828
2 changed files with 320 additions and 23 deletions
172
README.md
172
README.md
|
|
@ -1,22 +1,33 @@
|
|||
# Uconsole-i3
|
||||
I3 windows manager on Uconsole device
|
||||
i3 window manager configuration for Uconsole device
|
||||
|
||||

|
||||

|
||||
|
||||
## Usage
|
||||
Feel free to fork and modify this configuration to suit your needs. If you're new to i3 like I , take your time to understand how each section works and tailor it to your preferences.
|
||||
Feel free to fork and modify this configuration to suit your needs. If you're new to i3 like I am, take your time to understand how each section works and tailor it to your preferences.
|
||||
|
||||
The base is temple is comming from [icemodding](https://github.com/icemodding/i3) This is my first attempt at working with i3, so please be aware that this project may have bugs, be unfinished, or contain incomplete features.
|
||||
The base template is coming from [icemodding](https://github.com/icemodding/i3). This is my first attempt at working with i3, so please be aware that this project may have bugs, be unfinished, or contain incomplete features.
|
||||
Enjoy your i3 experience!
|
||||
|
||||
|
||||
## INSTALLATION
|
||||
At the moment I'm using I3-GAPS [https://github.com/Airblader/i3](https://github.com/Airblader/i3)
|
||||
## Quick Installation
|
||||
|
||||
### Instalation i3 gaps:
|
||||
For automatic installation, use the provided script:
|
||||
```bash
|
||||
apt install dh-autoreconf libxcb-keysyms1-dev libpango1.0-dev libxcb-util0-dev xcb libxcb1-dev libxcb-icccm4-dev libyajl-dev libev-dev libxcb-xkb-dev libxcb-cursor-dev libxkbcommon-dev libxcb-xinerama0-dev libxkbcommon-x11-dev libstartup-notification0-dev libxcb-randr0-dev libxcb-xrm0 libxcb-xrm-dev libxcb-shape0 libxcb-shape0-dev
|
||||
git clone git@github.com:dzaczek/Uconsole-i3.git
|
||||
cd Uconsole-i3
|
||||
chmod +x install.sh
|
||||
./install.sh
|
||||
```
|
||||
|
||||
## Manual Installation
|
||||
|
||||
This configuration uses I3-GAPS [https://github.com/Airblader/i3](https://github.com/Airblader/i3)
|
||||
|
||||
### Installation i3 gaps:
|
||||
```bash
|
||||
sudo apt install dh-autoreconf libxcb-keysyms1-dev libpango1.0-dev libxcb-util0-dev xcb libxcb1-dev libxcb-icccm4-dev libyajl-dev libev-dev libxcb-xkb-dev libxcb-cursor-dev libxkbcommon-dev libxcb-xinerama0-dev libxkbcommon-x11-dev libstartup-notification0-dev libxcb-randr0-dev libxcb-xrm0 libxcb-xrm-dev libxcb-shape0 libxcb-shape0-dev meson ninja-build
|
||||
|
||||
cd ~/Documents
|
||||
# clone the repository
|
||||
|
|
@ -27,40 +38,155 @@ At the moment I'm using I3-GAPS [https://github.com/Airblader/i3](https://gith
|
|||
mkdir -p build && cd build
|
||||
meson ..
|
||||
sudo ninja
|
||||
sudo apt install i3blocks i3status rofi fonts-font-awesome
|
||||
|
||||
```
|
||||
open /etc/xdg/lxsession/LXDE-pi/desktop.conf and change windows_manager to i3
|
||||
```
|
||||
|
||||
### Configure LXDE for i3
|
||||
Open `/etc/xdg/lxsession/LXDE-pi/desktop.conf` and change window_manager to i3:
|
||||
```ini
|
||||
[Session]
|
||||
window_manager=i3
|
||||
```
|
||||
|
||||
open file /etc/xdg/lxsession/LXDE-pi/autostart and hash lines lxpanel and pcmanfm
|
||||
Open file `/etc/xdg/lxsession/LXDE-pi/autostart` and comment out lines lxpanel and pcmanfm:
|
||||
```bash
|
||||
vim /etc/xdg/lxsession/LXDE-pi/autostart
|
||||
sudo vim /etc/xdg/lxsession/LXDE-pi/autostart
|
||||
```
|
||||
```ini
|
||||
#@lxpanel --profile LXDE-pi
|
||||
#@pcmanfm --desktop --profile LXDE-pi
|
||||
@xscreensaver -no-splash
|
||||
```
|
||||
### Confiure and isntall SuckLess Termianl
|
||||
|
||||
|
||||
### Configure and install SuckLess Terminal
|
||||
```bash
|
||||
sudo -i
|
||||
cd Documnets
|
||||
cd ~/Documents
|
||||
git clone https://github.com/LukeSmithxyz/st
|
||||
# OR FROM THERE git://git.suckless.org/st
|
||||
cd st
|
||||
|
||||
sudo make install
|
||||
|
||||
```
|
||||
|
||||
### Copy this configuration gaps
|
||||
### Copy this configuration
|
||||
```bash
|
||||
cd ~/.config/i3/
|
||||
git clone git@github.com:dzaczek/Uconsole-i3.git .
|
||||
sudo apt install apt-get install maim xclip copyq xdotool
|
||||
git clone git@github.com:dzaczek/Uconsole-i3.git .
|
||||
sudo apt install maim xclip copyq xdotool feh pamixer picom rofi
|
||||
```
|
||||
|
||||
### Additional Dependencies
|
||||
```bash
|
||||
sudo apt install maim xclip copyq xdotool feh pamixer picom rofi i3blocks i3status fonts-font-awesome
|
||||
```
|
||||
|
||||
## Keyboard Shortcuts
|
||||
|
||||
**Note:** `$mod` is set to `Alt` (Mod1) in this configuration.
|
||||
|
||||
### Basic Operations
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `$mod + Enter` | Open terminal (st) |
|
||||
| `$mod + d` | Open application launcher (rofi) |
|
||||
| `$mod + Shift + q` | Close focused window |
|
||||
| `$mod + Shift + c` | Reload i3 configuration |
|
||||
| `$mod + Shift + r` | Restart i3 |
|
||||
| `$mod + Shift + e` | Exit i3 (with confirmation) |
|
||||
|
||||
### Window Focus & Movement
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `$mod + j/k/l/;` | Focus left/down/up/right (vim-style) |
|
||||
| `$mod + Arrow Keys` | Focus in direction |
|
||||
| `$mod + Shift + j/k/l/;` | Move window left/down/up/right |
|
||||
| `$mod + Shift + Arrow Keys` | Move window in direction |
|
||||
| `$mod + a` | Focus parent container |
|
||||
| `$mod + space` | Toggle focus between tiling/floating windows |
|
||||
|
||||
### Window Layout
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `$mod + h` | Split horizontally |
|
||||
| `$mod + v` | Split vertically |
|
||||
| `$mod + s` | Stacking layout |
|
||||
| `$mod + w` | Tabbed layout |
|
||||
| `$mod + e` | Toggle split layout |
|
||||
| `$mod + f` | Toggle fullscreen |
|
||||
| `$mod + Shift + Space` | Toggle floating/tiling |
|
||||
| `$mod + r` | Enter resize mode (then use j/k/l/; or arrows) |
|
||||
|
||||
### Floating Windows (Uconsole-specific)
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `$mod + Shift + p` | Move window to right position (695x267px) |
|
||||
| `$mod + Shift + m` | Move window to left position (695x267px) |
|
||||
|
||||
### Workspaces
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `$mod + 1-9,0` | Switch to workspace 1-10 |
|
||||
| `$mod + Shift + 1-9,0` | Move window to workspace 1-9,10 |
|
||||
| `$mod + Home` | Switch to workspace 1 |
|
||||
| `$mod + End` | Switch to workspace 10 |
|
||||
| `$mod + Page Up` | Switch to previous workspace |
|
||||
| `$mod + Page Down` | Switch to next workspace |
|
||||
|
||||
### Workspace Assignments
|
||||
- Workspace 1: Terminal
|
||||
- Workspace 2: Browser (Chrome/Firefox)
|
||||
- Workspace 3: Telegram
|
||||
- Workspace 4: Media player
|
||||
- Workspace 5: Video player (VLC)
|
||||
- Workspace 6: File manager (Thunar/VirtualBox)
|
||||
- Workspace 7: Graphics (GIMP)
|
||||
- Workspace 8: Downloads (qBittorrent)
|
||||
- Workspace 9: Games
|
||||
- Workspace 10: Recording (Simplescreenrecorder)
|
||||
|
||||
### Screenshots
|
||||
#### Save to Files
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `Print` | Screenshot entire screen → `~/Pictures/screenshot-*.png` |
|
||||
| `$mod + Print` | Screenshot active window → `~/Pictures/screenshot-*-current.png` |
|
||||
| `Shift + Print` | Screenshot selected area → `~/Pictures/screenshot-*-selected.png` |
|
||||
|
||||
#### Copy to Clipboard
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `Ctrl + Print` | Screenshot entire screen → clipboard |
|
||||
| `Ctrl + $mod + Print` | Screenshot active window → clipboard |
|
||||
| `Ctrl + Shift + Print` | Screenshot selected area → clipboard |
|
||||
|
||||
### Audio Controls
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `XF86AudioRaiseVolume` | Increase volume (+5%) |
|
||||
| `XF86AudioLowerVolume` | Decrease volume (-5%) |
|
||||
| `XF86AudioMute` | Toggle mute |
|
||||
| `$mod + m` | Open MOC player in terminal |
|
||||
| `XF86AudioPlay` | Play/Pause (MOC) |
|
||||
| `XF86AudioPause` | Play/Pause (MOC) |
|
||||
| `XF86AudioNext` | Next track (MOC) |
|
||||
| `XF86AudioPrev` | Previous track (MOC) |
|
||||
| `XF86AudioStop` | Stop (MOC) |
|
||||
|
||||
### Resize Mode
|
||||
After pressing `$mod + r`, use:
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `j / Left` | Shrink width |
|
||||
| `k / Down` | Grow height |
|
||||
| `l / Up` | Shrink height |
|
||||
| `; / Right` | Grow width |
|
||||
| `Enter / Escape` | Exit resize mode |
|
||||
|
||||
## Features
|
||||
|
||||
- **i3-gaps**: Window gaps for modern look
|
||||
- **Rofi**: Application launcher
|
||||
- **Suckless Terminal (st)**: Minimal terminal emulator
|
||||
- **i3blocks**: Status bar with custom scripts
|
||||
- **MOC**: Music player integration
|
||||
- **Screenshot tools**: maim with file/clipboard support
|
||||
- **Picom**: Compositor for transparency and effects
|
||||
- **WireGuard VPN**: Status indicator in bar
|
||||
- **Raspberry Pi monitoring**: Battery and temperature scripts
|
||||
|
|
|
|||
171
install.sh
Executable file
171
install.sh
Executable file
|
|
@ -0,0 +1,171 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Uconsole-i3 Installation Script
|
||||
# This script automates the installation of i3-gaps and configuration
|
||||
|
||||
set -e # Exit on error
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Check if running as root for package installation
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo -e "${YELLOW}Note: This script needs sudo privileges for package installation${NC}"
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}=== Uconsole-i3 Installation Script ===${NC}\n"
|
||||
|
||||
# Step 1: Install dependencies
|
||||
echo -e "${YELLOW}[1/7] Installing dependencies...${NC}"
|
||||
sudo apt update
|
||||
sudo apt install -y dh-autoreconf libxcb-keysyms1-dev libpango1.0-dev \
|
||||
libxcb-util0-dev xcb libxcb1-dev libxcb-icccm4-dev libyajl-dev \
|
||||
libev-dev libxcb-xkb-dev libxcb-cursor-dev libxkbcommon-dev \
|
||||
libxcb-xinerama0-dev libxkbcommon-x11-dev libstartup-notification0-dev \
|
||||
libxcb-randr0-dev libxcb-xrm0 libxcb-xrm-dev libxcb-shape0 \
|
||||
libxcb-shape0-dev meson ninja-build i3blocks i3status rofi \
|
||||
fonts-font-awesome maim xclip copyq xdotool feh pamixer picom \
|
||||
numlockx libx11-dev libxft-dev libxext-dev
|
||||
|
||||
echo -e "${GREEN}✓ Dependencies installed${NC}\n"
|
||||
|
||||
# Step 2: Clone and build i3-gaps
|
||||
echo -e "${YELLOW}[2/7] Building i3-gaps...${NC}"
|
||||
BUILD_DIR="$HOME/Documents/i3-gaps"
|
||||
if [ -d "$BUILD_DIR" ]; then
|
||||
echo -e "${YELLOW}Directory $BUILD_DIR exists. Updating...${NC}"
|
||||
cd "$BUILD_DIR"
|
||||
git pull || true
|
||||
else
|
||||
mkdir -p ~/Documents
|
||||
cd ~/Documents
|
||||
git clone https://www.github.com/Airblader/i3 i3-gaps
|
||||
cd i3-gaps
|
||||
fi
|
||||
|
||||
cd "$BUILD_DIR"
|
||||
mkdir -p build && cd build
|
||||
if [ -f "build.ninja" ]; then
|
||||
echo -e "${YELLOW}Previous build found. Rebuilding...${NC}"
|
||||
sudo ninja
|
||||
else
|
||||
meson ..
|
||||
sudo ninja install
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✓ i3-gaps built and installed${NC}\n"
|
||||
|
||||
# Step 3: Configure LXDE autostart
|
||||
echo -e "${YELLOW}[3/7] Configuring LXDE autostart...${NC}"
|
||||
DESKTOP_CONF="/etc/xdg/lxsession/LXDE-pi/desktop.conf"
|
||||
AUTOSTART_FILE="/etc/xdg/lxsession/LXDE-pi/autostart"
|
||||
|
||||
if [ -f "$DESKTOP_CONF" ]; then
|
||||
echo -e "${YELLOW}Updating $DESKTOP_CONF${NC}"
|
||||
sudo sed -i 's/window_manager=.*/window_manager=i3/' "$DESKTOP_CONF" || {
|
||||
echo "[Session]" | sudo tee -a "$DESKTOP_CONF" > /dev/null
|
||||
echo "window_manager=i3" | sudo tee -a "$DESKTOP_CONF" > /dev/null
|
||||
}
|
||||
echo -e "${GREEN}✓ Desktop configuration updated${NC}"
|
||||
else
|
||||
echo -e "${RED}Warning: $DESKTOP_CONF not found. Skipping...${NC}"
|
||||
fi
|
||||
|
||||
if [ -f "$AUTOSTART_FILE" ]; then
|
||||
echo -e "${YELLOW}Updating $AUTOSTART_FILE${NC}"
|
||||
# Comment out lxpanel and pcmanfm if not already commented
|
||||
sudo sed -i 's/^@lxpanel/#@lxpanel/' "$AUTOSTART_FILE" 2>/dev/null || true
|
||||
sudo sed -i 's/^@pcmanfm/#@pcmanfm/' "$AUTOSTART_FILE" 2>/dev/null || true
|
||||
echo -e "${GREEN}✓ Autostart configuration updated${NC}"
|
||||
else
|
||||
echo -e "${RED}Warning: $AUTOSTART_FILE not found. Skipping...${NC}"
|
||||
fi
|
||||
|
||||
# Step 4: Install Suckless Terminal (st)
|
||||
echo -e "${YELLOW}[4/7] Installing Suckless Terminal...${NC}"
|
||||
ST_DIR="$HOME/Documents/st"
|
||||
if [ -d "$ST_DIR" ]; then
|
||||
echo -e "${YELLOW}st directory exists. Updating...${NC}"
|
||||
cd "$ST_DIR"
|
||||
git pull || true
|
||||
sudo make clean install
|
||||
else
|
||||
cd ~/Documents
|
||||
if [ -d "st" ]; then
|
||||
cd st
|
||||
git pull || true
|
||||
sudo make clean install
|
||||
else
|
||||
git clone https://github.com/LukeSmithxyz/st
|
||||
cd st
|
||||
sudo make install
|
||||
fi
|
||||
fi
|
||||
echo -e "${GREEN}✓ Suckless Terminal installed${NC}\n"
|
||||
|
||||
# Step 5: Create i3 config directory
|
||||
echo -e "${YELLOW}[5/7] Setting up i3 configuration...${NC}"
|
||||
I3_CONFIG_DIR="$HOME/.config/i3"
|
||||
mkdir -p "$I3_CONFIG_DIR"
|
||||
mkdir -p "$I3_CONFIG_DIR/wallp"
|
||||
mkdir -p "$HOME/Pictures" # For screenshots
|
||||
|
||||
echo -e "${GREEN}✓ Configuration directories created${NC}\n"
|
||||
|
||||
# Step 6: Copy configuration files
|
||||
echo -e "${YELLOW}[6/7] Copying configuration files...${NC}"
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# Copy main config file
|
||||
if [ -f "$SCRIPT_DIR/config" ]; then
|
||||
cp "$SCRIPT_DIR/config" "$I3_CONFIG_DIR/"
|
||||
echo -e "${GREEN}✓ Config file copied${NC}"
|
||||
else
|
||||
echo -e "${RED}Error: config file not found in $SCRIPT_DIR${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Copy i3blocks config
|
||||
if [ -f "$SCRIPT_DIR/i3blocks.conf" ]; then
|
||||
cp "$SCRIPT_DIR/i3blocks.conf" "$I3_CONFIG_DIR/"
|
||||
echo -e "${GREEN}✓ i3blocks.conf copied${NC}"
|
||||
fi
|
||||
|
||||
# Copy scripts
|
||||
if [ -d "$SCRIPT_DIR/scripts" ]; then
|
||||
mkdir -p "$I3_CONFIG_DIR/scripts"
|
||||
cp "$SCRIPT_DIR/scripts"/* "$I3_CONFIG_DIR/scripts/" 2>/dev/null || true
|
||||
chmod +x "$I3_CONFIG_DIR/scripts"/* 2>/dev/null || true
|
||||
echo -e "${GREEN}✓ Scripts copied${NC}"
|
||||
fi
|
||||
|
||||
# Copy wallpapers
|
||||
if [ -d "$SCRIPT_DIR/wallp" ]; then
|
||||
cp -r "$SCRIPT_DIR/wallp"/* "$I3_CONFIG_DIR/wallp/" 2>/dev/null || true
|
||||
echo -e "${GREEN}✓ Wallpapers copied${NC}"
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✓ Configuration files copied${NC}\n"
|
||||
|
||||
# Step 7: Final checks and recommendations
|
||||
echo -e "${YELLOW}[7/7] Finalizing installation...${NC}"
|
||||
|
||||
# Check if Pictures directory exists for screenshots
|
||||
if [ ! -d "$HOME/Pictures" ]; then
|
||||
mkdir -p "$HOME/Pictures"
|
||||
echo -e "${GREEN}✓ Created Pictures directory for screenshots${NC}"
|
||||
fi
|
||||
|
||||
echo -e "\n${GREEN}=== Installation Complete! ===${NC}\n"
|
||||
echo -e "${YELLOW}Next steps:${NC}"
|
||||
echo -e "1. Log out and log back in, or restart your system"
|
||||
echo -e "2. i3 will start automatically"
|
||||
echo -e "3. If prompted, press Enter to accept the default key binding"
|
||||
echo -e "4. Press $mod + d to open the application launcher (rofi)"
|
||||
echo -e "\n${YELLOW}Configuration location:${NC} $I3_CONFIG_DIR"
|
||||
echo -e "${YELLOW}To reload config after changes:${NC} $mod + Shift + c"
|
||||
echo -e "\n${GREEN}Enjoy your i3 experience!${NC}\n"
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue