First commit
This commit is contained in:
commit
dfd5585151
|
|
@ -0,0 +1,7 @@
|
|||
aspect = 0
|
||||
separate_widget = ""
|
||||
tab_len = 0
|
||||
visit_items = OFF
|
||||
use_shadow = OFF
|
||||
use_colors = ON
|
||||
screen_color = (WHITE,DEFAULT,OFF)
|
||||
|
|
@ -0,0 +1,249 @@
|
|||
# i3 config file (v4)
|
||||
#
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
#
|
||||
# This config file uses keycodes (bindsym) and was written for the QWERTY
|
||||
# layout.
|
||||
#
|
||||
# To get a config file with the same key positions, but for your current
|
||||
# layout, use the i3-config-wizard
|
||||
#
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:GohuFont uni14 Nerd Font Mono Bold 9
|
||||
#font pango:monospace 8
|
||||
|
||||
|
||||
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||
#font pango:DejaVu Sans Mono 8
|
||||
|
||||
# Start XDG autostart .desktop files using dex. See also
|
||||
# https://wiki.archlinux.org/index.php/XDG_Autostart
|
||||
exec --no-startup-id dex --autostart --environment i3
|
||||
|
||||
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
|
||||
# they are included here as an example. Modify as you see fit.
|
||||
|
||||
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
|
||||
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||
|
||||
# NetworkManager is the most popular way to manage wireless networks on Linux,
|
||||
# and nm-applet is a desktop environment-independent system tray GUI for it.
|
||||
exec --no-startup-id nm-applet
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
set $refresh_i3status killall -SIGUSR1 i3status
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
||||
|
||||
bindsym XF86MonBrightnessUp exec xbacklight -inc 10
|
||||
bindsym XF86MonBrightnessDown exec xbacklight -inc 10
|
||||
|
||||
bindsym Ctrl+e exec element-desktop
|
||||
bindsym Ctrl+f exec simpleX-desktop
|
||||
bindsym Ctrl+Mod4+l exec "i3lock -c 000000"
|
||||
# use these keys for focus, movement, and resize directions when reaching for
|
||||
# the arrows is not convenient
|
||||
set $up l
|
||||
set $down k
|
||||
set $left j
|
||||
set $right semicolon
|
||||
|
||||
# use Mouse+Mod4 to drag floating windows to their wanted position
|
||||
floating_modifier Mod4
|
||||
|
||||
# move tiling windows via drag & drop by left-clicking into the title bar,
|
||||
# or left-clicking anywhere into the window while holding the floating modifier.
|
||||
tiling_drag modifier titlebar
|
||||
|
||||
# start a terminal
|
||||
bindsym Mod4+Return exec wezterm
|
||||
bindsym Mod4+Shift+Return exec wezterm -e --class term_date
|
||||
#bindsym Mod4+Return exec i3-sensible-terminal
|
||||
|
||||
# kill focused window
|
||||
bindsym Mod4+Shift+q kill
|
||||
|
||||
# start dmenu (a program launcher)
|
||||
#bindsym Mod4+d exec --no-startup-id i3-dmenu-desktop
|
||||
bindsym Mod4+d exec --no-startup-id dmenu_run
|
||||
# A more modern dmenu replacement is rofi:
|
||||
# bindsym Mod4+d exec "rofi -modi drun,run -show drun"
|
||||
# There also is i3-dmenu-desktop which only displays applications shipping a
|
||||
# .desktop file. It is a wrapper around dmenu, so you need that installed.
|
||||
# bindsym Mod4+d exec --no-startup-id i3-dmenu-desktop
|
||||
|
||||
# change focus
|
||||
bindsym Mod4+$left focus left
|
||||
bindsym Mod4+$down focus down
|
||||
bindsym Mod4+$up focus up
|
||||
bindsym Mod4+$right focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym Mod4+Left focus left
|
||||
bindsym Mod4+Down focus down
|
||||
bindsym Mod4+Up focus up
|
||||
bindsym Mod4+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym Mod4+Shift+$left move left
|
||||
bindsym Mod4+Shift+$down move down
|
||||
bindsym Mod4+Shift+$up move up
|
||||
bindsym Mod4+Shift+$right move right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym Mod4+Shift+Left move left
|
||||
bindsym Mod4+Shift+Down move down
|
||||
bindsym Mod4+Shift+Up move up
|
||||
bindsym Mod4+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym Mod4+h split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym Mod4+v split v
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym Mod4+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym Mod4+s layout stacking
|
||||
bindsym Mod4+w layout tabbed
|
||||
bindsym Mod4+e layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym Mod4+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym Mod4+space focus mode_toggle
|
||||
|
||||
# default_border pixel 1
|
||||
for_window [class="^.*"] border pixel 1
|
||||
for_window [class="term_date"] floating enable
|
||||
#default_floating_border pixel 1
|
||||
#gaps inner 1px
|
||||
# focus the parent container
|
||||
bindsym Mod4+a focus parent
|
||||
|
||||
# focus the child container
|
||||
#bindsym Mod4+d focus child
|
||||
|
||||
# move the currently focused window to the scratchpad
|
||||
bindsym Mod4+Shift+minus move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym Mod4+minus scratchpad show
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
# switch to workspace
|
||||
bindsym Mod4+1 workspace number $ws1
|
||||
bindsym Mod4+2 workspace number $ws2
|
||||
bindsym Mod4+3 workspace number $ws3
|
||||
bindsym Mod4+4 workspace number $ws4
|
||||
bindsym Mod4+5 workspace number $ws5
|
||||
bindsym Mod4+6 workspace number $ws6
|
||||
bindsym Mod4+7 workspace number $ws7
|
||||
bindsym Mod4+8 workspace number $ws8
|
||||
bindsym Mod4+9 workspace number $ws9
|
||||
bindsym Mod4+0 workspace number $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym Mod4+Shift+1 move container to workspace number $ws1
|
||||
bindsym Mod4+Shift+2 move container to workspace number $ws2
|
||||
bindsym Mod4+Shift+3 move container to workspace number $ws3
|
||||
bindsym Mod4+Shift+4 move container to workspace number $ws4
|
||||
bindsym Mod4+Shift+5 move container to workspace number $ws5
|
||||
bindsym Mod4+Shift+6 move container to workspace number $ws6
|
||||
bindsym Mod4+Shift+7 move container to workspace number $ws7
|
||||
bindsym Mod4+Shift+8 move container to workspace number $ws8
|
||||
bindsym Mod4+Shift+9 move container to workspace number $ws9
|
||||
bindsym Mod4+Shift+0 move container to workspace number $ws10
|
||||
|
||||
# reload the configuration file
|
||||
bindsym Mod4+Shift+c reload
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym Mod4+Shift+r restart
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym Mod4+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym $left resize shrink width 10 px or 10 ppt
|
||||
bindsym $down resize grow height 10 px or 10 ppt
|
||||
bindsym $up resize shrink height 10 px or 10 ppt
|
||||
bindsym $right resize grow width 10 px or 10 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or Escape or Mod4+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym Mod4+r mode "default"
|
||||
}
|
||||
|
||||
bindsym Mod4+r mode "resize"
|
||||
|
||||
#class border backgr. text indicator child_border
|
||||
client.focused #9C7907 #444303 #ffffff #9C7907 #9C7907
|
||||
client.focused_inactive #111111 #000000 #ffffff #484e50 #5f676a
|
||||
client.unfocused #333333 #222222 #888888 #292d2e #222222
|
||||
client.urgent #2f343a #900000 #ffffff #900000 #900000
|
||||
client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c
|
||||
|
||||
client.background #ffffff
|
||||
|
||||
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
bar {
|
||||
position top
|
||||
status_command exec /home/pierre/.config/i3status/mytopbar.sh
|
||||
workspace_buttons no
|
||||
tray_output primary
|
||||
}
|
||||
|
||||
bar {
|
||||
position bottom
|
||||
status_command exec /home/pierre/.config/i3status/mybottombar.sh
|
||||
tray_output none
|
||||
}
|
||||
#######################################################################
|
||||
# automatically start i3-config-wizard to offer the user to create a
|
||||
# keysym-based config which used their favorite modifier (alt or windows)
|
||||
#
|
||||
# i3-config-wizard will not launch if there already is a config file
|
||||
# in ~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set) or
|
||||
# ~/.i3/config.
|
||||
#
|
||||
# Please remove the following exec line:
|
||||
#######################################################################
|
||||
#exec i3-config-wizard
|
||||
|
|
@ -0,0 +1,214 @@
|
|||
# i3 config file (v4)
|
||||
#
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
#
|
||||
# This config file uses keycodes (bindsym) and was written for the QWERTY
|
||||
# layout.
|
||||
#
|
||||
# To get a config file with the same key positions, but for your current
|
||||
# layout, use the i3-config-wizard
|
||||
#
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:monospace 8
|
||||
|
||||
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||
#font pango:DejaVu Sans Mono 8
|
||||
|
||||
# Start XDG autostart .desktop files using dex. See also
|
||||
# https://wiki.archlinux.org/index.php/XDG_Autostart
|
||||
exec --no-startup-id dex --autostart --environment i3
|
||||
|
||||
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
|
||||
# they are included here as an example. Modify as you see fit.
|
||||
|
||||
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
|
||||
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||
|
||||
# NetworkManager is the most popular way to manage wireless networks on Linux,
|
||||
# and nm-applet is a desktop environment-independent system tray GUI for it.
|
||||
exec --no-startup-id nm-applet
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
set $refresh_i3status killall -SIGUSR1 i3status
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
||||
|
||||
# use these keys for focus, movement, and resize directions when reaching for
|
||||
# the arrows is not convenient
|
||||
set $up l
|
||||
set $down k
|
||||
set $left j
|
||||
set $right semicolon
|
||||
|
||||
# use Mouse+Mod1 to drag floating windows to their wanted position
|
||||
floating_modifier Mod1
|
||||
|
||||
# move tiling windows via drag & drop by left-clicking into the title bar,
|
||||
# or left-clicking anywhere into the window while holding the floating modifier.
|
||||
tiling_drag modifier titlebar
|
||||
|
||||
# start a terminal
|
||||
bindsym Mod1+Return exec i3-sensible-terminal
|
||||
|
||||
# kill focused window
|
||||
bindsym Mod1+Shift+q kill
|
||||
|
||||
# start dmenu (a program launcher)
|
||||
bindsym Mod1+d exec --no-startup-id dmenu_run
|
||||
# A more modern dmenu replacement is rofi:
|
||||
# bindsym Mod1+d exec "rofi -modi drun,run -show drun"
|
||||
# There also is i3-dmenu-desktop which only displays applications shipping a
|
||||
# .desktop file. It is a wrapper around dmenu, so you need that installed.
|
||||
# bindsym Mod1+d exec --no-startup-id i3-dmenu-desktop
|
||||
|
||||
# change focus
|
||||
bindsym Mod1+$left focus left
|
||||
bindsym Mod1+$down focus down
|
||||
bindsym Mod1+$up focus up
|
||||
bindsym Mod1+$right focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym Mod1+Left focus left
|
||||
bindsym Mod1+Down focus down
|
||||
bindsym Mod1+Up focus up
|
||||
bindsym Mod1+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym Mod1+Shift+$left move left
|
||||
bindsym Mod1+Shift+$down move down
|
||||
bindsym Mod1+Shift+$up move up
|
||||
bindsym Mod1+Shift+$right move right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym Mod1+Shift+Left move left
|
||||
bindsym Mod1+Shift+Down move down
|
||||
bindsym Mod1+Shift+Up move up
|
||||
bindsym Mod1+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym Mod1+h split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym Mod1+v split v
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym Mod1+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym Mod1+s layout stacking
|
||||
bindsym Mod1+w layout tabbed
|
||||
bindsym Mod1+e layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym Mod1+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym Mod1+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym Mod1+a focus parent
|
||||
|
||||
# focus the child container
|
||||
#bindsym Mod1+d focus child
|
||||
|
||||
# move the currently focused window to the scratchpad
|
||||
bindsym Mod1+Shift+minus move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym Mod1+minus scratchpad show
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
# switch to workspace
|
||||
bindsym Mod1+1 workspace number $ws1
|
||||
bindsym Mod1+2 workspace number $ws2
|
||||
bindsym Mod1+3 workspace number $ws3
|
||||
bindsym Mod1+4 workspace number $ws4
|
||||
bindsym Mod1+5 workspace number $ws5
|
||||
bindsym Mod1+6 workspace number $ws6
|
||||
bindsym Mod1+7 workspace number $ws7
|
||||
bindsym Mod1+8 workspace number $ws8
|
||||
bindsym Mod1+9 workspace number $ws9
|
||||
bindsym Mod1+0 workspace number $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym Mod1+Shift+1 move container to workspace number $ws1
|
||||
bindsym Mod1+Shift+2 move container to workspace number $ws2
|
||||
bindsym Mod1+Shift+3 move container to workspace number $ws3
|
||||
bindsym Mod1+Shift+4 move container to workspace number $ws4
|
||||
bindsym Mod1+Shift+5 move container to workspace number $ws5
|
||||
bindsym Mod1+Shift+6 move container to workspace number $ws6
|
||||
bindsym Mod1+Shift+7 move container to workspace number $ws7
|
||||
bindsym Mod1+Shift+8 move container to workspace number $ws8
|
||||
bindsym Mod1+Shift+9 move container to workspace number $ws9
|
||||
bindsym Mod1+Shift+0 move container to workspace number $ws10
|
||||
|
||||
# reload the configuration file
|
||||
bindsym Mod1+Shift+c reload
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym Mod1+Shift+r restart
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym Mod1+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym $left resize shrink width 10 px or 10 ppt
|
||||
bindsym $down resize grow height 10 px or 10 ppt
|
||||
bindsym $up resize shrink height 10 px or 10 ppt
|
||||
bindsym $right resize grow width 10 px or 10 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or Escape or Mod1+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym Mod1+r mode "default"
|
||||
}
|
||||
|
||||
bindsym Mod1+r mode "resize"
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
bar {
|
||||
status_command i3status
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
# automatically start i3-config-wizard to offer the user to create a
|
||||
# keysym-based config which used their favorite modifier (alt or windows)
|
||||
#
|
||||
# i3-config-wizard will not launch if there already is a config file
|
||||
# in ~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set) or
|
||||
# ~/.i3/config.
|
||||
#
|
||||
# Please remove the following exec line:
|
||||
#######################################################################
|
||||
exec i3-config-wizard
|
||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
# show year calendar with week numbers
|
||||
# and press any key to exit
|
||||
dialog --date-format %Y/%m/%d --calendar "Select a date" 0 0 $(date +'%d %m %Y')
|
||||
#cal -yw
|
||||
#read -n 1 -r -s
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Actually works for ProtonVPN
|
||||
# we are connected if the directory exists
|
||||
if [ -d /proc/sys/net/ipv4/conf/wg0 ]; then
|
||||
# we are connected, so propose disconnexion
|
||||
echo "Disconnect VPN"
|
||||
sudo wg-quick down wg0
|
||||
else
|
||||
echo "Connect VPN"
|
||||
sudo wg-quick up wg0
|
||||
fi
|
||||
|
|
@ -0,0 +1,171 @@
|
|||
#!/bin/sh
|
||||
|
||||
# i3 config in ~/.config/i3/config :
|
||||
# bar {
|
||||
# status_command exec /home/you/.config/i3status/mybar.sh
|
||||
# }
|
||||
|
||||
bg_bar_color="#282A36"
|
||||
|
||||
# Print a left caret separator
|
||||
# @params {string} $1 text color, ex: "#FF0000"
|
||||
# @params {string} $2 background color, ex: "#FF0000"
|
||||
separator() {
|
||||
echo -n "{"
|
||||
echo -n "\"full_text\":\"\"," # CTRL+Ue0b2
|
||||
echo -n "\"separator\":false,"
|
||||
echo -n "\"separator_block_width\":0,"
|
||||
echo -n "\"border\":\"$bg_bar_color\","
|
||||
echo -n "\"border_left\":0,"
|
||||
echo -n "\"border_right\":0,"
|
||||
echo -n "\"border_top\":2,"
|
||||
echo -n "\"border_bottom\":2,"
|
||||
echo -n "\"color\":\"$1\","
|
||||
echo -n "\"background\":\"$2\""
|
||||
echo -n "}"
|
||||
}
|
||||
|
||||
common() {
|
||||
echo -n "\"border\": \"$bg_bar_color\","
|
||||
echo -n "\"separator\":false,"
|
||||
echo -n "\"separator_block_width\":0,"
|
||||
echo -n "\"border_top\":2,"
|
||||
echo -n "\"border_bottom\":2,"
|
||||
echo -n "\"border_left\":0,"
|
||||
echo -n "\"border_right\":0"
|
||||
}
|
||||
|
||||
myip_public_text() {
|
||||
local bg="#000000"
|
||||
local text_color="#D48F06"
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"ip_public_text\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\" $(echo -n "Public Ip:") \","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
myip_public() {
|
||||
local bg="#000000"
|
||||
local text_color="#00A300"
|
||||
separator $bg "#FFFFFF"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"ip_public\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\"$(curl -4 ip.me)\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
myip_local_text() {
|
||||
local bg="#000000"
|
||||
local text_color="#D48F06"
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"ip_local_text\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\" $(echo -n "Local Ip:")\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
mygeo_text() {
|
||||
local bg="#000000"
|
||||
local text_color="#00A300"
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"mygeo_text\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\" ($(/home/pierre/bin/goiplookup $(curl -s4 ip.me) | cut -d" " -f4-))\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
myip_local() {
|
||||
local bg="#000000" # vert
|
||||
separator $bg $bg_separator_previous
|
||||
local text_color="#00A300"
|
||||
echo -n ",{"
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"name\":\"ip_local\","
|
||||
echo -n "\"full_text\":\"$(ip route get 1 | sed -n 's/.*src \([0-9.]\+\).*/\1/p')\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
vpn_text() {
|
||||
local bg="#000000"
|
||||
local text_color="#D48F06"
|
||||
local icon=""
|
||||
if [ ! -d /proc/sys/net/ipv4/conf/wg0 ]; then
|
||||
icon=""
|
||||
fi
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"vpn_text\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\" $(echo -n "VPN:")\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
myvpn_on() {
|
||||
local bg="#000000" # grey darken-3
|
||||
local icon=""
|
||||
text_color="#00A300"
|
||||
text="ON"
|
||||
if [ ! -d /proc/sys/net/ipv4/conf/wg0 ]; then
|
||||
text_color="#E53935" # rouge
|
||||
text="OFF"
|
||||
icon=""
|
||||
fi
|
||||
separator $bg "#1976D2" # background left previous block
|
||||
bg_separator_previous=$bg
|
||||
echo -n ",{"
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"name\":\"id_vpn\","
|
||||
echo -n "\"full_text\":\" ${icon} ${text} \","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "}"
|
||||
}
|
||||
|
||||
# https://github.com/i3/i3/blob/next/contrib/trivial-bar-script.sh
|
||||
echo '{ "version": 1, "click_events":true }' # Send the header so that i3bar knows we want to use JSON:
|
||||
echo '[' # Begin the endless array.
|
||||
echo '[]' # We send an empty first array of blocks to make the loop simpler:
|
||||
|
||||
# Now send blocks with information forever:
|
||||
(while :;
|
||||
do
|
||||
echo -n ",["
|
||||
myip_public_text
|
||||
myip_public
|
||||
mygeo_text
|
||||
myip_local_text
|
||||
myip_local
|
||||
vpn_text
|
||||
myvpn_on
|
||||
echo "]"
|
||||
sleep 5
|
||||
done) &
|
||||
|
||||
# click events
|
||||
while read line;
|
||||
do
|
||||
# echo $line > /home/you/gitclones/github/i3/tmp.txt
|
||||
# {"name":"id_vpn","button":1,"modifiers":["Mod2"],"x":2982,"y":9,"relative_x":67,"relative_y":9,"width":95,"height":22}
|
||||
|
||||
# VPN click
|
||||
if [[ $line == *"name"*"id_vpn"* ]]; then
|
||||
mate-terminal -e /home/pierre/.config/i3status/click_vpn.sh &
|
||||
fi
|
||||
done
|
||||
|
|
@ -0,0 +1,357 @@
|
|||
#!/bin/sh
|
||||
|
||||
# i3 config in ~/.config/i3/config :
|
||||
# bar {
|
||||
# status_command exec /home/you/.config/i3status/mybar.sh
|
||||
# }
|
||||
|
||||
bg_bar_color="#282A36"
|
||||
|
||||
# Print a left caret separator
|
||||
# @params {string} $1 text color, ex: "#FF0000"
|
||||
# @params {string} $2 background color, ex: "#FF0000"
|
||||
separator() {
|
||||
echo -n "{"
|
||||
echo -n "\"full_text\":\"\"," # CTRL+Ue0b2
|
||||
echo -n "\"separator\":false,"
|
||||
echo -n "\"separator_block_width\":0,"
|
||||
echo -n "\"border\":\"$bg_bar_color\","
|
||||
echo -n "\"border_left\":0,"
|
||||
echo -n "\"border_right\":0,"
|
||||
echo -n "\"border_top\":2,"
|
||||
echo -n "\"border_bottom\":2,"
|
||||
echo -n "\"color\":\"$1\","
|
||||
echo -n "\"background\":\"$2\""
|
||||
echo -n "}"
|
||||
}
|
||||
|
||||
common() {
|
||||
echo -n "\"border\": \"$bg_bar_color\","
|
||||
echo -n "\"separator\":false,"
|
||||
echo -n "\"separator_block_width\":0,"
|
||||
echo -n "\"border_top\":2,"
|
||||
echo -n "\"border_bottom\":2,"
|
||||
echo -n "\"border_left\":0,"
|
||||
echo -n "\"border_right\":0"
|
||||
}
|
||||
|
||||
root_text() {
|
||||
local bg="#000000"
|
||||
local text_color="#D48F06"
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_root_text\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\" $(echo -n 'Root:')\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
root_usage() {
|
||||
local bg="#000000"
|
||||
local text_color="#00A300"
|
||||
separator $bg "#2E7D32"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_root_usage\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\"$(df --output=pcent / | grep -v Uti)\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
home_text() {
|
||||
local bg="#000000"
|
||||
local text_color="#D48F06"
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_home_text\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\" $(echo -n 'Home:')\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
home_usage() {
|
||||
local bg="#000000"
|
||||
local text_color="#00A300"
|
||||
separator $bg "#2E7D32"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_home_usage\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\"$(df --output=pcent /home | grep -v Uti)\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
src_usage() {
|
||||
local bg="#000000"
|
||||
local text_color="#00A300"
|
||||
separator $bg "#2E7D32"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_src_usage\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\"$(df --output=pcent /usr/src | grep -v Uti)\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
src_text() {
|
||||
local bg="#000000"
|
||||
local text_color="#D48F06"
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_src_text\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\" $(echo -n 'Src:')\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
seclists_usage() {
|
||||
local bg="#000000"
|
||||
local text_color="#00A300"
|
||||
separator $bg "#2E7D32"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_seclists_usage\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\"$(df --output=pcent /usr/share/seclists | grep -v Uti)\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
seclists_text() {
|
||||
local bg="#000000"
|
||||
local text_color="#D48F06"
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_boot_text\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\" $(echo -n 'Sec:')\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
boot_usage() {
|
||||
local bg="#000000"
|
||||
local text_color="#00A300"
|
||||
separator $bg "#2E7D32"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_boot_usage\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\"$(df --output=pcent /boot | grep -v Uti)\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
boot_text() {
|
||||
local bg="#000000"
|
||||
local text_color="#D48F06"
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_boot_text\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\" $(echo -n 'Boot:')\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
memory_text() {
|
||||
local bg="#000000"
|
||||
local text_color="#D48F06"
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_memory_text\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\" $(echo -n ' Mem: ')\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
memory() {
|
||||
local bg="#000000"
|
||||
local text_color="#00A300"
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"name\":\"id_memory\","
|
||||
echo -n "\"full_text\":\"$(free | awk '/^Mem/ { printf("%.2f", $3/$2 * 100.0) }')%\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
cpu_usage() {
|
||||
local text_color="#00A300"
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"name\":\"id_cpu_usage\","
|
||||
echo -n "\"full_text\":\"$(ps -A -o pcpu | tail -n+2 | paste -sd+ | bc)% \","
|
||||
echo -n "\"background\":\"#000000\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
cpu_text() {
|
||||
local bg="#000000"
|
||||
local text_color="#D48F06"
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_cpu_text\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\" $(echo -n ' CPU: ')\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
mydate() {
|
||||
local bg="#000000"
|
||||
separator $bg "#FFD190"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_time\","
|
||||
echo -n "\"full_text\":\" $(date "+%a %d/%m %H:%M") \","
|
||||
echo -n "\"color\":\"#D48F06\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
bat_text() {
|
||||
local bg="#000000"
|
||||
local text_color="#D48F06"
|
||||
charging=$(cat /sys/class/power_supply/BAT0/uevent | grep "POWER_SUPPLY_STATUS" | cut -d'=' -f2) # POWER_SUPPLY_STATUS=Discharging|Charging
|
||||
icon=""
|
||||
if [ "$charging" == "Charging" ]; then
|
||||
icon=""
|
||||
fi
|
||||
separator $bg "#FFD180"
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_bat_text\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
echo -n "\"full_text\":\"${icon}$(echo -n ' Bat: ')\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
}
|
||||
|
||||
battery0() {
|
||||
if [ -f /sys/class/power_supply/BAT0/uevent ]; then
|
||||
local bg="#000000"
|
||||
separator $bg "#E0E0E0"
|
||||
bg_separator_previous=$bg
|
||||
prct=$(cat /sys/class/power_supply/BAT0/uevent | grep "POWER_SUPPLY_CAPACITY=" | cut -d'=' -f2)
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"battery0\","
|
||||
echo -n "\"full_text\":\"${prct}% \","
|
||||
echo -n "\"color\":\"#00A300\","
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
else
|
||||
bg_separator_previous="#E0E0E0"
|
||||
fi
|
||||
}
|
||||
|
||||
volume() {
|
||||
local bg="#000000"
|
||||
local text_color="#D48F06"
|
||||
separator $bg $bg_separator_previous
|
||||
vol=$(pulsemixer --get-volume)
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_volume\","
|
||||
echo -n "\"color\":\"$text_color\","
|
||||
if [ $vol -le 0 ]; then
|
||||
echo -n "\"full_text\":\" ${vol}% \","
|
||||
else
|
||||
echo -n "\"full_text\":\" ${vol}% \","
|
||||
fi
|
||||
echo -n "\"background\":\"$bg\","
|
||||
common
|
||||
echo -n "},"
|
||||
separator $bg_bar_color $bg
|
||||
}
|
||||
|
||||
systemupdate() {
|
||||
local nb=$(checkupdates | wc -l)
|
||||
if (( $nb > 0)); then
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_systemupdate\","
|
||||
echo -n "\"full_text\":\" ${nb}\""
|
||||
echo -n "}"
|
||||
fi
|
||||
}
|
||||
|
||||
logout() {
|
||||
echo -n ",{"
|
||||
echo -n "\"name\":\"id_logout\","
|
||||
echo -n "\"full_text\":\" \""
|
||||
echo -n "}"
|
||||
}
|
||||
|
||||
# https://github.com/i3/i3/blob/next/contrib/trivial-bar-script.sh
|
||||
echo '{ "version": 1, "click_events":true }' # Send the header so that i3bar knows we want to use JSON:
|
||||
echo '[' # Begin the endless array.
|
||||
echo '[]' # We send an empty first array of blocks to make the loop simpler:
|
||||
|
||||
# Now send blocks with information forever:
|
||||
(while :;
|
||||
do
|
||||
echo -n ",["
|
||||
root_text
|
||||
root_usage
|
||||
home_text
|
||||
home_usage
|
||||
boot_text
|
||||
boot_usage
|
||||
src_text
|
||||
src_usage
|
||||
seclists_text
|
||||
seclists_usage
|
||||
memory_text
|
||||
memory
|
||||
cpu_text
|
||||
cpu_usage
|
||||
mydate
|
||||
bat_text
|
||||
battery0
|
||||
volume
|
||||
logout
|
||||
echo "]"
|
||||
sleep 1
|
||||
done) &
|
||||
|
||||
# click events
|
||||
while read line;
|
||||
do
|
||||
# echo $line > /home/you/gitclones/github/i3/tmp.txt
|
||||
# {"name":"id_vpn","button":1,"modifiers":["Mod2"],"x":2982,"y":9,"relative_x":67,"relative_y":9,"width":95,"height":22}
|
||||
|
||||
# CPU
|
||||
if [[ $line == *"name"*"id_cpu_usage"* ]]; then
|
||||
wezterm --config-file /home/pierre/.config/i3status/wezterm_htop.lua -e --class term_date htop &
|
||||
|
||||
# TIME
|
||||
elif [[ $line == *"name"*"id_time"* ]]; then
|
||||
wezterm --config-file /home/pierre/.config/i3status/wezterm_date.lua -e --position screen:1582,21 --class term_date /home/pierre/.config/i3status/click_time.sh &
|
||||
|
||||
# VOLUME
|
||||
elif [[ $line == *"name"*"id_volume"* ]]; then
|
||||
wezterm -e --class term_date -e pulsemixer &
|
||||
|
||||
# LOGOUT
|
||||
elif [[ $line == *"name"*"id_logout"* ]]; then
|
||||
i3-nagbar -t warning -m 'Log out ?' -b 'yes' 'i3-msg exit' > /dev/null &
|
||||
fi
|
||||
done
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
-- Pull in the wezterm API
|
||||
local wezterm = require 'wezterm'
|
||||
|
||||
-- This will hold the configuration.
|
||||
local config = wezterm.config_builder()
|
||||
|
||||
config.enable_tab_bar= false
|
||||
config.window_background_opacity = 0.8
|
||||
|
||||
-- For example, changing the initial geometry for new windows:
|
||||
config.initial_cols = 40
|
||||
config.initial_rows = 18
|
||||
config.color_scheme_dirs = { '~/.config/iTerm2-Color-Schemes' }
|
||||
|
||||
-- or, changing the font size and color scheme.
|
||||
config.font_size = 10
|
||||
config.color_scheme = 'Ollie'
|
||||
|
||||
-- Finally, return the configuration to wezterm:
|
||||
return config
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
-- Pull in the wezterm API
|
||||
local wezterm = require 'wezterm'
|
||||
|
||||
-- This will hold the configuration.
|
||||
local config = wezterm.config_builder()
|
||||
|
||||
config.enable_tab_bar= false
|
||||
config.window_background_opacity = 0.8
|
||||
|
||||
-- For example, changing the initial geometry for new windows:
|
||||
config.initial_cols = 150
|
||||
config.initial_rows = 40
|
||||
config.color_scheme_dirs = { '~/.config/iTerm2-Color-Schemes' }
|
||||
|
||||
-- or, changing the font size and color scheme.
|
||||
config.font_size = 10
|
||||
config.color_scheme = 'Ollie'
|
||||
|
||||
-- Finally, return the configuration to wezterm:
|
||||
return config
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
-- Pull in the wezterm API
|
||||
local wezterm = require 'wezterm'
|
||||
|
||||
-- This will hold the configuration.
|
||||
local config = wezterm.config_builder()
|
||||
|
||||
config.enable_tab_bar= false
|
||||
config.scrollback_lines = 3500
|
||||
config.default_cursor_style = 'BlinkingUnderline'
|
||||
config.window_background_opacity = 0.8
|
||||
config.window_padding = {
|
||||
left = 2,
|
||||
right = 2,
|
||||
top = 0,
|
||||
bottom = 0,
|
||||
}
|
||||
|
||||
-- For example, changing the initial geometry for new windows:
|
||||
--config.initial_cols = 45
|
||||
--config.initial_rows = 24
|
||||
config.enable_scroll_bar = true
|
||||
config.color_scheme_dirs = { '~/.config/iTerm2-Color-Schemes' }
|
||||
|
||||
-- or, changing the font size and color scheme.
|
||||
config.font_size = 10
|
||||
config.color_scheme = 'Ollie'
|
||||
|
||||
-- Finally, return the configuration to wezterm:
|
||||
return config
|
||||
Loading…
Reference in New Issue
Block a user