Note
This is a Bash script that automates the setup of a professional hacking environment for Kali Linux using the tiled window manager bspwm and is forked from r1v3sc repository.
Important
Major Security & Quality Improvements
- π Security Hardened: Fixed critical command injection vulnerabilities
- π§ͺ Fully Tested: 144 automated tests with continuous integration
- π Updated Dependencies: LSD v1.2.0, Go v1.23.5, latest packages
- β Modern Compatibility: Migrated from deprecated tools to modern alternatives
- π Professional Documentation: 1000+ lines of test documentation
π View detailed changelog
- β
Fixed command injection vulnerabilities in
whichSystem.py - β Added proper variable quoting in all shell functions
- β Improved input validation and error handling
- β 40 dedicated security tests ensure ongoing protection
- β
Migrated from deprecated
ifconfigto modernipcommand - β
Rewrote
checkupdatesscript for apt-based systems - β Auto-detection of primary network interface
- β Fixed wallpaper directory path expansion
- β LSD updated to v1.2.0 (from v1.1.5)
- β Go updated to v1.23.5 (from v1.23.0)
- β Added missing zsh plugins (syntax-highlighting, autosuggestions)
- β 73 unit tests for setup.sh components
- β 40 security-focused tests
- β 31 integration tests
- β GitHub Actions CI/CD with 7 automated jobs
- β 90%+ code coverage
# Update your system
sudo apt update
sudo apt upgrade -y# 1. Clone the repository
git clone https://github.com/4ndymcfly/4ndy-bspwm
cd 4ndy-bspwm
# 2. Execute the setup script
./setup.sh
# 3. Reboot and select bspwm as window managerTip
After the script finishes, you'll be prompted to restart. Once rebooted, select bspwm as the window manager and log in.
Expand shortcuts section β¬
| Shortcut | Action |
|---|---|
| Super + Enter | Open terminal (kitty) |
| Super + W | Close window |
| Super + D | Open Rofi launcher |
| Super + Arrow Keys | Navigate between windows |
| Super + 1-0 | Switch to workspace 1-10 |
| Shortcut | Action |
|---|---|
| Super + T | Tile mode |
| Super + M | Monocle mode (full without bar) |
| Super + F | Fullscreen mode |
| Super + S | Floating mode |
| Shortcut | Action |
|---|---|
| Super + Shift + 1-0 | Move window to workspace |
| Super + Alt + Arrows | Resize window (floating) |
| Super + Ctrl + Arrows | Move window (floating) |
| Shortcut | Action |
|---|---|
| Super + Shift + F | Firefox (workspace 3) |
| Super + Shift + B | Burpsuite (workspace 9) |
| Shortcut | Action |
|---|---|
| Super + Alt + R | Restart bspwm |
| Super + Alt + Q | Logout |
| Ctrl + Alt + L | Lock screen |
| Ctrl + Shift + ββ | Volume control |
| Ctrl + Shift + M | Mute/unmute |
| Shortcut | Action |
|---|---|
| Ctrl + Shift + Enter | New split window |
| Ctrl + Shift + T | New tab |
| Ctrl + Shift + W | Close tab/window |
| Ctrl + Shift + Z | Zoom current pane |
| Ctrl + Arrows | Navigate between panes |
| Ctrl + Shift + C/V | Copy/Paste |
| F1 / F2 | Copy/Paste buffer A |
| F3 / F4 | Copy/Paste buffer B |
- WM: bspwm - Tiling window manager
- Hotkey Daemon: sxhkd - Keyboard shortcuts
- Bar: polybar - Status bar
- Compositor: picom - Window compositor
- Launcher: rofi - Application launcher
- Terminal: kitty - GPU-accelerated terminal
- Shell: zsh - Advanced shell
- Framework: Oh My Zsh - Zsh configuration
- Theme: Powerlevel10k - Beautiful prompt
- Syntax Highlighting: zsh-syntax-highlighting
- Autosuggestions: zsh-autosuggestions
- File Manager: thunar
- Screen Locker: i3lock-fancy
- Screenshot: flameshot
- Wallpaper: feh
- Browser: Firefox
- Fonts: Iosevka & Hack Nerd Fonts
| Tool | Version | Description |
|---|---|---|
| lsd | v1.2.0 | Modern ls replacement |
| Go | v1.23.5 | Programming language |
| Neovim | Latest | Hyperextensible text editor |
| Docker | Latest | Container platform |
| Tool | Description |
|---|---|
| nuclei | Vulnerability scanner |
| gobuster | Directory/DNS fuzzer |
| dirsearch | Web path scanner |
| ligolo-ng | Advanced tunneling tool |
| rustscan | Fast port scanner (Docker) |
| arsenal | Pentest command cheatsheet |
| cupp | Password profiler |
- SecLists - Security wordlists
- RockyYou - Password list
Tip
Click on any IP address in Polybar (VPN, Target, LAN) to automatically copy it to clipboard!
Tip
A comprehensive collection of aliases and functions has been added to streamline your pentesting workflow. Check .zshrc for details.
π View example aliases
# Penetration Testing
mkt # Create nmap/content/exploits directories
settarget # Set target IP for polybar display
scanNmap # Automated nmap scan with OS detection
extractPorts # Extract open ports from nmap output
# Network Tools
smbshare # Quick SMB server setup
geoip # IP geolocation lookup
# Development
cat -> batcat # Syntax highlighting for files
ls -> lsd # Modern ls with icons and colorsThis project includes a comprehensive test suite to ensure reliability and security.
- β 73 Unit Tests - Core functionality validation
- β 40 Security Tests - Vulnerability prevention
- β 31 Integration Tests - End-to-end workflows
- β 7 CI/CD Jobs - Automated quality checks
# Install Bats (testing framework)
sudo apt install bats
# Run all tests
./tests/run_tests.sh
# Run specific test suite
bats tests/test_setup.bats # Unit tests
bats tests/test_security.bats # Security tests
bats tests/test_integration.bats # Integration testsEvery commit is automatically tested via GitHub Actions:
- π Code syntax validation
- π Security vulnerability scanning
- π§ͺ 144 automated tests
- π¦ Dependency version validation
- β Quality assurance checks
View test results: GitHub Actions
For detailed testing documentation, see tests/README.md
- Keyboard Shortcuts - Complete keyboard shortcuts reference (English)
- Keyboard Shortcuts - Complete keyboard shortcuts reference (Spanish)
- Quick Start Guide - Get testing in 5 minutes
- Full Test Documentation - Comprehensive testing guide
- Test Summary - Detailed test overview
Contributions are welcome! Whether it's:
- π Bug reports
- β¨ Feature requests
- π§ Code improvements
- π Documentation updates
Please feel free to open an issue or submit a pull request.
- Fork the repository
- Create a feature branch
- Make your changes
- Run the test suite (
./tests/run_tests.sh) - Ensure all tests pass
- Submit a pull request
Security is a top priority. This project:
- β Regularly audited for vulnerabilities
- β Uses modern, secure coding practices
- β Includes 40 dedicated security tests
- β Follows principle of least privilege
Found a security issue? Please report it privately via GitHub Security Advisories.
This project is licensed under the MIT License - see the LICENSE file for details.
- Original Creator: r1vs3c - For the initial auto-bspwm script
- Fork Maintainer: 4ndymcfly - Extended features and security improvements
- Polybar Themes: adi1090x
- Community: All contributors who help improve this project
If you find this project useful, please consider:
- β Starring the repository
- π Reporting bugs
- π‘ Suggesting new features
- π Contributing code
Happy Hacking! π
Made with β€οΈ for the cybersecurity community


























