This is a collection of scripts to be used with tmux, i3-gaps and i3blocks.
i3blocks looks like this:
app-emulation/libvirtforvm_statussys-apps/lm-sensorsforcpux11-misc/xkblayout-stateforcurrent_languagemedia-sound/pulsemixerforvolumemedia-sound/pavucontrolforvolumeapp-misc/headsetcontrol::nitratesky forheadset_ctlx11-misc/j4-dmenu-desktopfor the launchermedia-gfx/maimforscrnsht_ctlx11-misc/xvkbdfornoctrlq.shandctrlshiftc.shapp-misc/tmuxfor tmux helperssys-apps/etckeeperfor monitoring/etc/repositoryx11-misc/dunst, v>=1.5.0 for notificationsapp-office/todoman::nitratesky for todo display
There is an ebuild available in nitratesky overlay. Alternatively, the scripts may be downloaded and used on their own.
-
j4-launcher.sh—j4-dmenu-desktop-based launcher, capable of filtering out unneeded desktop files -
ctrlshiftc.sh— catchesCtrl+Shift+cwhen sent to Firefox and resends normalCtrl+c -
noctrlq.sh— stops Firefox from exiting whenCtrl+qis pressed -
scrnsht_ctl— small utility to capture screenshots. By default uses darken shader to darken the rest of the screen -
toggle_gaps.sh— script to toggle gaps on the current workspace, requiresi3-gaps -
layout_toggle.sh— script that toggles keyboard layouts, sends notification usingdunstifyand changes keyboard layouts in specified Xephyrs running inside firejails. Requires running Xephyrs to have the same set of keyboard layouts as the host xorg-server in the same order. -
toggle_output_focus.sh— script to toggle focus between multiple outputs supplied to its parameters.Example binding:
# Move focus DP-0 > DP-1 > DVI-D-0 > DP-0 ... bindsym $mod+Escape exec --no-startup-id $helper_path/toggle_output_focus.sh DP-0 DP-1 DVI-D-0 -
move_obj_to_output.sh— script to move workspace or a container to the next output and focus that output.Example binding:
# move focused workspace DP-0 > DP-1 > DVI-D-0 > DP-0 ... bindsym $mod+Shift+Tab exec --no-startup-id $helper_path/move_obj_to_output.sh workspace DP-0 DP-1 DVI-D-0 # move focused container DP-0 > DP-1 > DVI-D-0 bindsym $mod+Shift+Tab exec --no-startup-id $helper_path/move_obj_to_output.sh container DP-0 DP-1 DVI-D-0 -
dunstctl_toggle_notify.sh— displays a notification and toggles the state of dunst. Requires dunst version greater than 1.5.0 due to dunstctl requirement. -
i3-helpers/scratchpad_terminal.sh— checks if a scratchpad terminal is running and shows it. If it is not running — launches it. Syntax:bindsym <KEY_COMBO> scratchpad_terminal $TERMINAL <TERMINAL_TITLE>where
<TERMINAL_TITLE>is the one i3 will move to scratchpad like so:for_window [title="$TERMINAL_TITLE"] move scratchpad
battery— displays battery status. Requires battery number as the argumentclock— the clockcpu_temp— cpu temp, requires an argument (see below)config_repo_status— I keep my${HOME}/.configas a git repository and if something is changed there and is not commited, this block appears on i3blocks bar. If clicked, it opens up$TERMINALat the repo location.current_language— shows the current language usingxkblayout-stateheadset_ctl— shows battery status for compatible headphones.internet— shows WiFi signal strengthtodo_next— block for the next item in vim todolist.todo_total— block for the total amount of items in vim todolist.vm_status— usesvirshto check if VM from the argument is runningvolume— shows volume level and can launchpulsemixerandpavucontroltodoman— shows tasks fromapp-office/todomanlist
cpu: requires an argument in jq compatible format. E.g. for the following output:
{
"k10temp-pci-00c3":{
"Adapter": "PCI adapter",
"Tdie":{
"temp1_input": 37.500,
"temp1_max": 70.000
},
"Tctl":{
"temp2_input": 37.500
}
}
}
the argument should be '."k10temp-pci-00c3"."Tdie"."temp1_input" | round' to produce output 38 C
-
config-status.sh— provides a widget that can tell if${HOME}/.configrepository has uncommited changes
-
etckeeper-status.sh— provides a tmux widget that can tell if the/etcdirectory has uncommited changes
-
sensor.sh— provides CPU temperature, seecpu_tempabove.tmux.confmakes it a little hard to escape parameters properly, so this is best used in a wrapper script
Portage clean is based on config-status.sh and checks the state of /etc/portage repository

