├── README.md └── kali3wm.sh /README.md: -------------------------------------------------------------------------------- 1 | # Disclaimer 2 | This project is archived and not maintained since i don't have time for it. Eventually, generating ISOs takes hours. 3 | But `kali_i3wm_2020_4.iso` can be still downloaded from sourcefourge and it will still work out of box but __repos are very old__. 4 | 5 | I strongly recommend you to use [Arszilla's kali-i3](https://gitlab.com/Arszilla/kali-i3) version instead, he is actively maintaining it. 6 | 7 | Since it's release in 2020, the project got over [2200 downloads](https://sourceforge.net/projects/kali-i3wm/files/kali-linux-rolling-live-i3wm-amd64.iso/stats/os?dates=2020-11-23%20to%202030-12-30) on sourceforge from all over the world, thank you all for using it. 8 | Dunno if i ever release a modern version, but it was definetely a fun ride. 9 | 10 | # Overview 11 | Since default kali live-usb ISOs come with kde or gnome, i decided to create a live-usb variant that use i3wm as default. 12 | Because i3 is much more ram efficient and runs better on low-spec computers and usb disks. 13 | This build has all the tools that one needs on the go such as applets, media players, scripts etc. It's pre-configured and also riced to give it a cool look and easier use. 14 | 15 | ## Preview Screenshots 16 | ![Desktop](https://a.fsdn.com/con/app/proj/kali-i3wm/screenshots/1.png/max/max/1) 17 | ![Preview of terminal colors](https://a.fsdn.com/con/app/proj/kali-i3wm/screenshots/2.png/max/max/1) 18 | ![Preview of terminal colors 2](https://a.fsdn.com/con/app/proj/kali-i3wm/screenshots/3.png/max/max/1) 19 | ![Kali Tools Dmenu](https://a.fsdn.com/con/app/proj/kali-i3wm/screenshots/4.png/max/max/1) 20 | 21 | ## Features 22 | - Dmenu implementation of kali tools menu. 23 | - Zsh disabled, bash is default. 24 | - Pre-installed: mpv, feh, nautilus, i3blocks, pnmixer, network-manager 25 | - Pre-configured: urxvt, bashrc, bash_aliases, i3 and i3blocks. 26 | 27 | ## List of key bindings 28 | **Attention:** $mod is super key 29 | ``` 30 | Alt+C Copy selected text from terminal to clipboard 31 | Alt+V Paste text from clipboard to terminal 32 | Ctrl+Minus Discrease terminal font size 33 | Ctrl+Equal Increase terminal font size 34 | $mod+d Application Launcher (dmenu) 35 | $mod+Shift+d Kali Tools Launcher (dmenu) 36 | $mod+Shift+c xKill 37 | 38 | ``` 39 | -------------------------------------------------------------------------------- /kali3wm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Kali Linux ISO recipe for : i3wm with rice 4 | ############################################################################### 5 | # Desktop : i3wm 6 | # Metapackages : kali-linux-defaults 7 | # ISO size : 3.3 GB 8 | # Last update : Kali 2020.4 (Rolling Release) / 23-Nov-2020 9 | # Look and Feel : https://imgur.com/a/zeOjNP3 10 | # Repository : https://github.com/KebabLord/kali-i3wm 11 | ############################################################################### 12 | 13 | # Update and install dependencies 14 | apt update ; apt install git live-build cdebootstrap -y 15 | git clone https://gitlab.com/kalilinux/build-scripts/live-build-config.git 16 | cd live-build-config 17 | REPOPATH=$PWD 18 | 19 | # Our additional packages for rice (17.6 MB) 20 | cat << EOF >>./kali-config/variant-i3wm/package-lists/kali.list.chroot 21 | i3blocks 22 | rxvt-unicode 23 | rxvt-unicode-256color 24 | suckless-tools 25 | xfonts-terminus 26 | network-manager-gnome 27 | gxkb 28 | pnmixer 29 | nautilus 30 | mpv 31 | feh 32 | xclip 33 | xsel 34 | htop 35 | neofetch 36 | tree 37 | jq 38 | EOF 39 | 40 | # Disable Zsh 41 | sed -i s/'--bootappend-live "'/'--bootappend-live "nozsh '/g auto/config 42 | sed -i s/'--bootappend-live-failsafe "'/'--bootappend-live-failsafe "nozsh '/g auto/config 43 | sed -i 's/^configure_zsh$/#configure_zsh/g' kali-config/common/includes.chroot/usr/lib/live/config/0031-kali-user-setup 44 | 45 | # Use a different mirror 46 | echo "http://mirror.karneval.cz/pub/linux/kali">.mirror 47 | ln -s ../.mirror ./auto/.mirror 48 | 49 | # Replace splash screen 50 | wget -O kali-config/common/includes.binary/isolinux/splash.png https://u.teknik.io/u9soS.png 51 | 52 | # Starting configuring home folder 53 | mkdir -p ./kali-config/common/includes.chroot/etc/skel/{Downloads,Desktop,.config/{gxkb,i3,pnmixer},.local/bin} 54 | cd ./kali-config/common/includes.chroot/etc/skel 55 | touch .hushlogin 56 | 57 | # Get kali-dmenu script 58 | wget -O .local/bin/kali-dmenu "https://gist.githubusercontent.com/KebabLord/30dd123e7949d4ca45be5f0b8d12a143/raw/223bbd5cbeb2805db5613c60b8bb72b1bef582b7/kali-dmenu.sh" 59 | chmod +x .local/bin/kali-dmenu 60 | 61 | cat >.bashrc << 'EOF' 62 | # don't put duplicate lines or lines starting with space in the history. 63 | HISTCONTROL=ignoreboth 64 | HISTSIZE=1000 65 | HISTFILESIZE=2000 66 | shopt -s histappend 67 | shopt -s checkwinsize 68 | 69 | # set variable identifying the chroot you work in (used in the prompt below) 70 | if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then 71 | debian_chroot=$(cat /etc/debian_chroot) 72 | fi 73 | 74 | PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[1;49;96m\]\u@\h\[\033[00m\]\[\033[00;34m\]\w\[\033[00m\]:\nλ ' 75 | 76 | # enable color support of ls and also add handy aliases 77 | if [ -x /usr/bin/dircolors ]; then 78 | alias ls='ls --color=auto' 79 | alias grep='grep --color=auto' 80 | alias fgrep='fgrep --color=auto' 81 | alias egrep='egrep --color=auto' 82 | fi 83 | 84 | # import bash_aliases 85 | if [ -f ~/.bash_aliases ]; then 86 | . ~/.bash_aliases 87 | fi 88 | 89 | # enable programmable completion features 90 | if ! shopt -oq posix; then 91 | if [ -f /usr/share/bash-completion/bash_completion ]; then 92 | . /usr/share/bash-completion/bash_completion 93 | elif [ -f /etc/bash_completion ]; then 94 | . /etc/bash_completion 95 | fi 96 | fi 97 | EOF 98 | 99 | cat >.bash_aliases << 'EOF' 100 | alias gpp='g++ -Wall' 101 | alias gpp2='g++ -pedantic-errors -Wall -Weffc++ -Wextra -Wsign-conversion -Werror' 102 | alias git_status="git status -sb" 103 | alias git_log="git log --all --graph --pretty=format:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative" 104 | alias pi="pwd>/tmp/pi" 105 | alias po="cd \`cat /tmp/pi\`" 106 | alias link_extract="grep -shoP 'http.*?[\" >]'" 107 | alias py="python3" 108 | alias bye="exit" 109 | 110 | 0x0() { 111 | curl -F "file=@$1" http://0x0.st 112 | } 113 | ix() { 114 | curl -F "f:l=@$1" ix.io 115 | } 116 | ix2() { 117 | curl -F "f:l=<-" ix.io 118 | } 119 | anon() { 120 | curl -F "file=@$1" https://api.anonfile.com/upload 121 | } 122 | fuck() { 123 | for i in $(pidof $1);do 124 | kill -s 9 $i 125 | done 126 | } 127 | EOF 128 | 129 | cat >.Xdefaults << 'EOF' 130 | ! BASIC URxvt SETTINGS 131 | URxvt.font:xft:terminus:size=12 132 | URxvt.boldFont:xft:terminus:style=Bold:size=12 133 | URxvt*scrollBar: false 134 | URxvt*transparent: true 135 | URXvt*pixbuf: true 136 | URxvt*shading: 10 137 | URxvt.saveLines: 2000 138 | URxvt.internalBorder: 7 139 | URxvt.letterSpace: 1 140 | 141 | ! Disable buffer update scroll lock 142 | URxvt*scrollTtyOutput: false 143 | URxvt*scrollWithBuffer: true 144 | URxvt*scrollTtyKeypress: true 145 | 146 | ! Disable ctrl+shift selector 147 | URxvt.iso14755: false 148 | URxvt.iso14755_52: false 149 | 150 | ! Copy Paste & Other Extensions 151 | URxvt.perl-lib: /usr/lib/urxvt/perl 152 | URxvt.perl-ext-common: default,clipboard,url-select,font-size 153 | URxvt.copyCommand: xclip -i -selection clipboard 154 | URxvt.pasteCommand: xclip -o -selection clipboard 155 | URxvt.url-select.launcher: firefox 156 | URxvt.url-select.underline: true 157 | URxvt.url-select.autocopy: true 158 | 159 | ! Common Keybinds 160 | URxvt.keysym.Shift-Up: command:\033]720;1\007 161 | URxvt.keysym.Shift-Down: command:\033]721;1\007 162 | URxvt.keysym.M-c: perl:clipboard:copy 163 | URxvt.keysym.M-v: perl:clipboard:paste 164 | URxvt.keysym.M-C-v: perl:clipboard:paste_escaped 165 | URxvt.keysym.M-Escape: perl:keyboard-select:activate 166 | URxvt.keysym.M-s: perl:keyboard-select:search 167 | URxvt.keysym.M-u: perl:url-select:select_next 168 | URxvt.keysym.Control-minus: font-size:decrease 169 | URxvt.keysym.Control-equal: font-size:increase 170 | EOF 171 | 172 | cat >.Xresources << 'EOF' 173 | *.foreground: #c2e099 174 | *.background: #0e0f11 175 | URxvt*foreground: #c2e099 176 | URxvt*background: [100]#0e0f11 177 | URxvt*cursorColor: #c2e099 178 | URxvt*borderColor: [100]#0e0f11 179 | URxvt*depth: 32 180 | 181 | ! Colors 0-15. 182 | *.color0: #0e0f11 183 | *.color1: #3E4044 184 | *.color2: #526242 185 | *.color3: #6E9A33 186 | *.color4: #749943 187 | *.color5: #84B83E 188 | *.color6: #97DA37 189 | *.color7: #c2e099 190 | *.color8: #879c6b 191 | *.color9: #3E4044 192 | *.color10: #526242 193 | *.color11: #6E9A33 194 | *.color12: #749943 195 | *.color13: #84B83E 196 | *.color14: #97DA37 197 | *.color15: #c2e099 198 | *.color66: #0e0f11 199 | EOF 200 | 201 | cat >.config/i3/config << 'EOF' 202 | # Sets wallpaper and terminal themes at the start, 'wal' or 'feh' 203 | exec --no-startup-id feh --bg-fill /usr/share/wallpapers/kali/contents/images/wallpaper.png 204 | 205 | ### -- BASIC DEFINITIONS -- ### 206 | set $mod Mod4 207 | floating_modifier $mod 208 | font pango:DejaVu Sans Mono 8 209 | 210 | ### -- CLASS -- ### border backgro text indicat childbo 211 | client.focused #1A1A1A00 #00000000 #9196DB #FFFFFF #FFFFFF 212 | client.focused_inactive #1A1A1A00 #00000000 #000000 #B9B9B9 #526242 213 | client.unfocused #1A1A1A00 #00000000 #000000 #B9B9B9 #526242 214 | client.urgent #2F343A00 #00000000 #000000 #900000 #900000 215 | 216 | ### -- BASIC KEYBINDS -- ### 217 | bindsym $mod+d exec --no-startup-id i3-dmenu-desktop 218 | bindsym $mod+Shift+d exec --no-startup-id /home/kali/.local/bin/kali-dmenu 219 | bindsym $mod+Return exec /usr/bin/urxvt 220 | bindsym $mod+Shift+q kill 221 | # change focus 222 | bindsym $mod+Left focus left 223 | bindsym $mod+Down focus down 224 | bindsym $mod+Up focus up 225 | bindsym $mod+Right focus right 226 | # move focused window 227 | bindsym $mod+Shift+Left move left 228 | bindsym $mod+Shift+Down move down 229 | bindsym $mod+Shift+Up move up 230 | bindsym $mod+Shift+Right move right 231 | # orientation and fullscreen 232 | bindsym $mod+h split h 233 | bindsym $mod+v split v 234 | bindsym $mod+f fullscreen toggle 235 | # change container layout 236 | bindsym $mod+s layout stacking 237 | bindsym $mod+w layout tabbed 238 | bindsym $mod+e layout toggle split 239 | # toggle tiling / floating 240 | bindsym $mod+Shift+space floating toggle 241 | bindsym $mod+space focus mode_toggle 242 | # scratchpad 243 | bindsym $mod+Shift+minus move scratchpad 244 | bindsym $mod+minus scratchpad show 245 | 246 | # >switch to workspace 247 | bindsym $mod+1 workspace number 1 248 | bindsym $mod+2 workspace number 2 249 | bindsym $mod+3 workspace number 3 250 | bindsym $mod+4 workspace number 4 251 | bindsym $mod+5 workspace number 5 252 | bindsym $mod+6 workspace number 6 253 | bindsym $mod+7 workspace number 7 254 | bindsym $mod+8 workspace number 8 255 | bindsym $mod+9 workspace number 9 256 | bindsym $mod+quotedbl workspace number 10 257 | 258 | # >move focused container to workspace 259 | bindsym $mod+Shift+1 move container to workspace number 1 260 | bindsym $mod+Shift+2 move container to workspace number 2 261 | bindsym $mod+Shift+3 move container to workspace number 3 262 | bindsym $mod+Shift+4 move container to workspace number 4 263 | bindsym $mod+Shift+5 move container to workspace number 5 264 | bindsym $mod+Shift+6 move container to workspace number 6 265 | bindsym $mod+Shift+7 move container to workspace number 7 266 | bindsym $mod+Shift+8 move container to workspace number 8 267 | bindsym $mod+Shift+9 move container to workspace number 9 268 | bindsym $mod+Shift+quotedbl move container to workspace number 10 269 | 270 | 271 | ### --- MODES --- ### 272 | mode " Resize Mode" { 273 | bindsym Left resize shrink width 5 px or 5 ppt 274 | bindsym Down resize grow height 5 px or 5 ppt 275 | bindsym Up resize shrink height 5 px or 5 ppt 276 | bindsym Right resize grow width 5 px or 10 ppt 277 | bindsym Return mode "default" 278 | bindsym Escape mode "default" 279 | bindsym $mod+r mode "default" 280 | } 281 | 282 | 283 | bar { 284 | strip_workspace_numbers yes 285 | status_command i3blocks -c ~/.config/i3/i3blocks.conf 286 | position top 287 | font pango:terminus 9 288 | colors { 289 | statusline #E6FFF5 290 | background #12161e00 291 | focused_workspace #FFFFFF00 #00000000 #FFFFFF 292 | inactive_workspace #FFFFFF00 #00000000 #707070 293 | urgent_workspace #00000000 #00000000 #C40100 294 | binding_mode #00000000 #00000000 #000000 295 | } 296 | } 297 | 298 | for_window [class="^.*"] border pixel 1 299 | new_window 1pixel 300 | 301 | ### -- SPECIAL KEYS -- ### 302 | bindsym --release $mod+Shift+c exec --no-startup-id xkill 303 | bindsym $mod+r mode " Resize Mode" 304 | 305 | for_window [class="mpv"] floating enable 306 | for_window [class="mpv"] move position center 307 | for_window [class="feh"] floating enable 308 | for_window [class="feh"] resize set 1000 800 309 | for_window [class="feh"] move position center 310 | for_window [window_role="GtkFileChooserDialog"] resize set 800 600 311 | for_window [window_role="GtkFileChooserDialog"] move position center 312 | 313 | for_window [window_type="DIALOG"] focus 314 | for_window [window_type="DIALOG"] move position center 315 | for_window [window_type="DIALOG"] sticky enable 316 | 317 | exec --no-startup-id gxkb 318 | exec --no-startup-id pnmixer 319 | exec --no-startup-id sleep 3s; nm-applet 320 | EOF 321 | 322 | cat >.config/i3/i3blocks.conf << 'EOF' 323 | # Global properties 324 | command=/usr/share/i3blocks/$BLOCK_NAME 325 | separator=false 326 | separator_block_width=20 327 | markup=none 328 | 329 | [memory] 330 | label=MEM 331 | separator=false 332 | interval=30 333 | 334 | [memory] 335 | label=SWAP 336 | instance=swap 337 | separator=false 338 | interval=30 339 | 340 | [disk] 341 | label=HOME 342 | #instance=/mnt/data 343 | interval=30 344 | 345 | [iface] 346 | #instance=wlan0 347 | color=#00FF00 348 | interval=10 349 | separator=false 350 | 351 | [wifi] 352 | instance=wlp3s0 353 | interval=10 354 | separator=false 355 | 356 | [bandwidth] 357 | #instance=eth0 358 | interval=5 359 | 360 | [cpu_usage] 361 | label=CPU 362 | interval=5 363 | min_width=CPU: 100.00% 364 | #separator=false 365 | 366 | # The battery instance defaults to 0. 367 | [battery] 368 | label=BAT 369 | #label=⚡ 370 | #instance=1 371 | interval=30 372 | 373 | [time] 374 | #command=date '+%Y-%m-%d %H:%M:%S' 375 | command=date '+ %d %B %H:%M ' 376 | interval=60 377 | align=right 378 | min_width= 00 October 00:00 379 | 380 | [kali-dmenu] 381 | full_text= 382 | command=/home/kali/.local/bin/kali-dmenu &>/dev/null ; echo  383 | EOF 384 | 385 | cat >.config/gxkb/gxkb.cfg << 'EOF' 386 | [xkb config] 387 | group_policy=0 388 | default_group=0 389 | never_modify_config=false 390 | model=pc105 391 | layouts=tr,us,ru,fr 392 | variants=,, 393 | toggle_option= 394 | compose_key_position= 395 | EOF 396 | 397 | cat >.config/pnmixer/config << 'EOF' 398 | [PNMixer] 399 | SliderOrientation=vertical 400 | DisplayTextVolume=true 401 | TextVolumePosition=0 402 | ScrollStep=5 403 | FineScrollStep=1 404 | MiddleClickAction=0 405 | CustomCommand= 406 | VolMuteKey=-1 407 | VolUpKey=-1 408 | VolDownKey=-1 409 | AlsaCard=(default) 410 | NormalizeVolume=true 411 | SystemTheme=true 412 | DrawVolMeter=false 413 | VolMeterPos=0 414 | VolMeterColor=0.90980392156900003;0.43137254902;0.43137254902; 415 | VolumeControlCommand= 416 | EnableHotKeys=false 417 | VolMuteMods=0 418 | VolUpMods=0 419 | VolDownMods=0 420 | EnableNotifications=false 421 | HotkeyNotifications=true 422 | MouseNotifications=true 423 | PopupNotifications=false 424 | ExternalNotifications=false 425 | NotificationTimeout=1500 426 | 427 | [(default)] 428 | Channel=Master 429 | EOF 430 | 431 | # Configure Urxvt Scripts 432 | mkdir -p ../../usr/lib/urxvt/perl 433 | cd ../../usr/lib/urxvt/perl 434 | wget -O url-select https://raw.githubusercontent.com/muennich/urxvt-perls/master/deprecated/url-select 435 | wget -O clipboard https://raw.githubusercontent.com/muennich/urxvt-perls/master/deprecated/clipboard 436 | wget -O font-size https://raw.githubusercontent.com/majutsushi/urxvt-font-size/master/font-size 437 | chmod +x ./* 438 | 439 | cd $REPOPATH 440 | # Add our Wallpaper 441 | mkdir -p kali-config/common/includes.chroot/usr/share/wallpapers/kali/contents/images 442 | wget -O kali-config/common/includes.chroot/usr/share/wallpapers/kali/contents/images/wallpaper.png https://u.teknik.io/40JLT.png 443 | 444 | # Hook script to fix file permissions 445 | cat > kali-config/common/hooks/permissions.chroot<< 'EOF' 446 | #!/bin/bash 447 | chmod -R 755 /usr/lib/urxvt/ 448 | chmod -R 751 /usr/share 449 | chmod 755 /usr/share/wallpapers/kali/contents/images/wallpaper.png 450 | EOF 451 | chmod +x kali-config/common/hooks/permissions.chroot 452 | 453 | echo "CONFIGURING SUCCESS, NOW BUILDING." 454 | ./build.sh --variant i3wm --verbose 455 | --------------------------------------------------------------------------------