aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Dailly <sebastien@chimrod.com>2021-10-24 21:55:02 +0200
committerSébastien Dailly <sebastien@chimrod.com>2021-10-24 21:55:02 +0200
commit4e1bd1e207f96ec705152e7284fcaceb135182a8 (patch)
tree38106b47bf1bc0a1a12d879bc67a513238d32a92
parent6a4662677712caf3a511fac4aa4e0afaf98947d0 (diff)
Bspwm configuration
-rwxr-xr-xbspwm/.config/bspwm/bspwmrc38
-rwxr-xr-xbspwm/scripts/bspwm/border_colors.sh19
-rwxr-xr-xbspwm/scripts/bspwm/desktops.sh38
-rwxr-xr-xbspwm/scripts/bspwm/wallpaper.sh46
-rw-r--r--polybar/.config/polybar/bspwm.ini73
-rw-r--r--polybar/.config/polybar/config140
-rw-r--r--polybar/.config/polybar/i3.ini86
-rw-r--r--polybar/.config/polybar/mpd22
-rwxr-xr-xpolybar/scripts/polybar/cal.sh15
-rw-r--r--sxhkd/.config/sxhkd/sxhkdrc164
-rwxr-xr-xsxhkd/scripts/sxhkd/move.sh4
-rwxr-xr-xsxhkd/scripts/sxhkd/rofi_new.sh7
-rwxr-xr-xsxhkd/scripts/sxhkd/rofi_rename.sh9
-rwxr-xr-xsxhkd/scripts/sxhkd/rofi_resize.sh18
-rwxr-xr-xsxhkd/scripts/sxhkd/rofi_rotate.sh21
-rwxr-xr-xsxhkd/scripts/sxhkd/show.sh3
16 files changed, 565 insertions, 138 deletions
diff --git a/bspwm/.config/bspwm/bspwmrc b/bspwm/.config/bspwm/bspwmrc
new file mode 100755
index 0000000..c6bbbfe
--- /dev/null
+++ b/bspwm/.config/bspwm/bspwmrc
@@ -0,0 +1,38 @@
+#! /bin/bash
+
+run () {
+ pgrep -f "$*" && echo "$1 already running" || $* &
+}
+
+xrdb -merge .Xdefaults
+xsetroot -cursor_name left_ptr
+
+run sxhkd
+run polybar bspwm
+run ~/scripts/bspwm/desktops.sh
+run ~/scripts/bspwm/border_colors.sh
+~/scripts/bspwm/wallpaper.sh
+
+#compton -i .8 --focus-exclude '_NET_WM_NAME@:s = "rofi"' --blur-background --blur-kern '3,3,0.1,1,1,1,1,1,1,1' &
+
+# Create at least a desktop named "1" and add all the other existing desktop
+bspc monitor -d $(cat <(echo 1) <(bspc query --names -D) | sort -u -V | tr -s '\n' ' ')
+
+bspc config border_width 2
+bspc config window_gap 12
+
+bspc config split_ratio 0.52
+bspc config borderless_monocle true
+bspc config gapless_monocle true
+bspc config single_monocle true
+
+bspc config focus_follows_pointer true
+
+#bspc rule -a Gimp desktop='^8' state=floating follow=on
+#bspc rule -a Screenkey manage=off
+#bspc rule -a Thunderbird desktop='Mail'
+#bspc rule -a 'Firefox-esr' desktop='Web'
+#bspc rule -a Gmpc desktop='Musique'
+
+bspc rule -r "*"
+bspc rule -a "QtPass:qtpass" sticky=on state=floating
diff --git a/bspwm/scripts/bspwm/border_colors.sh b/bspwm/scripts/bspwm/border_colors.sh
new file mode 100755
index 0000000..dc03a3f
--- /dev/null
+++ b/bspwm/scripts/bspwm/border_colors.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+: "${MARKED_NORMAL_BCOLOR:=0x0000ff}"
+: "${MARKED_ACTIVE_BCOLOR:=0x00ff00}"
+: "${MARKED_FOCUSED_BCOLOR:=0xff0000}"
+
+while bspc subscribe -c 1 node_focus node_flag > /dev/null; do
+ bspc config focused_border_color "$(bspc config focused_border_color)"
+
+ bspc query -N -n '.marked.!focused.window' | while read -r wid; do
+ chwb -c "$MARKED_NORMAL_BCOLOR" "$wid"
+ done
+ bspc query -N -n '.marked.active.!focused.window' | while read -r wid; do
+ chwb -c "$MARKED_ACTIVE_BCOLOR" "$wid"
+ done
+ bspc query -N -n "focused.marked" | while read -r wid; do
+ chwb -c "$MARKED_FOCUSED_BCOLOR" "$wid"
+ done
+done
diff --git a/bspwm/scripts/bspwm/desktops.sh b/bspwm/scripts/bspwm/desktops.sh
new file mode 100755
index 0000000..d073bb8
--- /dev/null
+++ b/bspwm/scripts/bspwm/desktops.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+bspc subscribe desktop | while read -r event monitor_id desktop_id name; do
+ case $event in
+ desktop_focus)
+ ~/scripts/bspwm/wallpaper.sh &
+ for desktop in $(bspc query -D); do
+ test "x${desktop}" = "x${desktop_id}" && continue
+
+ nodes=$(bspc query -d ${desktop} -N)
+ # If the desktop is empty, delete it
+ test -z "${nodes}" && bspc desktop ${desktop} -r
+ done
+ ;;
+ desktop_add)
+ bspc monitor -o $(bspc query --names -D| sort -V | tr -s '\n' ' ')
+ case $name in
+ Musique)
+ bspc node @$name:/ -i
+ bspc rule --add Gmpc -o node=@$name:/
+ gmpc &
+ ;;
+ Web)
+ bspc node @$name:/ -i
+ bspc rule --add Firefox-esr -o node=@$name:/
+ firefox &
+ ;;
+ Mail)
+ bspc node @$name:/ -i
+ bspc rule --add thunderbird -o node=@$name:/
+ thunderbird &
+ ;;
+ esac
+ ;;
+ desktop_rename)
+ bspc monitor -o $(bspc query --names -D| sort -V | tr -s '\n' ' ')
+ ;;
+ esac
+done
diff --git a/bspwm/scripts/bspwm/wallpaper.sh b/bspwm/scripts/bspwm/wallpaper.sh
new file mode 100755
index 0000000..552da76
--- /dev/null
+++ b/bspwm/scripts/bspwm/wallpaper.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+#image=$(find ~/wallpaper/wallpaper/wallpapers -type f \( -name '*.jpg' -o -name '*.png' \) -print0 | shuf -n1 -z | xargs -0)
+image=$1
+
+#height=$(identify -format '%[fx:h/1.11]' ${image})
+#convert -crop %100x10+0+${height} ${image} out.jpg
+#color=$(.virtualenvs/pywal/bin/colorz -n 1 --no-preview out.jpg | cut -d' ' -f1)
+#rm out.jpg
+#echo $color
+#neg=$(python ~/scripts/i3/negate_color.py "${color}")
+
+#.virtualenvs/pywal/bin/wal -n -i "${image}" --saturate .8 -a 90
+#hsetroot \
+# -fill "${image}" \
+# -add "#ffffffff" \
+# -addd "#77777700" 5 \
+# -addd "#ffffff00" 10 \
+# -addd "#ffffff00" 90 \
+# -gradient 0
+
+if [ -z "${VNCDESKTOP}" ]; then
+ hsetroot \
+ -fill "${image}" \
+ -add "#ffffff77" \
+ -addd "#ffffff77" 2 \
+ -addd "#ffffff00" 0 \
+ -addd "#ffffff00" 90 \
+ -gradient 0
+else
+ #dominant=$(hexdump -n 3 -e '"%06X" 1 "\n"' /dev/urandom)
+
+ # Traverse the chromatic circle in 5 hours
+ cutoff=18000
+ background="#eceff4"
+
+ dominant=$(python3 -c "import colorsys ; import datetime ; now = datetime.datetime.now() ; min = datetime.datetime.min ; sec = (now - min).seconds % $cutoff ; print(''.join('%02x' % int(i*255) for i in colorsys.hsv_to_rgb(sec/$cutoff, 0.35, 1)))")
+ hsetroot \
+ -solid "#${dominant}" \
+ -add "${background}" \
+ -addd "${background}" 5 \
+ -addd "#ffffff77" 40 \
+ -addd "#ffffff77" 90 \
+ -addd "#F0F0F0FF" 40 \
+ -addd "#F0F0F0" 5 \
+ -gradient 0
+fi
diff --git a/polybar/.config/polybar/bspwm.ini b/polybar/.config/polybar/bspwm.ini
new file mode 100644
index 0000000..0e7d1dd
--- /dev/null
+++ b/polybar/.config/polybar/bspwm.ini
@@ -0,0 +1,73 @@
+[bar/bspwm]
+width = 100%
+height = 25
+offset-y = 0
+
+; Prefer fixed center position for the `modules-center` block
+; When false, the center position will be based on the size of the other blocks.
+; fixed-center = true
+
+background = ${colors.background}
+foreground = ${colors.foreground}
+
+overline-size = 0
+overline-color = #f00
+underline-size = 1
+underline-color = #00f
+
+border-bottom-size = 1
+border-bottom-color = #d8dee9
+
+spacing = 1
+padding-left = 0
+padding-right = 0
+module-margin-left = 1
+module-margin-right = 1
+
+font-0 = Dejavu Sans Mono:size=12
+font-1 = materialdesignicons:size=16
+
+modules-left = bspwm
+#modules-center =
+#modules-right = mopidy date
+modules-right = date
+
+tray-position = right
+tray-padding = 2
+
+scroll-up = "#bspwm.prev"
+scroll-down = "#bspwm.next"
+
+[module/bspwm]
+label = %name%
+padding = 2
+#label-active-font = 0
+type = internal/bspwm
+enable-scroll = false
+
+label-focused = ${self.label}
+label-focused-padding = ${self.padding}
+label-focused-foreground = ${colors.foreground-alt}
+label-focused-background = ${colors.background-emph}
+
+label-occupied = ${self.label}
+label-occupied-background = ${colors.background-alt}
+label-occupied-foreground = ${colors.foreground}
+label-occupied-padding = ${self.padding}
+
+label-urgent = ${self.label}
+label-urgent-background = ${colors.alert}
+label-urgent-foreground = ${colors.foreground-alt}
+label-urgent-padding = ${self.padding}
+
+label-visible = ${self.label}
+label-visible-background = ${self.label-focused-background}
+label-visible-padding = ${self.padding}
+
+#strip-wsnumbers = true
+#fuzzy-match = true
+
+; Separator in between workspaces
+; label-separator = |
+; label-separator-padding = 2
+; label-separator-foreground = #ffb52a
diff --git a/polybar/.config/polybar/config b/polybar/.config/polybar/config
index 43f70d5..b709ba0 100644
--- a/polybar/.config/polybar/config
+++ b/polybar/.config/polybar/config
@@ -8,142 +8,36 @@
;=====================================================
include-file = ~/.config/polybar/tengwar_icons.ini
+include-file = ~/.config/polybar/mpd
+include-file = ~/.config/polybar/i3.ini
+include-file = ~/.config/polybar/bspwm.ini
[colors]
#pseudo-transparency = true
-#background = #fffffff
-#background-alt = #fffffff
-background = #d8dee9
-background-alt = #d8dee9
-foreground = ${xrdb:color7}
-#foreground-alt = ${xrdb:color3}
-foreground-alt = #4A3131
+; Used in the whole bar background
+background = #2e3440
+
+; Alternative background used in the workspaces
+#background-alt = #4c566a
+background-alt = ${background}
+background-emph = #434c5e
+
+; Color useed in the default text
+foreground = #d8dee9
+foreground-alt = #e5e9f0
+
primary = #ffb52a
secondary = #e60053
-alert = ${xrdb:color1}
+alert = ${xrdb:color9}
[global/wm]
#margin-top = 0
margin-bottom = 0
-[bar/i3]
-width = 100%
-height = 30
-offset-y = 0
-
-; Prefer fixed center position for the `modules-center` block
-; When false, the center position will be based on the size of the other blocks.
-fixed-center = true
-
-background = ${colors.background}
-foreground = ${colors.foreground-alt}
-
-overline-size = 2
-overline-color = #f00
-underline-size = 2
-underline-color = #00f
-
-border-bottom-size = 0
-border-bottom-color = #333
-
-spacing = 1
-padding-left = 0
-padding-right = 2
-module-margin-left = 1
-module-margin-right = 2
-
-font-0 = Dejavu Sans Mono:size=12
-font-1 = materialdesignicons:size=16
-
-#modules-left = i3
-modules-center = i3
-modules-right = date
-
-tray-position = right
-tray-padding = 2
-;tray-transparent = true
-;tray-background = #0063ff
-
-;wm-restack = bspwm
-;wm-restack = i3
-
-;override-redirect = true
-
-scroll-up = "#i3.prev"
-scroll-down = "#i3.next"
-
-[module/xwindow]
-type = internal/xwindow
-label = %title:0:60:...%
-
-[module/bspwm]
-type = internal/bspwm
-ws-icon-default = x
-
-label-focused = %index%
-label-focused-underline= ${colors.primary}
-label-focused-padding = 2
-
-label-occupied = %index%
-label-occupied-padding = 2
-
-label-urgent = %index%!
-label-urgent-background = ${colors.alert}
-label-urgent-padding = 2
-
-label-empty = %index%
-label-empty-foreground = ${colors.foreground-alt}
-label-empty-padding = 2
-
-[module/i3]
-label = %icon%%name%
-label-active-font = 0
-type = internal/i3
-index-sort = false
-wrapping-scroll = false
-
-label-mode = %mode%
-label-mode-padding = 2
-#label-mode-foreground = #000000
-#label-mode-background = ${colors.primary}
-
-#border-size = 1
-#border-colol = #000
-
-label-focused = ${self.label}
-label-focused-background = ${colors.foreground-alt}
-label-focused-padding = ${module/bspwm.label-focused-padding}
-label-focused-foreground = ${colors.foreground}
-
-label-unfocused = ${self.label}
-label-unfocused-padding = ${module/bspwm.label-occupied-padding}
-label-unfocused-background = ${colors.background-alt}
-label-unfocused-foreground = ${colors.foreground-alt}
-
-label-urgent = ${self.label}
-label-urgent-background = ${colors.background}
-label-urgent-foreground = ${module/bspwm.label-urgent-background}
-label-urgent-underline = ${module/bspwm.label-urgent-background}
-label-urgent-padding = ${module/bspwm.label-urgent-padding}
-
-label-visible = ${self.label}
-label-visible-background = ${self.label-focused-background}
-#label-visible-underline = ${self.label-focused-underline}
-label-visible-padding = ${self.label-focused-padding}
-
-strip-wsnumbers = true
-fuzzy-match = true
-
-
-; Separator in between workspaces
-#label-separator = " "
-#label-separator-padding = 0
-#label-separator-foreground = #ffb52a
-
[module/date]
type = custom/script
exec = ~/scripts/polybar/date.sh
tail = true
-click-left = ~/scripts/polybar/cal.sh
+click-left = gsimplecal
#click-left = kill -USR1 %pid%
format-prefix = " "
diff --git a/polybar/.config/polybar/i3.ini b/polybar/.config/polybar/i3.ini
new file mode 100644
index 0000000..890b460
--- /dev/null
+++ b/polybar/.config/polybar/i3.ini
@@ -0,0 +1,86 @@
+[bar/i3]
+width = 100%
+height = 25
+offset-y = 0
+
+; Prefer fixed center position for the `modules-center` block
+; When false, the center position will be based on the size of the other blocks.
+; fixed-center = true
+
+background = ${colors.background}
+foreground = ${colors.foreground}
+
+overline-size = 2
+overline-color = #f00
+underline-size = 2
+underline-color = #00f
+
+border-bottom-size = 0
+border-bottom-color = #333
+
+spacing = 0
+padding-left = 0
+padding-right = 0
+module-margin-left = 1
+module-margin-right = 1
+
+font-0 = Dejavu Sans Mono:size=12
+font-1 = materialdesignicons:size=16
+
+modules-left = i3
+#modules-center =
+modules-right = mopidy date
+
+tray-position = right
+tray-padding = 2
+;tray-transparent = true
+;tray-background = #0063ff
+
+;wm-restack = bspwm
+;wm-restack = i3
+
+;override-redirect = true
+
+scroll-up = "#i3.prev"
+scroll-down = "#i3.next"
+
+[module/i3]
+label = %icon%%name%
+padding = 2
+label-active-font = 0
+type = internal/i3
+index-sort = false
+wrapping-scroll = false
+
+label-mode = %mode%
+label-mode-padding = 2
+#label-mode-foreground = #000000
+#label-mode-background = ${colors.primary}
+
+label-focused = ${self.label}
+label-focused-background = ${colors.background-emph}
+label-focused-padding = ${self.padding}
+label-focused-foreground = ${colors.foreground-alt}
+
+label-unfocused = ${self.label}
+label-unfocused-padding = ${self.padding}
+label-unfocused-background = ${colors.background-alt}
+label-unfocused-foreground = ${colors.foreground}
+
+label-urgent = ${self.label}
+label-urgent-background = ${colors.alert}
+label-urgent-foreground = ${colors.foreground-alt}
+label-urgent-padding = ${self.padding}
+
+label-visible = ${self.label}
+label-visible-background = ${self.label-focused-background}
+label-visible-padding = ${self.padding}
+
+strip-wsnumbers = true
+fuzzy-match = true
+
+; Separator in between workspaces
+#label-separator = "x"
+#label-separator-padding = 1
+#label-separator-foreground = #ffb52a
+
diff --git a/polybar/.config/polybar/mpd b/polybar/.config/polybar/mpd
new file mode 100644
index 0000000..4ee0087
--- /dev/null
+++ b/polybar/.config/polybar/mpd
@@ -0,0 +1,22 @@
+[module/mopidy]
+type = internal/mpd
+
+host = 127.0.0.1
+port = 6600
+
+; Seconds to sleep between progressbar/song timer sync
+; Default: 1
+interval = 5
+
+#format-playing = <icon-stop> <toggle> %{F#a3be8c}%{F-} <label-song>
+format-playing = <icon-stop> <toggle> %{F#a3be8c}%{F-}
+format-paused = <icon-stop> <toggle>
+format-stopped = <toggle>
+
+label-song = %artist% - %title%
+# label-song-background = ${colors.background-alt}
+
+; Only applies if <icon-X> is used
+icon-play = 
+icon-stop = 
+icon-pause = 
diff --git a/polybar/scripts/polybar/cal.sh b/polybar/scripts/polybar/cal.sh
deleted file mode 100755
index a69d088..0000000
--- a/polybar/scripts/polybar/cal.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-# Add a fake tty to get the day highlight
-# https://stackoverflow.com/a/32981392
-faketty () {
- script -qfec "$(printf "%q " "$@")"
-}
-
-# Get the max line width
-width=$(ncal -3 | wc -L)
-
-cal=$(faketty ncal -3 \
- | sed 's|_\(.\)|<span background="white" foreground="black">\1</span>|g' \
- | sed 's|\s*$||')
-rofi -font "mono 9" -markup -width -"${width}" -lines 8 -location 3 -e "${cal}"
diff --git a/sxhkd/.config/sxhkd/sxhkdrc b/sxhkd/.config/sxhkd/sxhkdrc
new file mode 100644
index 0000000..2276c2d
--- /dev/null
+++ b/sxhkd/.config/sxhkd/sxhkdrc
@@ -0,0 +1,164 @@
+#
+# wm independent hotkeys
+#
+
+# terminal emulator
+super + Return
+ urxvtcd
+
+# program launcher
+super + i
+ rofi -show run
+
+#super + @space
+# dmenu_run
+
+# make sxhkd reload its configuration files:
+super + Escape
+ pkill -USR1 -x sxhkd
+
+#
+# bspwm hotkeys
+#
+
+# quit/restart bspwm
+super + alt + {q,r}
+ bspc {quit,wm -r}
+
+# close and kill
+#super + {_,shift + }w
+# bspc node -{c,k}
+super + {_,shift + }q
+ bspc node -{c,k}
+
+XF86HomePage
+ bspc query -N -d Web || firefox & bspc desktop -f Web
+
+XF86Mail
+ bspc query -N -d Mail || thunderbird & bspc desktop -f Mail
+
+XF86Calculator
+ bspc query -N -d Musique || gmpc & bspc desktop -f Musique
+
+# alternate between the tiled and monocle layout
+super + f
+ bspc desktop -l next
+
+# send the newest marked node to the newest preselected node
+super + y
+ bspc node newest.marked.local -n newest.!automatic.local
+
+# swap the current node and the biggest node
+super + g
+ bspc node -s biggest
+
+#
+# state/flags
+#
+
+## set the window state
+#super + {t,shift + t,s,f}
+# bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
+
+# set the node flags
+super + ctrl + {m,x,y,z}
+ bspc node -g {marked,locked,sticky,private}
+
+#
+# focus/swap
+#
+
+# focus the node in the given direction
+super + {_,shift + }{h,j,k,l}
+ bspc node -{f,s} {west,south,north,east}
+
+# focus the node for the given path jump
+super + {p,b,comma,period}
+ bspc node -f @{parent,brother,first,second}
+
+# focus the next/previous node in the current desktop
+super + {_,shift + }c
+ bspc node -f {next,prev}.local
+
+# focus the next/previous desktop in the current monitor
+super + bracket{left,right}
+ bspc desktop -f {prev,next}.local
+
+# focus the last node/desktop
+super + {grave,Tab}
+ bspc {node,desktop} -f last
+
+# focus the older or newer node in the focus history
+super + {o,i}
+ bspc wm -h off; \
+ bspc node {older,newer} -f; \
+ bspc wm -h on
+
+# focus or send to the given desktop
+#super + {_,shift + }{1-9,0}
+# bspc {desktop -f,node -d} '^{1-9,10}'
+
+#
+# preselect
+#
+
+# preselect the direction
+super + ctrl + {h,j,k,l}
+ bspc node -p {west,south,north,east}
+
+# preselect the ratio
+super + ctrl + {1-9}
+ bspc node -o 0.{1-9}
+
+# cancel the preselection for the focused node
+super + ctrl + space
+ bspc node -p cancel
+
+# cancel the preselection for the focused desktop
+super + ctrl + shift + space
+ bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
+
+super + r
+ rofi -modi "Reorganiser:~/scripts/sxhkd/rofi_resize.sh,Rotation:~/scripts/sxhkd/rofi_rotate.sh" -show Rotation
+
+#
+# move/resize
+#
+
+# expand a window by moving one of its side outward
+super + shift + {Left,Down,Up,Right}
+ bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
+
+# contract a window by moving one of its side inward
+super + alt + shift + {h,j,k,l}
+ bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
+
+# move a floating window
+#super + {Left,Down,Up,Right}
+# bspc node -v {-20 0,0 20,0 -20,20 0}
+#
+
+super + {Up,Down,Left,Right}
+ bspc node {north,south,west,east} -f
+
+mod5 + Escape
+ ~/scripts/sxhkd/show.sh older
+
+shift + mod5 + Escape
+ ~/scripts/sxhkd/move.sh older
+
+mod5 + {_,shift + } F{1-5}
+ {~/scripts/sxhkd/show.sh, ~/scripts/sxhkd/move.sh} {1-5}
+
+super + n
+ rofi -modi "Desktop:~/scripts/sxhkd/rofi_new.sh,Renommer:~/scripts/sxhkd/rofi_rename.sh" -show Desktop
+
+super + a
+ bspc node @parent -f
+
+super + m
+ test -z $(bspc query -N -n any.marked) && bspc node -g marked; \
+ bspc node --swap any.marked --follow && bspc node any.marked -g marked=off
+
+super + button{4,5}
+ bspc desktop -f {prev,next}.local
diff --git a/sxhkd/scripts/sxhkd/move.sh b/sxhkd/scripts/sxhkd/move.sh
new file mode 100755
index 0000000..2f0d5f1
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/move.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+bspc query -D $1 || bspc monitor -a $1
+bspc node --to-desktop $1
+
diff --git a/sxhkd/scripts/sxhkd/rofi_new.sh b/sxhkd/scripts/sxhkd/rofi_new.sh
new file mode 100755
index 0000000..4e28454
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/rofi_new.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+if [ -z $1 ]; then
+ cat <(echo -e "Web\nMail\nMusique") <(bspc query --names -D) | sort -u
+else
+ ~/scripts/sxhkd/show.sh $1
+fi
+
diff --git a/sxhkd/scripts/sxhkd/rofi_rename.sh b/sxhkd/scripts/sxhkd/rofi_rename.sh
new file mode 100755
index 0000000..d2bb04d
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/rofi_rename.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+if [ -z $1 ]; then
+ echo "Edit"
+ echo "Musique"
+ exit 0
+else
+ bspc desktop -n ${1}
+ exit 1
+fi
diff --git a/sxhkd/scripts/sxhkd/rofi_resize.sh b/sxhkd/scripts/sxhkd/rofi_resize.sh
new file mode 100755
index 0000000..dfb9679
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/rofi_resize.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+if [ -z $1 ]; then
+ echo "10"
+ echo "20"
+ echo "30"
+ echo "40"
+ echo "50"
+ echo "52"
+ echo "60"
+ echo "70"
+ echo "80"
+ echo "90"
+ exit 0
+else
+ bspc node @parent --ratio .${1}
+ exit 1
+fi
+
diff --git a/sxhkd/scripts/sxhkd/rofi_rotate.sh b/sxhkd/scripts/sxhkd/rofi_rotate.sh
new file mode 100755
index 0000000..6438f2a
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/rofi_rotate.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+if [ -z $1 ]; then
+ echo "Horaire"
+ echo "Antihoraire"
+ echo "Flip"
+ exit 0
+else
+ case $1 in
+ Horaire)
+ bspc node @parent --rotate 90
+ ;;
+ Antihoraire)
+ bspc node @parent --rotate 270
+ ;;
+ Flip)
+ bspc node @parent --rotate 180
+ ;;
+ esac
+ exit 1
+fi
+
diff --git a/sxhkd/scripts/sxhkd/show.sh b/sxhkd/scripts/sxhkd/show.sh
new file mode 100755
index 0000000..4f83617
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/show.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+bspc query -D --names | grep -q "$1" || bspc monitor -a "$1"
+bspc desktop -f "$1"