aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Dailly <sebastien@dailly.me>2023-10-01 20:05:37 +0200
committerSébastien Dailly <sebastien@dailly.me>2023-10-01 20:05:37 +0200
commit05aea491fec4dd9a68ca90150543e03a32bf6985 (patch)
treedb2a710f0b703def82fd59e3cabc94942aa1e522
parent18d0291fb3b51797efd67389687b97122d710c89 (diff)
Update the bspwm scripts. Added a theme for rofi
-rwxr-xr-xbspwm/.config/bspwm/bspwmrc1
-rwxr-xr-xbspwm/scripts/bspwm/desktops.sh3
-rwxr-xr-xbspwm/scripts/bspwm/macropad.sh44
-rw-r--r--rofi/.config/rofi/arthur.rasi181
-rw-r--r--rofi/.config/rofi/config.rasi151
-rw-r--r--rofi/.config/rofi/theme.rasi171
-rw-r--r--sxhkd/.config/sxhkd/sxhkdrc2
-rwxr-xr-xsxhkd/scripts/sxhkd/macropad_layer.sh12
-rwxr-xr-xsxhkd/scripts/sxhkd/rofi_new.sh7
-rwxr-xr-xsxhkd/scripts/sxhkd/rofi_rotate.sh2
10 files changed, 525 insertions, 49 deletions
diff --git a/bspwm/.config/bspwm/bspwmrc b/bspwm/.config/bspwm/bspwmrc
index af3ef6c..88add64 100755
--- a/bspwm/.config/bspwm/bspwmrc
+++ b/bspwm/.config/bspwm/bspwmrc
@@ -12,7 +12,6 @@ run polybar bspwm
run ~/scripts/bspwm/desktops.sh
run ~/scripts/bspwm/border_colors.sh
run ~/scripts/bspwm/wallpaper.sh
-run ~/scripts/bspwm/macropad.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' &
diff --git a/bspwm/scripts/bspwm/desktops.sh b/bspwm/scripts/bspwm/desktops.sh
index 27b285f..d63b0aa 100755
--- a/bspwm/scripts/bspwm/desktops.sh
+++ b/bspwm/scripts/bspwm/desktops.sh
@@ -1,5 +1,8 @@
#!/bin/sh
+set -u
+#set -e
+
# Execute an application when creating the desktop
#
run_desktop() {
diff --git a/bspwm/scripts/bspwm/macropad.sh b/bspwm/scripts/bspwm/macropad.sh
deleted file mode 100755
index dabdaa0..0000000
--- a/bspwm/scripts/bspwm/macropad.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-
-# This script listen the events from BSPWM and report to the macropad the
-# layout to use.
-
-# The script only listen the for the changes in the selected window, and send
-# to the macropad the appropriate layout depending of the class.
-
-# The function send the code over the socket — this works fine when I use the
-# VNC connection over SSH, as long as a reverse proxy is used.
-# Use for example this configuration in the ssh/config file to open the socket :
-# RemoteForward 9999 localhost:9999
-#
-
-last_call=
-
-send_layout() {
- if [ "$last_call" != "$1" ]; then
- echo $1
- last_call="$1"
- echo $1 | socat - TCP4:localhost:9999
- fi
-}
-
-bspc subscribe node | while read -r event monitor_id desktop_id name;
-do
- case $event in
- node_focus)
- # Read the class for the selected window
- class=$(xprop -id $(bspc query --nodes -d -n focused) | grep ^WM_CLASS | cut -d= -f2)
- case "$class" in
- *"Firefox-esr"*)
- send_layout "Firefox"
- ;;
- *"Qqsp"*)
- send_layout "Num pad"
- ;;
- *)
- # Do not match
- #echo $class;
- ;;
- esac;
- esac;
-done
diff --git a/rofi/.config/rofi/arthur.rasi b/rofi/.config/rofi/arthur.rasi
new file mode 100644
index 0000000..4f4960e
--- /dev/null
+++ b/rofi/.config/rofi/arthur.rasi
@@ -0,0 +1,181 @@
+/**
+ * ROFI Color theme
+ * User: Qball
+ * Copyright: Dave Davenport
+ */
+
+* {
+ background: #2e3440;
+ foreground: #ffeedd;
+ backlight: #ccffeedd;
+ background-color: transparent;
+ dark: #1c1c1c;
+ // Black
+ black: #3d352a;
+ lightblack: #554444;
+ tlightblack: #554444cc;
+ //
+ // Red
+ red: #cd5c5c;
+ lightred: #cc5533;
+ //
+ // Green
+ green: #86af80;
+ lightgreen: #88cc22;
+ //
+ // Yellow
+ yellow: #e8ae5b;
+ lightyellow: #ffa75d;
+ //
+ // Blue
+ blue: #6495ed;
+ lightblue: #87ceeb;
+ //
+ // Magenta
+ magenta: #deb887;
+ lightmagenta: #996600;
+ //
+ // Cyan
+ cyan: #b0c4de;
+ tcyan: #ccb0c4de;
+ lightcyan: #b0c4de;
+ //
+ // White
+ white: #bbaa99;
+ lightwhite: #ddccbb;
+ //
+ // Bold, Italic, Underline
+ highlight: underline bold #ffffff;
+
+ transparent: rgba(0,0,0,0);
+ font: "Mono 10";
+}
+window {
+ location: center;
+ anchor: center;
+ transparency: "screenshot";
+ //padding: 0;
+ //border: 0px;
+ //border-radius: 0px;
+ color: @magenta;
+ background-color: @transparent;
+ spacing: 0px;
+ children: [mode-switcher, mainbox ];
+ orientation: horizontal;
+}
+mainbox {
+ spacing: 0;
+ children: [ inputbar, message, listview ];
+}
+message {
+ border-color: @foreground;
+ border: 2px 2px 2px 2px;
+ border-radius: 10px;
+ padding: 5;
+ background-color: @tcyan;
+}
+message {
+ font: "Source Code Pro 8";
+ color: @black;
+}
+inputbar {
+ color: @lightwhite;
+ padding: 11px;
+ background-color: @background;
+ border: 2px 2px 0px 0px;
+ border-radius: 0px 15px 0px 0px;
+ border-color: @foreground;
+}
+entry,prompt,case-indicator {
+ text-font: inherit;
+ text-color:inherit;
+}
+prompt {
+ margin: 0px 0.3em 0em 0em ;
+}
+listview {
+ padding: 8px;
+ border-color: @foreground;
+ border: 0px 2px 2px 0px;
+ background-color: @background;
+ dynamic: false;
+ lines: 10;
+ border-radius: 0px 0px 15px 0px;
+}
+element {
+ padding: 3px;
+ vertical-align: 0.5;
+// border: 2px;
+ border-radius: 4px;
+ background-color: transparent;
+ color: @foreground;
+ font:inherit;
+}
+element-text {
+ background-color: inherit;
+ text-color: inherit;
+}
+element selected.normal {
+ background-color: @blue;
+}
+element normal active {
+ foreground: @lightblue;
+}
+element normal urgent {
+ foreground: @lightred;
+}
+element alternate normal {
+}
+element alternate active {
+ foreground: @lightblue;
+}
+element alternate urgent {
+ foreground: @lightred;
+}
+element selected active {
+ background-color: @lightblue;
+ foreground: @dark;
+}
+element selected urgent {
+ background-color: @lightred;
+ foreground: @dark;
+}
+element normal normal {
+
+}
+vertb {
+ expand: false;
+ children: [ dummy0, mode-switcher, dummy1 ];
+}
+dummy0, dummy1 {
+ expand: true;
+}
+mode-switcher {
+ expand: false;
+ orientation: vertical;
+ spacing: 0px;
+ border: 2px 2px 2px 2px;
+ border-radius: 50px 0px 0px 50px;
+ border-color: @foreground;
+ background-color: black;
+ width: 10ch;
+}
+button {
+ background-color: @background;
+ color: @white;
+ horizontal-align: 0.5;
+}
+button selected normal {
+ padding:6px;
+ color: @foreground;
+ //border: 1px 1px 1px 1px;
+ background-color: @green;
+ //border-color: @foreground;
+}
+error-message {
+ expand: true;
+ background-color: red;
+ border-color: darkred;
+ border: 2px;
+ padding: 1em;
+}
diff --git a/rofi/.config/rofi/config.rasi b/rofi/.config/rofi/config.rasi
new file mode 100644
index 0000000..7023be8
--- /dev/null
+++ b/rofi/.config/rofi/config.rasi
@@ -0,0 +1,151 @@
+configuration {
+/* modi: "window,run,ssh";*/
+ modi: "run";
+/* font: "mono 12";*/
+/* location: 0;*/
+/* yoffset: 0;*/
+/* xoffset: 0;*/
+/* fixed-num-lines: true;*/
+ show-icons: true;
+/* terminal: "rofi-sensible-terminal";*/
+/* ssh-client: "ssh";*/
+/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
+/* run-command: "{cmd}";*/
+/* run-list-command: "";*/
+/* run-shell-command: "{terminal} -e {cmd}";*/
+/* window-command: "wmctrl -i -R {window}";*/
+/* window-match-fields: "all";*/
+/* icon-theme: ;*/
+/* drun-match-fields: "name,generic,exec,categories,keywords";*/
+/* drun-categories: ;*/
+/* drun-show-actions: false;*/
+/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
+/* drun-url-launcher: "xdg-open";*/
+/* disable-history: false;*/
+/* ignored-prefixes: "";*/
+/* sort: false;*/
+/* sorting-method: "normal";*/
+/* case-sensitive: false;*/
+/* cycle: true;*/
+/* sidebar-mode: false;*/
+/* hover-select: false;*/
+/* eh: 1;*/
+/* auto-select: false;*/
+/* parse-hosts: false;*/
+/* parse-known-hosts: true;*/
+/* combi-modi: "window,run";*/
+/* matching: "normal";*/
+/* tokenize: true;*/
+/* m: "-5";*/
+/* filter: ;*/
+/* dpi: -1;*/
+/* threads: 0;*/
+/* scroll-method: 0;*/
+/* window-format: "{w} {c} {t}";*/
+/* click-to-exit: true;*/
+/* theme: ;*/
+/* max-history-size: 25;*/
+/* combi-hide-mode-prefix: false;*/
+/* matching-negate-char: '-' /* unsupported */;*/
+/* cache-dir: ;*/
+/* window-thumbnail: false;*/
+/* drun-use-desktop-cache: false;*/
+/* drun-reload-desktop-cache: false;*/
+/* normalize-match: false;*/
+/* steal-focus: false;*/
+/* application-fallback-icon: ;*/
+/* pid: "/run/user/1000/rofi.pid";*/
+/* display-window: ;*/
+/* display-windowcd: ;*/
+/* display-run: ;*/
+/* display-ssh: ;*/
+/* display-drun: ;*/
+/* display-combi: ;*/
+/* display-keys: ;*/
+/* display-filebrowser: ;*/
+/* kb-primary-paste: "Control+V,Shift+Insert";*/
+/* kb-secondary-paste: "Control+v,Insert";*/
+/* kb-clear-line: "Control+w";*/
+/* kb-move-front: "Control+a";*/
+/* kb-move-end: "Control+e";*/
+/* kb-move-word-back: "Alt+b,Control+Left";*/
+/* kb-move-word-forward: "Alt+f,Control+Right";*/
+/* kb-move-char-back: "Left,Control+b";*/
+/* kb-move-char-forward: "Right,Control+f";*/
+/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
+/* kb-remove-word-forward: "Control+Alt+d";*/
+/* kb-remove-char-forward: "Delete,Control+d";*/
+/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
+/* kb-remove-to-eol: "Control+k";*/
+/* kb-remove-to-sol: "Control+u";*/
+/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
+/* kb-accept-custom: "Control+Return";*/
+/* kb-accept-custom-alt: "Control+Shift+Return";*/
+/* kb-accept-alt: "Shift+Return";*/
+/* kb-delete-entry: "Shift+Delete";*/
+/* kb-mode-next: "Shift+Right,Control+Tab";*/
+/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
+/* kb-mode-complete: "Control+l";*/
+/* kb-row-left: "Control+Page_Up";*/
+/* kb-row-right: "Control+Page_Down";*/
+/* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
+/* kb-row-down: "Down,Control+n";*/
+/* kb-row-tab: "Tab";*/
+/* kb-page-prev: "Page_Up";*/
+/* kb-page-next: "Page_Down";*/
+/* kb-row-first: "Home,KP_Home";*/
+/* kb-row-last: "End,KP_End";*/
+/* kb-row-select: "Control+space";*/
+/* kb-screenshot: "Alt+S";*/
+/* kb-ellipsize: "Alt+period";*/
+/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
+/* kb-toggle-sort: "Alt+grave";*/
+/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
+/* kb-custom-1: "Alt+1";*/
+/* kb-custom-2: "Alt+2";*/
+/* kb-custom-3: "Alt+3";*/
+/* kb-custom-4: "Alt+4";*/
+/* kb-custom-5: "Alt+5";*/
+/* kb-custom-6: "Alt+6";*/
+/* kb-custom-7: "Alt+7";*/
+/* kb-custom-8: "Alt+8";*/
+/* kb-custom-9: "Alt+9";*/
+/* kb-custom-10: "Alt+0";*/
+/* kb-custom-11: "Alt+exclam";*/
+/* kb-custom-12: "Alt+at";*/
+/* kb-custom-13: "Alt+numbersign";*/
+/* kb-custom-14: "Alt+dollar";*/
+/* kb-custom-15: "Alt+percent";*/
+/* kb-custom-16: "Alt+dead_circumflex";*/
+/* kb-custom-17: "Alt+ampersand";*/
+/* kb-custom-18: "Alt+asterisk";*/
+/* kb-custom-19: "Alt+parenleft";*/
+/* kb-select-1: "Super+1";*/
+/* kb-select-2: "Super+2";*/
+/* kb-select-3: "Super+3";*/
+/* kb-select-4: "Super+4";*/
+/* kb-select-5: "Super+5";*/
+/* kb-select-6: "Super+6";*/
+/* kb-select-7: "Super+7";*/
+/* kb-select-8: "Super+8";*/
+/* kb-select-9: "Super+9";*/
+/* kb-select-10: "Super+0";*/
+/* ml-row-left: "ScrollLeft";*/
+/* ml-row-right: "ScrollRight";*/
+/* ml-row-up: "ScrollUp";*/
+/* ml-row-down: "ScrollDown";*/
+/* me-select-entry: "MousePrimary";*/
+/* me-accept-entry: "MouseDPrimary";*/
+/* me-accept-custom: "Control+MouseDPrimary";*/
+ /*
+ timeout {
+ action: "kb-cancel";
+ delay: 0;
+ }
+ filebrowser {
+ directories-first: true;
+ sorting-method: "name";
+ }
+ */
+}
+@theme "arthur"
diff --git a/rofi/.config/rofi/theme.rasi b/rofi/.config/rofi/theme.rasi
new file mode 100644
index 0000000..10ea6ad
--- /dev/null
+++ b/rofi/.config/rofi/theme.rasi
@@ -0,0 +1,171 @@
+* {
+ font: "Mono 10";
+
+ background: #2e3440;
+ foreground: #d8dee9;
+
+ active-background: #ffd97e;
+ active-foreground: @foreground;
+ normal-background: @background;
+ normal-foreground: @foreground;
+ urgent-background: #ffd471;
+ urgent-foreground: @foreground;
+
+ alternate-active-background: @background;
+ alternate-active-foreground: @foreground;
+ alternate-normal-background: @background;
+ alternate-normal-foreground: @foreground;
+ alternate-urgent-background: @background;
+ alternate-urgent-foreground: @foreground;
+
+ selected-active-background: #ffd471;
+ selected-active-foreground: @foreground;
+ selected-normal-background: #434c5e; /* nord2 */
+ selected-normal-foreground: @foreground;
+ selected-urgent-background: #ffc733;
+ selected-urgent-foreground: @foreground;
+
+ background-color: @background;
+ border-color: @background;
+}
+
+#window {
+ background-color: @background;
+ border: 1px;
+ padding: 0.5ch;
+ border-color: @foreground;
+ border-radius: 10px;
+}
+
+#mainbox {
+ border: 10px;
+ padding: 0;
+ border-radius: 10px;
+}
+
+#message {
+ border: 2px 0px 0px;
+ border-color: @border-color;
+ padding: 1px;
+}
+
+#textbox {
+ text-color: @foreground;
+}
+
+#listview {
+ fixed-height: 0;
+ border: 2px 0px 0px;
+ border-color: @border-color;
+ spacing: 2px;
+ scrollbar: true;
+ padding: 2px 0px 0px;
+}
+
+#element {
+ border: 0;
+ padding: 1px;
+}
+
+#element.normal.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
+}
+
+#element.normal.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+}
+
+#element.normal.active {
+ background-color: @active-foreground;
+ text-color: #0000ff;
+}
+
+#element.selected.normal {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
+}
+
+#element.selected.urgent {
+ background-color: @selected-urgent-background;
+ text-color: @selected-urgent-foreground;
+}
+
+#element.selected.active {
+ background-color: @selected-active-background;
+ text-color: #0000ff;
+}
+
+#element.alternate.normal {
+ background-color: @alternate-normal-background;
+ text-color: @alternate-normal-foreground;
+}
+
+#element.alternate.urgent {
+ background-color: @alternate-urgent-background;
+ text-color: @alternate-urgent-foreground;
+}
+
+#element.alternate.active {
+ background-color: @alternate-active-background;
+ text-color: @alternate-active-foreground;
+}
+
+#scrollbar {
+ width: 4px;
+ border: 0;
+ handle-width: 8px;
+ padding: 0;
+}
+
+#sidebar {
+ border: 2px 0px 0px;
+ border-color: @border-color;
+}
+
+#button {
+ text-color: @normal-foreground;
+}
+
+#button.selected {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
+ border-radius: 10px;
+}
+
+#inputbar {
+ spacing: 0;
+ padding: 5;
+ border-radius: 10px;
+ text-color: black;
+ background-color: white;
+ children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
+}
+
+#prompt {
+ spacing: 0;
+ text-color: @normal-foreground;
+ background-color: white;
+ text-color: black;
+}
+
+#textbox-prompt-colon {
+ expand: false;
+ str: " :";
+ margin: 0px 0.3em 0em 0em;
+ text-color: black;
+ background-color: white;
+}
+
+#entry {
+ spacing: 0;
+ text-color: black;
+ background-color: white;
+}
+
+#case-indicator {
+ spacing: 0;
+ text-color: black;
+ background-color: white;
+}
diff --git a/sxhkd/.config/sxhkd/sxhkdrc b/sxhkd/.config/sxhkd/sxhkdrc
index 3b7ad45..6a36d4d 100644
--- a/sxhkd/.config/sxhkd/sxhkdrc
+++ b/sxhkd/.config/sxhkd/sxhkdrc
@@ -8,7 +8,7 @@ super + Return
# program launcher
super + i
- rofi -show run
+ rofi -modi "run,drun,Desktop:~/scripts/sxhkd/rofi_new.sh,Layer:~/scripts/sxhkd/macropad_layer.sh" -show run
#super + @space
# dmenu_run
diff --git a/sxhkd/scripts/sxhkd/macropad_layer.sh b/sxhkd/scripts/sxhkd/macropad_layer.sh
new file mode 100755
index 0000000..4f4659f
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/macropad_layer.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+BIN_PATH=/home/sebastien/Projets/python/serial/
+LAYER_PATH=${BIN_PATH}/layers/
+
+set -u
+set -e
+
+if [ -z ${1+x} ]; then
+ ls ${LAYER_PATH}
+else
+ python3 ${BIN_PATH}/client.py ${BIN_PATH}/config_client.ini --layer ${LAYER_PATH}/$1 > /dev/null
+fi
diff --git a/sxhkd/scripts/sxhkd/rofi_new.sh b/sxhkd/scripts/sxhkd/rofi_new.sh
index 02b37f5..f668268 100755
--- a/sxhkd/scripts/sxhkd/rofi_new.sh
+++ b/sxhkd/scripts/sxhkd/rofi_new.sh
@@ -1,5 +1,8 @@
#!/bin/sh
+set -u
+set -e
+
tmpdir=$(mktemp -d)
on_exit() {
@@ -13,12 +16,12 @@ on_preExit() {
trap on_exit EXIT # EXIT = 0
trap on_preExit HUP INT QUIT TERM STOP PWR # 1 2 3 15 30
-if [ -z $1 ]; then
+if [ -z ${1+x} ]; then
# We are using dash, the process substitution syntax is not allowed
# sort -u <(…) <(…)
# so, we are using pipes for that
mkfifo ${tmpdir}/p1 ${tmpdir}/p2
- echo "Chat\nWeb\nMail\nmusique" > "${tmpdir}/p1" &
+ echo "Chat\nWeb\nMail\nmusique\nDiscord" > "${tmpdir}/p1" &
bspc query --names -D > "${tmpdir}/p2" &
sort -u "${tmpdir}/p1" "${tmpdir}/p2"
else
diff --git a/sxhkd/scripts/sxhkd/rofi_rotate.sh b/sxhkd/scripts/sxhkd/rofi_rotate.sh
index 82ee234..4716d27 100755
--- a/sxhkd/scripts/sxhkd/rofi_rotate.sh
+++ b/sxhkd/scripts/sxhkd/rofi_rotate.sh
@@ -1,8 +1,8 @@
#!/bin/sh
if [ -z $1 ]; then
+ echo "Flip"
echo "Horaire"
echo "Antihoraire"
- echo "Flip"
exit 0
else
case $1 in