├── Stendhal ├── Previews │ ├── dcal.gif │ ├── hide.gif │ ├── panel.gif │ ├── scrot.png │ ├── notstat.gif │ ├── mountlist.gif │ ├── panel-mail.gif │ ├── torrents.gif │ ├── workspaces.gif │ ├── alternate_icon.png │ ├── icon-leftclick.gif │ ├── icon-rightclick.gif │ └── label-leftclick.gif ├── Panel │ ├── Lists │ │ ├── panel-torrents │ │ ├── dzen-menu-content │ │ ├── dzen-menu │ │ └── whid │ ├── Core │ │ ├── panel │ │ ├── panel-skeleton │ │ ├── panel-settings │ │ └── not-stat │ ├── Misc │ │ ├── dcal │ │ └── panel-mail │ ├── Monitor │ │ ├── dslider-content │ │ ├── panel-music │ │ ├── dslider │ │ └── panel-monitor │ └── README.md ├── Other │ ├── bspwmrc │ ├── termite │ └── australis.css └── README.md └── Mousse ├── Previews ├── BspwmMenu.png ├── LaunchMenu.gif ├── apple-like-menu.png └── desktop-controls.png ├── MouseCenter ├── bspwm-zenity ├── MouseLaunch ├── LaunchMenu ├── mygtkmenu-returncode.patch ├── BspwmMenu └── README.md /Stendhal/Previews/dcal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/dcal.gif -------------------------------------------------------------------------------- /Stendhal/Previews/hide.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/hide.gif -------------------------------------------------------------------------------- /Stendhal/Previews/panel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/panel.gif -------------------------------------------------------------------------------- /Stendhal/Previews/scrot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/scrot.png -------------------------------------------------------------------------------- /Mousse/Previews/BspwmMenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Mousse/Previews/BspwmMenu.png -------------------------------------------------------------------------------- /Stendhal/Previews/notstat.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/notstat.gif -------------------------------------------------------------------------------- /Mousse/Previews/LaunchMenu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Mousse/Previews/LaunchMenu.gif -------------------------------------------------------------------------------- /Stendhal/Previews/mountlist.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/mountlist.gif -------------------------------------------------------------------------------- /Stendhal/Previews/panel-mail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/panel-mail.gif -------------------------------------------------------------------------------- /Stendhal/Previews/torrents.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/torrents.gif -------------------------------------------------------------------------------- /Stendhal/Previews/workspaces.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/workspaces.gif -------------------------------------------------------------------------------- /Mousse/Previews/apple-like-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Mousse/Previews/apple-like-menu.png -------------------------------------------------------------------------------- /Mousse/Previews/desktop-controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Mousse/Previews/desktop-controls.png -------------------------------------------------------------------------------- /Stendhal/Previews/alternate_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/alternate_icon.png -------------------------------------------------------------------------------- /Stendhal/Previews/icon-leftclick.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/icon-leftclick.gif -------------------------------------------------------------------------------- /Stendhal/Previews/icon-rightclick.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/icon-rightclick.gif -------------------------------------------------------------------------------- /Stendhal/Previews/label-leftclick.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tatou-tatou/Themes/HEAD/Stendhal/Previews/label-leftclick.gif -------------------------------------------------------------------------------- /Mousse/MouseCenter: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Get the necessary info 3 | IFS=" " read -a window <<< $(xwinfo -g $(bspc query -W -w focused)) 4 | 5 | # Find the center of the window 6 | center_x=$(expr "${window[0]}" / "2" + "${window[2]}") 7 | center_y=$(expr "${window[1]}" / "2" + "${window[3]}") 8 | 9 | # Move mouse 10 | xdotool mousemove $center_x $center_y 11 | -------------------------------------------------------------------------------- /Stendhal/Panel/Lists/panel-torrents: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | file="/home/tatou/.to_watch" 4 | lines=$(cat $file | wc -l) 5 | 6 | if [ "$lines" -ne "0" ] 7 | then 8 | message="" 9 | case "$1" in 10 | reduced) 11 | icon="%{F#ff35332D}%{F-}" 12 | ;; 13 | full) 14 | icon="" 15 | ;; 16 | *) 17 | icon="" 18 | ;; 19 | esac 20 | message=" %{B#ff9B7046}%{A:dzen-menu towatch:run-or-raise transmission &:} $icon $lines %{A}%{B-}" 21 | else 22 | message="" 23 | fi 24 | 25 | echo "T$message" > /tmp/panel-fifo 26 | -------------------------------------------------------------------------------- /Mousse/bspwm-zenity: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | case $1 in 3 | desktop-add) 4 | name="$(zenity --entry --text='Type the name of the new workspace:')" 5 | bspc monitor -a "$name" 6 | ;; 7 | desktop-remove) 8 | name="$(bspc query -D | zenity --list --column Workspaces --text="Select the workspace you want to remove" --hide-header)" 9 | bspc monitor -r "$name" 10 | ;; 11 | move-to-desktop) 12 | name="$(bspc query -D | zenity --list --column Workspaces --text="Move to workspace:" --hide-header)" 13 | bspc window -d "$name" 14 | ;; 15 | desktop-rename) 16 | name="$(zenity --entry --text='Rename the current workspace to:')" 17 | bspc desktop -n "$name" 18 | ;; 19 | desktop-swap) 20 | name="$(bspc query -D | zenity --list --column Workspaces --text="Swap with:" --hide-header)" 21 | bspc desktop -s "$name" 22 | ;; 23 | esac 24 | -------------------------------------------------------------------------------- /Stendhal/Panel/Core/panel: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | if [ $(pgrep -cx panel) -gt 1 ] ; then 3 | printf "%s\n" "The panel is already running." >&2 4 | exit 1 5 | fi 6 | 7 | trap 'trap - TERM; kill 0' INT TERM QUIT EXIT 8 | 9 | [ -e "$PANEL_FIFO" ] && rm "$PANEL_FIFO" 10 | mkfifo "$PANEL_FIFO" 11 | 12 | # Settings 13 | . panel-settings 14 | bspc config top_padding $height 15 | 16 | # Time and wm info 17 | bspc control --subscribe > "$PANEL_FIFO" & 18 | clock -i 60 -sf "S%{B$bg_clock} %{F$fg_squares} %{F$fg_clockemph}%d %{F$fg_clock}%b %{F$fg_squares}%{F$fg_clock} %H:%M %{B-}%{F-}" > "$PANEL_FIFO" & 19 | 20 | # Make the panel 21 | cat "$PANEL_FIFO" | panel-skeleton | bar-aint-recursive -g 1280x$height -B $bg_global -F $fg_global -f "$font,$font2" | while read line; do eval "$line"; done & 22 | 23 | # Mails and notifications 24 | panel-mail & 25 | panel-torrents & 26 | not-stat Mu & 27 | 28 | wait 29 | -------------------------------------------------------------------------------- /Mousse/MouseLaunch: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Get the necessary info 3 | eval $(xdotool getmouselocation --shell) 4 | IFS=" " read -a window <<< $(xwinfo -g $(bspc query -W -w focused)) 5 | 6 | # Distance to each side 7 | up=$(expr "$Y" - "${window[3]}") 8 | down=$(expr "${window[3]}" + "${window[1]}" - "$Y" ) 9 | left=$(expr "$X" - "${window[2]}") 10 | right=$(expr "${window[2]}" + "${window[0]}" - "$X" ) 11 | 12 | # Find the minimal distance 13 | dir_final="up" 14 | for dir in down left right; do 15 | if [ "${!dir}" -lt "${!dir_final}" ]; then 16 | dir_final=$dir 17 | fi 18 | done 19 | 20 | # Send the presel signal 21 | bspc window -p cancel # Necessary if you have set auto_cancel to true 22 | bspc window -p $dir_final 23 | 24 | # Spawn a menu to launch a program 25 | mygtkmenu ~/.config/GTKmenu/LaunchMenu > /dev/null || bspc window -p cancel 26 | 27 | ## WARNING: The "||" only males sense if you apply my patch to mygtkmenu! 28 | -------------------------------------------------------------------------------- /Stendhal/Panel/Misc/dcal: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # dzen2 pop-up calendar 4 | # (c) 2007, by Robert Manea 5 | # 6 | # Modified by tatou so it can be toggled when clicking on the panel. 7 | # 8 | 9 | # Load the settings (color, etc) 10 | . panel-settings 11 | 12 | # Close it if it's already opened 13 | pgrep -f "dzen2 -x 1076 -y 26 -h 20 -tw 196 -w 196 -l" > /dev/null && pkill -f "dzen2 -x 1076 -y 26 -h 20 -tw 196 -w 196 -l" && exit 14 | 15 | # Necessary info 16 | TODAY=$(expr `date +'%d'` + 0) 17 | MONTH=`date +'%m'` 18 | YEAR=`date +'%Y'` 19 | LINES=$(cal -m | wc -l) 20 | 21 | # Create the popup 22 | (date +'%A %d %B' 23 | cal -m | sed -r -e "1,2 s/.*/^fg(#A73E28)&^fg()/" -e "s/(^| )($TODAY)($| )/\1^bg($dzen_sel)^fg($dzen_fg)\2^fg()^bg()\3/") | dzen2 -x 1076 -y 26 -h 20 -tw 196 -w 196 -l $LINES -sa c -ta c -p -e 'onstart=uncollapse;button1=exit;button3=exit' -fn "$dzen_font" -fg "$dzen_fg" -bg "$dzen_bg2" & new_calendarpid=$! 24 | -------------------------------------------------------------------------------- /Mousse/LaunchMenu: -------------------------------------------------------------------------------- 1 | item = Terminal 2 | cmd = URxvt 3 | icon = NULL 4 | 5 | item = Firefox 6 | cmd = firefox 7 | icon = NULL 8 | 9 | item = Thunar 10 | cmd = thunar 11 | icon = NULL 12 | 13 | separator 14 | 15 | Submenu = Programs 16 | 17 | icon = NULL 18 | 19 | Submenu = Drawing 20 | 21 | icon = NULL 22 | 23 | item = Gimp 24 | cmd = gimp 25 | icon = NULL 26 | 27 | item = Inkscape 28 | cmd = inkscape 29 | icon = NULL 30 | 31 | Submenu = Games 32 | 33 | icon = NULL 34 | 35 | item = Super Tux Kart 36 | cmd = 37 | icon = NULL 38 | 39 | item = Super Tux 40 | cmd = 41 | icon = NULL 42 | 43 | Submenu = Music 44 | 45 | icon = NULL 46 | 47 | item = ncmpcpp 48 | cmd = urxvt -e "ncmpcpp" 49 | icon = NULL 50 | 51 | item = mpdviz 52 | cmd = urxvt -e sh -c "mpdviz -i true" 53 | icon = NULL 54 | 55 | Submenu = Write 56 | 57 | icon = NULL 58 | 59 | item = LibreOffice 60 | cmd = libreoffice 61 | icon = NULL 62 | -------------------------------------------------------------------------------- /Stendhal/Panel/Lists/dzen-menu-content: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | . panel-settings 3 | content="$1" 4 | linesStart="$2" 5 | 6 | case $content in 7 | towatch) 8 | file="/home/tatou/.to_watch" 9 | updatepanel="panel-torrents reduced" 10 | 11 | #Color the arrow 12 | panel-torrents reduced 13 | ;; 14 | todo) 15 | file="/home/tatou/.todo" 16 | updatepanel="panel-remind" 17 | ;; 18 | esac 19 | 20 | linesCurrent=$(cat $file | wc -l) 21 | 22 | i=1 23 | (cat "$file" | while read line; do 24 | echo "^bg($dzen_sideline) ^bg($dzen_bg)^fg($dzen_close) ^ca(1,sed -i '${i}d' $file ; dzen-menu-content $content $linesStart; $updatepanel)^ca() ^fg()^bg() $line" 25 | i=$((i+1)) 26 | done 27 | 28 | difference=$(($linesStart - $linesCurrent)) 29 | 30 | i=1 31 | while [ "$i" -le "$difference" ] 32 | do 33 | echo "^bg(#9D534A) ^bg(#201F1D)^fg(#ABA08B) ^fg()^bg()" 34 | i=$((i+1)) 35 | done 36 | 37 | ) > /tmp/dzen-menu-fifo 38 | 39 | -------------------------------------------------------------------------------- /Stendhal/Panel/Misc/panel-mail: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Absolute path, else cron won't find it 4 | . /home/tatou/.panel/panel-settings 5 | 6 | mailbox1=$(ls /home/tatou/Mail/free/Inbox/new | wc -l) 7 | mailbox2=$(ls /home/tatou/Mail/hotmail/Inbox/new | wc -l) 8 | 9 | mails() 10 | { 11 | ##Mailbox 1 12 | if [ "$mailbox1" -gt "0" ] 13 | then 14 | messagemailbox1="$mailbox1 " 15 | fi 16 | ##Mailbox 2 17 | if [ "$mailbox2" -gt "0" ] 18 | then 19 | messagemailbox2="$mailbox2 " 20 | fi 21 | 22 | ##Both 23 | if [ "$mailbox2" -gt "0" -a "$mailbox1" -gt "0" ]; then 24 | middleand="+ " 25 | #extraspace=" " 26 | fi 27 | if [ "$mailbox2" -gt "0" -o "$mailbox1" -gt "0" ]; then 28 | messages=" %{B$bg_mails}%{F$fg_mails}%{A:panel-mail small:run-or-raise mutt &:}$extraspace   " 29 | endmail="$extraspace%{B-}%{F-}%{A}" 30 | fi 31 | 32 | echo "$messages$messagemailbox2$middleand$messagemailbox1$endmail" 33 | } 34 | 35 | mails_reduced() 36 | { 37 | if [ "$mailbox2" -gt "0" -o "$mailbox1" -gt "0" ]; then 38 | echo " %{A:panel-mail:run-or-raise mutt &:}%{B$bg_mails}%{F$fg_mails}  %{B-}%{F-}%{A}" 39 | fi 40 | } 41 | 42 | case "$1" in 43 | small) 44 | echo "M$(mails_reduced)" > /tmp/panel-fifo 45 | ;; 46 | full) 47 | echo "M$(mails)" > /tmp/panel-fifo 48 | ;; 49 | *) 50 | echo "M$(mails)" > /tmp/panel-fifo 51 | ;; 52 | esac 53 | -------------------------------------------------------------------------------- /Stendhal/Other/bspwmrc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | bspc monitor -d 1 2 3 4 4 | 5 | bspc config border_width 3 6 | bspc config -m focused border_width 3 7 | bspc config window_gap 6 8 | bspc config split_ratio 0.50 9 | bspc config borderless_monocle true 10 | bspc config gapless_monocle true 11 | bspc config focus_follows_pointer true 12 | bspc config history_aware_focus false 13 | bspc config ignore_ewmh_focus true 14 | bspc config auto_cancel true 15 | bspc config auto_alternate true 16 | 17 | 18 | # SHADOWS ONLY WHEN FLOATING 19 | # To use with shadow-exclude = [ "_BSPWM_FLOATING_WINDOW:32c = 0" ] in the compton.conf and with the richardgv-dev branch of compton 20 | bspc config apply_floating_atom true 21 | 22 | 23 | # 24 | ## COLORS ## 25 | # 26 | 27 | bspc config focused_border_color "#A73E28" 28 | bspc config normal_border_color "#292825" 29 | bspc config presel_border_color "#C2AD9D" 30 | bspc config focused_sticky_border_color "#62712C" 31 | bspc config normal_sticky_border_color "#3D444E" 32 | bspc config focused_private_border_color "#9D534A" 33 | bspc config normal_private_border_color "#9B7046" 34 | 35 | 36 | 37 | 38 | 39 | # 40 | ## RULES ## 41 | # 42 | 43 | # Floating windows 44 | bspc rule -a wine floating=true 45 | bspc rule -a nitrogen floating=true 46 | bspc rule -a fceux floating=true 47 | bspc rule -a pcsx2 floating=true 48 | 49 | # Center floating window 50 | bspc rule -a \* center=true 51 | 52 | 53 | # 54 | ## PANEL 55 | # 56 | 57 | panel & 58 | -------------------------------------------------------------------------------- /Stendhal/Panel/Lists/dzen-menu: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | . panel-settings 4 | content="$1" 5 | 6 | # Confirm that an argument was given 7 | if [ -z $content ]; then 8 | echo "No menu type specified!" 9 | exit 10 | fi 11 | 12 | case $content in 13 | towatch) 14 | file="/home/tatou/.to_watch" 15 | title="^fg(#878438)To watch^fg() list:" 16 | ;; 17 | todo) 18 | file="/home/tatou/.todo" 19 | updatepanel= 20 | title="^fg(#878438)To do^fg() list:" 21 | ;; 22 | esac 23 | 24 | 25 | # Close and clean if a dzen submenu is already opened 26 | 27 | cleaning () 28 | { 29 | pkill -f "dzen2 -p -m -x -408 -y 18 -w 408 -h 20" 30 | pkill -f 'tail -f /tmp/dzen-menu-fifo' 31 | panel-torrents full 32 | panel-remind 33 | } 34 | 35 | clean_tail="pkill -f 'tail -f /tmp/dzen-menu-fifo' && panel-torrents full && panel-remind" 36 | 37 | pgrep -f "dzen2 -p -m -x -408 -y 18 -w 408 -h 20" > /dev/null && $(cleaning) && exit 38 | 39 | 40 | # 41 | # Make the submenu window 42 | # 43 | 44 | # FIFO 45 | [ -e "/tmp/dzen-menu-fifo" ] && rm "/tmp/dzen-menu-fifo" 46 | mkfifo "/tmp/dzen-menu-fifo" 47 | 48 | # NUMBER OF LINES 49 | lines=$(wc -l < $file) 50 | if [ "$lines" -gt 10 ] 51 | then 52 | lines=10 53 | fi 54 | 55 | # CREATE THE POPUP 56 | (echo "$title" 57 | exec tail -f /tmp/dzen-menu-fifo) | dzen2 -p -m -x -408 -y 18 -w 408 -h 20 -fn "$dzen_font" -fg "$dzen_fg" -bg "$dzen_bg2" -l $lines -e "onstart=uncollapse;button1=menuprint,exit,exec:$clean_tail:panel-torrents full;button3=exit,exec:$clean_tail:panel-torrents full;button4=scrollup;button5=scrolldown" | while read FNAME; do 58 | FNAME=${FNAME:4} 59 | xdg-open "/home/tatou/Torrents/$FNAME" & 60 | done & 61 | 62 | # CREATE CONTENT FOR THE POPUP 63 | dzen-menu-content $content $lines 64 | -------------------------------------------------------------------------------- /Mousse/mygtkmenu-returncode.patch: -------------------------------------------------------------------------------- 1 | From 10bf1dabf24001629a3f3c552b2002c69e268482 Mon Sep 17 00:00:00 2001 2 | From: tatou-tatou 3 | Date: Tue, 17 Jun 2014 21:11:34 +0200 4 | Subject: [PATCH] Non-zero return code if nothing is launched 5 | 6 | Allow to do the following: 7 | mygtkmenu /path/to/menu || echo "Nothing was launched" 8 | --- 9 | main.c | 12 +++++++++++- 10 | 1 file changed, 11 insertions(+), 1 deletion(-) 11 | 12 | diff --git a/main.c b/main.c 13 | index 91dcc96..065af53 100644 14 | --- a/main.c 15 | +++ b/main.c 16 | @@ -27,6 +27,7 @@ 17 | 18 | 19 | #include 20 | +#include 21 | #include 22 | #include 23 | #include 24 | @@ -70,6 +71,7 @@ char *HelpMsg = "myGtkMenu version 1.3, Copyright (C) 2004" 25 | "Usage: myGtkMenu MenuDescriptionFilename\n" 26 | "TestMenu.txt is an example input file.\n" 27 | "See TestMenu.txt for help.\n\n"; 28 | +bool exitRunning = false; 29 | 30 | 31 | // ---------------------------------------------------------------------- 32 | @@ -97,7 +99,7 @@ int main (int argc, char *argv[]) { 33 | // If this check causes you problems, comment it out. 34 | int i_all_ready_running = all_ready_running(); 35 | if (i_all_ready_running == 1) { 36 | - fprintf(stderr, "All ready running, will quit.\n"); 37 | + fprintf(stderr, "Already running, will quit.\n"); 38 | return EXIT_FAILURE; 39 | } 40 | else if (i_all_ready_running == 2) { 41 | @@ -336,6 +338,11 @@ int main (int argc, char *argv[]) { 42 | 43 | gtk_main (); 44 | 45 | + if (!exitRunning) 46 | + { 47 | + return EXIT_FAILURE; 48 | + } 49 | + 50 | return 0; 51 | 52 | } // int main 53 | @@ -390,6 +397,9 @@ static void RunItem (char *Cmd) { 54 | g_print ("%s\n", error->message); 55 | g_error_free (error); 56 | } 57 | + else { 58 | + exitRunning = true; 59 | + } 60 | gtk_main_quit (); 61 | } // static void RunItem 62 | 63 | -- 64 | 2.0.0 65 | 66 | -------------------------------------------------------------------------------- /Stendhal/Other/termite: -------------------------------------------------------------------------------- 1 | [options] 2 | resize_grip = false 3 | scroll_on_output = false 4 | scroll_on_keystroke = true 5 | audible_bell = false 6 | visible_bell = false 7 | mouse_autohide = false 8 | allow_bold = false 9 | dynamic_title = true 10 | urgent_on_bell = false 11 | clickable_url = true 12 | scrollback_lines = 1000 13 | search_wrap = true 14 | icon_name = terminal 15 | geometry = 507x285 16 | 17 | 18 | ## FONT ## 19 | font = Meslo LG M 8 20 | 21 | # "system", "on" or "off" 22 | cursor_blink = on 23 | 24 | # "block", "underline" or "ibeam" 25 | cursor_shape = block 26 | 27 | # $BROWSER is used by default 28 | browser = firefox 29 | 30 | # word characters used for word selection 31 | # (default if unset: all graphic non-punctuation/space characters) 32 | #word_chars = -A-Za-z0-9,./?%&#:_=+@~ 33 | 34 | # set size hints for the window 35 | #size_hints = false 36 | 37 | [colors] 38 | foreground = #ded0b4 39 | foreground_bold = #ded0b4 40 | background = #201F1D 41 | cursor = #ded0b4 42 | 43 | # if unset, will reverse foreground and background 44 | highlight = #6b372C 45 | 46 | # colors from color0 to color254 can be set 47 | 48 | # Black 49 | color0 = #302C23 50 | color8 = #403A2E 51 | 52 | # Red 53 | color1 = #A73E28 54 | color9 = #85311E 55 | 56 | # Green 57 | color2 = #878438 58 | color10 = #62712C 59 | 60 | # Yellow 61 | color3 = #C4905E 62 | color11 = #C4A63B 63 | 64 | # Blue 65 | color4 = #3D444E 66 | color12 = #757A80 67 | 68 | # Magenta 69 | color5 = #533F48 70 | color13 = #835C6E 71 | 72 | # Cyan 73 | color6 = #9D534A 74 | color14 = #6A3D38 75 | 76 | # White 77 | color7 = #eddec9 78 | color15 = #fafafa 79 | 80 | #256 colors 81 | color16 = #1A1917 82 | color17 = #201F1D 83 | color18 = #402929 84 | color19 = #D59E71 85 | color20 = #C2AD9D 86 | color21 = #C88981 87 | color22 = #7F3956 88 | color23 = #7F2528 89 | color24 = #36413C 90 | color25 = #403A2B 91 | color26 = #6b372c 92 | color27 = #332F2C 93 | 94 | 95 | [hints] 96 | #font = Monospace 12 97 | #foreground = #dcdccc 98 | #background = #3f3f3f 99 | #padding = 2 100 | #border = #3f3f3f 101 | #border_width = 0.5 102 | #roundness = 2.0 103 | 104 | # vim: ft=dosini cms=#%s 105 | -------------------------------------------------------------------------------- /Stendhal/Panel/Monitor/dslider-content: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | . panel-settings 3 | 4 | dzenpid=$(cat $dzen_popup_path) 5 | dzenpid="${dzenpid:2}" 6 | 7 | if [ $1 == "Mu" ]; then # The music popup is NOT a slider, so it must be treated separately 8 | title="Music " 9 | message=" ^ca(1,coverart)^fg(#A73E28)^ca()^ca(1,termite -e 'mpdviz -i true')^fg(#99704A)^ca()^ca(1,termite -e ncmpcpp &)^fg(#878438)^ca() " 10 | else 11 | case $1 in 12 | Vl) # Master volume 13 | currentValue=$(amixer -q | grep -A5 Master | grep '%' | cut -d'[' -f2 | cut -d'%' -f1) 14 | maxValue=100 15 | title="^ca(1,amixer set Master 0 ; pkill not-stat ; not-stat $1 &)Master^ca()" 16 | ;; 17 | Sc) # Screen brightness 18 | currentValue="$(cat $brightness_path)" 19 | maxValue="$(cat $maxbrightness_path)" 20 | title="Screen" 21 | ;; 22 | esac 23 | 24 | currentValue=$(($currentValue*10/$maxValue)) 25 | 26 | ## MAKE THE SLIDER ## 27 | slider="^fg($dzen_sel)" 28 | for i in {1..10} 29 | do 30 | # Add the command to change the value 31 | slider+="^ca(1," 32 | case $1 in 33 | Vl) # PCM channel volume 34 | slider+="amixer set Master $(($i*$maxValue/10))% > /dev/null" 35 | ;; 36 | Sc) # Screen brightness 37 | slider+="sudo mbp_backlight $(($i*$maxValue/10))" 38 | ;; 39 | esac 40 | slider+=" ; dslider-content $1 ; pkill not-stat ; not-stat $1 &)" 41 | 42 | # Draw the slider 43 | # The special characters $full_slider, $indicator_slider 44 | # and $empty_slider are configured in 'panel-settings' 45 | if [ "$i" -gt "$currentValue" ]; then 46 | slider+="$empty_slider" 47 | elif [ "$i" -eq "$currentValue" ]; then 48 | slider+="$indicator_slider^fg($dzen_empty)" 49 | else 50 | slider+="$full_slider" 51 | fi 52 | 53 | # Finish the value changing command 54 | slider+="^ca()" 55 | done 56 | slider+="^fg()" 57 | 58 | message=$slider 59 | fi 60 | 61 | # Add close button and send the message to the fifo read by dzen 62 | echo " $title $message ^ca(1,dslider close)^fg($dzen_close)^fg()^ca()" > /tmp/dzen-fifo 63 | -------------------------------------------------------------------------------- /Stendhal/Panel/Monitor/panel-music: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . panel-settings 3 | 4 | # Normal controls (prev, play/pause, next) 5 | normal() { 6 | beginning="%{B$bg_button}%{F$fg_button}%{A:panel-monitor:panel-music 2:} Mu %{A}%{B$bg_monitor}%{F$fg_monitor}" 7 | controls="%{A:mpc-script prev:}%{A} %{A:mpc toggle:}%{A} %{A:mpc next:}%{A} %{AW:dslider Mu:}%{A}" 8 | echo "$beginning $controls" 9 | } 10 | 11 | # Additional controls (repeat, random, single, consume) 12 | alternate() { 13 | pgrep -x "mpd" > /dev/null && eval $(mpc | grep "volume: " | tail -n 1 | cut -d'%' -f 2 | sed 's/: /=/g') || mpdstate="OFFLINE" 14 | 15 | updateCmd="panel-music 2" 16 | 17 | if [ "$mpdstate" != "OFFLINE" ]; then 18 | # Creating the mpdstate 19 | 20 | # Repeat 21 | icon="" 22 | iconCmd="mpc repeat > /dev/null" 23 | icon="%{A:$iconCmd ; $updateCmd:}$icon%{A}" 24 | if [ "$repeat" = "on" ]; then 25 | mpdstate="$icon " 26 | else 27 | mpdstate="%{F$inactive}$icon%{F$fg_monitor} " 28 | fi 29 | 30 | # Random 31 | icon="" 32 | iconCmd="mpc random > /dev/null" 33 | icon="%{A:$iconCmd ; $updateCmd:}$icon%{A}" 34 | if [ "$random" = "on" ]; then 35 | mpdstate+="$icon " 36 | else 37 | mpdstate+="%{F$inactive}$icon%{F$fg_monitor} " 38 | fi 39 | 40 | # Single 41 | icon="" 42 | iconCmd="mpc single > /dev/null" 43 | icon="%{A:$iconCmd ; $updateCmd:}$icon%{A}" 44 | if [ "$single" = "on" ]; then 45 | mpdstate+="$icon " 46 | else 47 | mpdstate+="%{F$inactive}$icon%{F$fg_monitor} " 48 | fi 49 | 50 | # Consume 51 | icon="" 52 | iconCmd="mpc consume > /dev/null" 53 | icon="%{A:$iconCmd ; $updateCmd:}$icon%{A}" 54 | if [ "$consume" = "on" ]; then 55 | mpdstate+="$icon" 56 | else 57 | mpdstate+="%{F$inactive}$icon%{F$fg_monitor}" 58 | fi 59 | fi 60 | 61 | beginning="%{B$bg_button}%{F$fg_button}%{A:panel-music:} Mu %{A}%{B$bg_monitor}%{F$fg_monitor}" 62 | echo "$beginning $mpdstate" 63 | } 64 | 65 | 66 | 67 | # Print the widget in the panel 68 | case $1 in 69 | 2) 70 | message=$(alternate) 71 | ;; 72 | *) 73 | message=$(normal) 74 | ;; 75 | esac 76 | 77 | echo "y" "$message %{F$fg_close}%{A:echo y > /tmp/panel-fifo ; dslider close:}%{A} %{B-}%{F-}" > /tmp/panel-fifo 78 | -------------------------------------------------------------------------------- /Stendhal/Panel/Monitor/dslider: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Load settings (color, etc) 4 | . panel-settings 5 | 6 | # Close and clean if a dzen popup is ALREADY opened 7 | previouspid=$(cat $dzen_popup_path) 8 | previouspid="${previouspid:2}" 9 | 10 | if [[ -n "$previouspid" && "$(ps -p $previouspid -o comm=)" = "dzen2" ]]; then 11 | pkill $previouspid 12 | pkill -f 'tail -f /tmp/dzen-fifo' 13 | echo "" > $dzen_popup_path 14 | exit 15 | fi 16 | 17 | # Stop here, with everything closed and cleaned, if it was called with `dslider close` 18 | [ "$1" == "close" ] && exit 19 | 20 | # Clean when dzen closes 21 | # Executed when dzen is closed by right clicking on the popup. 22 | closing="pkill -f 'tail -f /tmp/dzen-fifo' & echo '' > $dzen_popup_path" 23 | 24 | 25 | ################################################################## 26 | 27 | # 28 | # Calculate where to draw the popup 29 | # 30 | Current=${1//[i]/} 31 | Current=${Current: -2} 32 | Opened=${1:0:2} 33 | 34 | xpos=$2 35 | 36 | if [ "$Opened" = "$Current" ]; then 37 | Opened="NA" 38 | fi 39 | 40 | case $1 in 41 | *i) # When you make the popup by clicking on the button 42 | xpos=$(($xpos + 24)) #width of the pink button 43 | case $Opened in 44 | Sc) xpos=$(($xpos - 42)) ;; # 45 | Vl) xpos=$(($xpos - 54)) ;; # width of the already opened button label 46 | Kb) xpos=$(($xpos - 36)) ;; # 47 | Wm) xpos=$(($xpos - 90)) ;; 48 | NA) ;; 49 | *) exit ;; 50 | esac 51 | ;; 52 | *) # When you make the popup by clicking on the arrow 53 | case $Current in 54 | Vl) xpos=$(($xpos - 42)) ;; # Distance between the arrow 55 | Sc) xpos=$(($xpos - 30)) ;; # and the start of the label 56 | Mu) xpos=$(($xpos - 60)) ;; # 57 | *) exit ;; 58 | esac 59 | ;; 60 | esac 61 | 62 | 63 | 64 | # Create the fifo 65 | [ -e "/tmp/dzen-fifo" ] && rm "/tmp/dzen-fifo" 66 | mkfifo "/tmp/dzen-fifo" 67 | 68 | # Create the dzen popup 69 | exec tail -f /tmp/dzen-fifo | dzen2 -p -w 156 -h 23 -y 18 -x $xpos -fn "MonteCarlo-8" -e "button3=exit,exec:$closing" & dzenpid=$! 70 | 71 | 72 | # 73 | # Save the PID of the dzen popup along with the nature of the opened popup (music, 74 | # volume, screen...) so that not-stat can update it depending on its nature. 75 | # 76 | # eg: if the "screen backlight" popup is opened, changing the backlight with 77 | # keybinds should update the slider, but changing the volume should not. 78 | # 79 | echo $Current$dzenpid > $dzen_popup_path 80 | 81 | # 82 | # Create content for the popup 83 | # 84 | dslider-content $Current 85 | -------------------------------------------------------------------------------- /Stendhal/Other/australis.css: -------------------------------------------------------------------------------- 1 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); 2 | 3 | /* 4 | * Use it with vimperator or pentadactyl, else it will be unusable. 5 | * 6 | * I use pentadactyl to hide the nav bar and the vertical and horizontal scrollbars, but you can do it with CSS. 7 | * 8 | */ 9 | 10 | @-moz-document url(chrome://browser/content/browser.xul) { 11 | /* TABS */ 12 | .tabbrowser-tab[fadein]:not([pinned]) { min-width: 30px !important; max-width: 100% !important; } 13 | #tabbrowser-tabs { 14 | min-height: 25px !important; 15 | max-height: 25px !important; 16 | } 17 | tab { 18 | color: #DED0B4 !important; 19 | text-shadow: none !important; 20 | text-align: center !important; 21 | } 22 | 23 | .tabbrowser-tab label { 24 | padding: 0 15px 0 15px !important; 25 | } 26 | 27 | .tabs-newtab-button, 28 | .tab-close-button, 29 | .tab-close, 30 | .tab-throbber, 31 | .tabbrowser-tab:not([pinned]) .tab-icon-image, 32 | .tab-background-start, 33 | .tab-background-end { 34 | display: none !important; } 35 | 36 | .tabbrowser-tab *, .tabs-newtab-button * { 37 | background-image: none !important; 38 | list-style-image: none !important; 39 | margin: 0 0 0 0 !important; 40 | padding: 0 0 0 0 !important; 41 | -moz-appearance: none !important; 42 | } 43 | 44 | .tabbrowser-tab[selected="true"] .tab-stack { 45 | background: #A73E28 !important; 46 | background-color: #A73E28 !important; 47 | color: #EDDEC9 !important; 48 | border-radius: 0px !important; 49 | position: relative !important; 50 | padding-bottom: 1px !important; 51 | } 52 | 53 | .tab-background-middle[selected="true"]{ 54 | background-image: none !important; 55 | background-color: #A73E28 !important; 56 | } 57 | 58 | #TabsToolbar, #tabbrowser-tabs { 59 | -moz-appearance: none !important; 60 | margin-left: -8px !important; 61 | margin-right: -8px !important; 62 | background: #201F1D !important; 63 | } 64 | 65 | #TabsToolbar::after { 66 | display: none !important; 67 | } 68 | 69 | .tabbrowser-tab::before, .tabbrowser-tab::after { 70 | background: url(none) !important; 71 | } 72 | 73 | #navigator-toolbox { 74 | border: 0 !important; 75 | } 76 | #navigator-toolbox::after { 77 | height: 0px; 78 | } 79 | 80 | /* PRIVATE BROWSING FIX */ 81 | #main-window[privatebrowsingmode=temporary] #TabsToolbar::before { display: none !important; } 82 | } 83 | -------------------------------------------------------------------------------- /Stendhal/README.md: -------------------------------------------------------------------------------- 1 | #Stendhal 2 | ![Screenshot](https://raw.github.com/tatou-tatou/Themes/master/Stendhal/Previews/scrot.png) 3 | 4 | I use [bspwm](https://github.com/baskerville/bspwm) with [bar-aint-recursive](https://github.com/LemonBoy/bar). Dzen (as a panel) has more interesting features than *bar*, but *bar* can do proper text alignement. 5 | 6 | ##Panel 7 | Browse the [appropriate folder](http://github.com/tatou-tatou/Themes/tree/master/Stendhal/Panel), it has a few .gif of it in action. 8 | 9 | It's clickable, even if I don't click on it often (except for the torrent list and sometimes for the standalone music controls or the keyboard layout switcher). 10 | 11 | I worked on its ergonomy recently, so I may use it more often starting from now. 12 | 13 | ##Dock 14 | It's [plank](https://launchpad.net/plank) with a [custom theme](https://github.com/tatou-tatou/dotfiles/blob/master/.local/share/plank/themes/Tatou/dock.theme) and [patched](https://github.com/tatou-tatou/dotfiles/blob/master/Sources/plank-indicator.patch) to change the shape of the indicators. 15 | 16 | The patch adds two new settings that need to be set in the `dock.theme`, `IndicatorHeight` and `IndicatorColor`. 17 | 18 | ##Notifications 19 | It's [dunst](https://github.com/knopwob/dunst), that I patched ([here](https://github.com/tatou-tatou/dotfiles/blob/master/Sources/dunst-centering_and_padding.patch) or [there](https://github.com/tatou-tatou/dunst)) to have better (in my opinion) padding and to fix centering issues. 20 | 21 | My dunstrc is [here](https://github.com/tatou-tatou/dotfiles/blob/master/.config/dunst/dunstrc). 22 | 23 | ##Icons 24 | I only make new ones as I need them. Because of that, the theme is really incomplete. 25 | 26 | I will upload them eventually, but maybe not on github as they are binary files. 27 | 28 | ##Gtk theme 29 | [201F](https://github.com/tatou-tatou/201F) 30 | 31 | ##Dmenu 32 | I use dmenu2 and center it like this: 33 | 34 | dmenu_run -i -x 415 -y 330 -w 450 -h 20 -l 4 -fn 'Lucida Grande-8' -nb '#201F1D' -nf '#eddec9' -sb '#8F3724' -sf '#eddec9' 35 | 36 | I use the same centering trick for every scripts I use involving dmenu. 37 | 38 | If you think dmenu2 is bloat, you can always achieve the same exact look with vanilla dmenu, you will just need to patch it for custom width, x and y positioning and xft or pango. 39 | 40 | **Edit** I don't use dmenu2 anymore, now I'm using vanilla dmenu patched for pango (font fallbacks are bliss), x, y, width, height, quiet and mouse. The command is the same, except for `Lucida Grande 8` (no dash with pango). 41 | 42 | ##Compositor 43 | I use the richardgv-dev branch of compton and apart from preventing tearing, I use it to make fade effects when opening/closing clients and to draw very light shadows on floating windows (not on tiled ones). 44 | 45 | My config file is [there](https://github.com/tatou-tatou/dotfiles/blob/master/.config/compton.conf). 46 | -------------------------------------------------------------------------------- /Stendhal/Panel/Core/panel-skeleton: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | . panel-settings 4 | 5 | while read -r line ; do 6 | case $line in 7 | S*) 8 | # clock output 9 | horloge="${line#?}" 10 | ;; 11 | c*) 12 | # panel-monitor 13 | config="${line#?}" 14 | ;; 15 | m*) 16 | # not-stat 17 | notstat="${line#?}" 18 | ;; 19 | y*) 20 | # panel-music 21 | music="${line#?}" 22 | ;; 23 | n*) 24 | # unmapped windows 25 | unmap="${line#?}" 26 | ;; 27 | T*) 28 | # panel-torrents 29 | torrents="${line#?}" 30 | ;; 31 | M*) 32 | # panel-mails 33 | mails="${line#?}" 34 | ;; 35 | W*) 36 | # bspwm internal state 37 | wm_infos="" 38 | IFS=':' 39 | set -- ${line#?} 40 | while [ $# -gt 0 ] ; do 41 | item=$1 42 | name=${item#?} 43 | case $item in 44 | O*) 45 | # focused occupied desktop 46 | wm_infos="$wm_infos$occupied_focus" 47 | ;; 48 | F*) 49 | # focused free desktop 50 | wm_infos="$wm_infos$empty_focus" 51 | ;; 52 | U*) 53 | # focused urgent desktop 54 | wm_infos="$wm_infos%{B$bg_urgenttags}%{F$fg_urgenttags}$occupied_focus%{B$bg_tags}%{F$fg_tags}" 55 | ;; 56 | o*) 57 | # occupied desktop 58 | wm_infos="$wm_infos%{A:bspc desktop -f ${name}:}$occupied%{A}" 59 | ;; 60 | f*) 61 | # free desktop 62 | wm_infos="$wm_infos%{A:bspc desktop -f ${name}:}$empty%{A}" 63 | ;; 64 | u*) 65 | # urgent desktop 66 | wm_infos="$wm_infos%{A:bspc desktop -f ${name}:}%{B$bg_urgenttags}%{F$fg_urgenttags}$occupied%{B$bg_tags}%{F$fg_tags}%{A}" 67 | ;; 68 | L*) 69 | # layout 70 | layout="%{B$bg_monocle}%{F$fg_monocle}$(printf "%s" "$(echo ${name} |sed 's/tiled//g' |sed 's/monocle/%{A:bspc desktop -l next:} (Click to exit Monocle) %{A}/g')")%{B-}%{F-}" 71 | wm_infos="%{B$bg_startmenu}%{F$fg_startmenu}%{A:$startmenu_cmd:}$start_icon%{A}%{B$bg_tags}%{F$fg_tags}$wm_infos %{B-}%{F-}" 72 | ;; 73 | esac 74 | shift 75 | done 76 | ;; 77 | esac 78 | printf "%s\n" "$wm_infos$config$music$notstat %{c}$layout%{r}$torrents$mails%{A:dcal &:dzen-mount:}$horloge%{A}$unmap" 79 | done 80 | -------------------------------------------------------------------------------- /Stendhal/Panel/Core/panel-settings: -------------------------------------------------------------------------------- 1 | # 2 | # GLOBAL 3 | #_________ 4 | ### Panel fonts 5 | # You MUST configure two fonts! You need a X font, check their names with xlsfonts 6 | # I have instructions on how to add a new font in my Monégasque repo. 7 | font="-freetype-kochi gothic-medium-r-normal--11-80-100-100-p-86-iso10646-1" 8 | font2="-windows-montecarlopanel-medium-r-normal--11-110-72-72-c-60-microsoft-cp1252" 9 | 10 | ### Panel height 11 | height="18" 12 | 13 | ### Colors 14 | bg_global="#ff1A1917" 15 | fg_global="#ffded0b4" 16 | 17 | ### Squares 18 | fg_squares="#ff5C5541" 19 | 20 | # Where to look for the screen brightness value 21 | brightness_path="/sys/devices/virtual/backlight/apple_backlight/brightness" 22 | maxbrightness_path="/sys/devices/virtual/backlight/apple_backlight/max_brightness" 23 | # And for the keyboard brightness value 24 | keyboard_path="/sys/class/leds/smc::kbd_backlight/brightness" 25 | 26 | ### Where to save process ID and other necessary things 27 | dzen_popup_path="/tmp/dslider.pid" 28 | 29 | 30 | # 31 | # START MENU 32 | #_____________ 33 | # You will need mygtkmenu 34 | startmenu_cmd="mygtkmenu ~/.config/GTKmenu/AppleMenu > /dev/null" 35 | 36 | ### Icon 37 | start_icon=" " 38 | #start_icon="  " 39 | #start_icon=" Menu " 40 | 41 | ### Colors 42 | bg_startmenu="#ffA73E28" 43 | fg_startmenu="#ffeddec9" 44 | 45 | 46 | # 47 | # WORKSPACES 48 | #______________ 49 | ### Icons 50 | occupied_focus="  " 51 | occupied="  " 52 | empty_focus="  " 53 | empty="  " 54 | 55 | ### Colors 56 | bg_tags="#ffA73E28" 57 | fg_tags="#ffeddec9" 58 | bg_urgenttags="#ff402929" 59 | fg_urgenttags="#ffeddec9" 60 | 61 | 62 | # 63 | # not-stat 64 | #__________ 65 | ### NOTIFICATION ICONS 66 | bg_icons="#ff3D444E" 67 | fg_icons="#ffded0b4" 68 | 69 | ### NOTIFICATIONS 70 | bg_notifications="#ff201f1d" 71 | fg_notifications="#ffded0b4" 72 | bg_exclamation="#ffA73E28" 73 | 74 | 75 | # 76 | # panel-monitor and panel-music 77 | #______________________________ 78 | ### Colors 79 | bg_monitor="#ff201F1D" 80 | fg_monitor="#ffded0b4" 81 | bg_button="#ff9D534A" 82 | fg_button="#ffeddec9" 83 | bg_button_selected="#ffBA6258" 84 | fg_button_selected="#ffeddec9" 85 | fg_close="#ffABA08B" 86 | inactive="#ff383428" 87 | 88 | 89 | # 90 | # DZEN POPUPS 91 | #____________ 92 | dzen_font="MonteCarlo-8" 93 | 94 | ### Slider 95 | empty_slider="" 96 | full_slider="" 97 | indicator_slider="" 98 | 99 | ### Colors 100 | dzen_bg="#201F1D" 101 | dzen_bg2="#1A1917" 102 | dzen_fg="#DED0B4" 103 | dzen_sel="#A73E28" 104 | dzen_empty="#403A2E" 105 | dzen_close="#ABA08B" 106 | dzen_sideline="#9D534A" 107 | 108 | 109 | # 110 | # LAYOUTS 111 | #_________ 112 | 113 | ### Colors 114 | bg_monocle="#ff201F1D" 115 | fg_monocle="#ff5C5541" 116 | 117 | 118 | # 119 | # MAILS 120 | #________ 121 | ### Colors 122 | bg_mails="#ffA73E28" 123 | fg_mails="#ffeddec9" 124 | 125 | 126 | # 127 | # DATE AND CLOCK 128 | #______________ 129 | ### Colors 130 | bg_clock="#ff201f1d" 131 | fg_clock="#ffded0b4" 132 | fg_clockemph="#ff878438" 133 | -------------------------------------------------------------------------------- /Mousse/BspwmMenu: -------------------------------------------------------------------------------- 1 | # …………… Beginning of menu …………… 2 | 3 | Submenu = Window 4 | 5 | icon = NULL 6 | 7 | item = Floating 8 | cmd = bspc window -t floating 9 | icon = NULL 10 | 11 | item = Monocle 12 | cmd = bspc desktop -l next 13 | icon = NULL 14 | 15 | item = Fullscreen 16 | cmd = bspc window -t fullscreen 17 | icon = NULL 18 | 19 | item = Pseudo-tiling 20 | cmd = bspc window -t pseudo_tiled 21 | icon = NULL 22 | 23 | item = Lock 24 | cmd = bspc window -t locked 25 | icon = NULL 26 | 27 | item = Sticky 28 | cmd = bspc window -t sticky 29 | icon = NULL 30 | 31 | item = Private 32 | cmd = bspc window -t private 33 | icon = NULL 34 | 35 | Submenu = Move to... 36 | 37 | icon = NULL 38 | 39 | item = Desktop n°... 40 | cmd = bspwm-zenity move-to-desktop 41 | icon = NULL 42 | 43 | item = Next empty desktop 44 | cmd = bspc window -d next.free 45 | icon = NULL 46 | 47 | item = Last focused desktop 48 | cmd = bspc window -d last 49 | icon = NULL 50 | 51 | separator 52 | 53 | item = Swap with biggest window 54 | cmd = bspc window -w biggest.local 55 | icon = NULL 56 | 57 | item = Move to another monitor 58 | cmd = 59 | icon = NULL 60 | 61 | 62 | Submenu = Desktop 63 | 64 | icon = NULL 65 | 66 | Submenu = Flip 67 | 68 | icon = NULL 69 | 70 | item = Vertical flip 71 | cmd = bspc desktop -F horizontal 72 | icon = NULL 73 | 74 | item = Horizontal flip 75 | cmd = bspc desktop -F vertical 76 | icon = NULL 77 | 78 | Submenu = Rotate 79 | 80 | icon = NULL 81 | 82 | item = +90° 83 | cmd = bspc desktop -R 90 84 | icon = NULL 85 | 86 | item = -90° 87 | cmd = bspc desktop -R -90 88 | icon = NULL 89 | 90 | item = +180° 91 | cmd = bspc desktop -R 180 92 | icon = NULL 93 | 94 | separator 95 | 96 | item = Balance windows 97 | cmd = bspc desktop -B 98 | icon = NULL 99 | 100 | item = Equalize windows 101 | cmd = bspc desktop -E 102 | icon = NULL 103 | 104 | separator 105 | 106 | item = Rename current desktop 107 | cmd = bspwm-zenity desktop-rename 108 | icon = NULL 109 | 110 | separator 111 | 112 | item = Add a desktop 113 | cmd = bspwm-zenity desktop-add 114 | icon = NULL 115 | 116 | item = Remove a desktop 117 | cmd = bspwm-zenity desktop-remove 118 | icon = NULL 119 | 120 | separator 121 | 122 | item = Swap with desktop 123 | cmd = bspwm-zenity desktop-swap 124 | icon = NULL 125 | 126 | item = Move to another monitor 127 | cmd = 128 | icon = NULL 129 | 130 | 131 | Submenu = Manual 132 | 133 | icon = NULL 134 | 135 | Submenu = Manual split 136 | 137 | icon = NULL 138 | 139 | item = Up 140 | cmd = bspc window -p up 141 | icon = NULL 142 | 143 | item = Right 144 | cmd = bspc window -p right 145 | icon = NULL 146 | 147 | item = Left 148 | cmd = bspc window -p left 149 | icon = NULL 150 | 151 | item = Down 152 | cmd = bspc window -p down 153 | icon = NULL 154 | 155 | Submenu = Split ratio 156 | 157 | icon = NULL 158 | 159 | item = 25% 160 | cmd = bspc window -r 0.25 161 | icon = NULL 162 | 163 | item = 50% 164 | cmd = bspc window -r 0.5 165 | icon = NULL 166 | 167 | item = 75% 168 | cmd = bspc window -r 0.75 169 | icon = NULL 170 | 171 | separator 172 | 173 | item = Move to last manual split 174 | cmd = bspc window -w last.manual 175 | icon = NULL 176 | 177 | item = Cancel all splits 178 | cmd = bspc desktop -c 179 | icon = NULL 180 | 181 | 182 | separator 183 | 184 | item = Next urgent window 185 | cmd = bspc window -f next.urgent 186 | icon = NULL 187 | 188 | separator 189 | 190 | item = Close window 191 | cmd = bspc window -c 192 | icon = NULL 193 | 194 | item = Close the window class 195 | cmd = xdo close -cd 196 | icon = NULL 197 | -------------------------------------------------------------------------------- /Stendhal/Panel/Lists/whid: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Close the dzen popup if it's already opened 3 | pgrep -f "dzen2 -p -m -y 18 -x -408 -w 408 -h 20" > /dev/null && pkill -f "dzen2 -p -m -y 18 -x -408 -w 408 -h 20" && exit 4 | 5 | file="/tmp/.minimized" 6 | touch $file 7 | 8 | updatePanel() { 9 | lines=$1 10 | 11 | # Dirty trick to avoid race condition 12 | sleep 0.1 13 | 14 | if [ "$lines" -eq "0" ] 15 | then 16 | echo "n" > /tmp/panel-fifo 17 | else 18 | echo "n%{A:whid dzen &:}%{B#ffA73E28} $lines %{B-}%{A}" > /tmp/panel-fifo 19 | fi 20 | } 21 | 22 | case $1 in 23 | hide) 24 | lines=$(wc -l < $file) 25 | 26 | if [[ $lines -ge 10 ]]; then ## Fight against bad practices 27 | notify-send "Ten windows are already hidden" "You should consider closing some before hiding even more." -i warning 28 | else 29 | focusedDesktop=$(xdotool get_desktop) 30 | focusedID=$(xdo id) 31 | focusedName=$(xdotool getwindowname $focusedID) 32 | 33 | echo "$focusedID $focusedDesktop $focusedName" >> $file && xdo hide $focusedID && updatePanel $(($lines + 1)) && notify-send "A window has been hidden (${lines})." "$focusedName" -i warning 34 | fi 35 | ;; 36 | dmenu) 37 | miniList=$(cat $file) 38 | 39 | # Dmenu cannot draw more than 30 lines 40 | lines=$(wc -l < $file) 41 | if [[ $lines -gt 30 ]] 42 | then linesDisplayed=30 43 | else linesDisplayed=$lines 44 | fi 45 | 46 | # If the list is empty 47 | if [ -z "$miniList" ] 48 | then 49 | miniList=" Nothing is hidden!" 50 | linesDisplayed=1 51 | fi 52 | 53 | # Calculate where to draw the dmenu popup. 54 | # Comment that line if you use vanilla dmenu. 55 | yPos=$((410-$linesDisplayed*10)) 56 | 57 | # Launch dmenu 58 | # Comment that line if you use vanilla dmenu, and not one patched with eye candy 59 | lineNumber=$(echo "$miniList" | cut -d " " -f 3- | nl -w 3 -n rn | sed -r 's/^([ 0-9]+)[ \t]*(.*)$/\1 - \2/' | dmenu -b -i -x 415 -y $yPos -w 450 -l $linesDisplayed -h 20 -fn 'Lucida Grande 8' -nb '#201F1D' -nf '#eddec9' -sb '#8F3724' -sf '#EDDEC9' -p 'Hidden:' | cut -d '-' -f -1) 60 | 61 | # If you use vanilla dmenu, enable the following line: 62 | #lineNumber=$(echo "$miniList" | cut -d " " -f 2- | nl -w 3 -n rn | sed -r 's/^([ 0-9]+)[ \t]*(.*)$/\1 - \2/' | dmenu -b -i -l $linesDisplayed -p 'Hidden:' | cut -d '-' -f -1) 63 | 64 | # If you exited dmenu without selecting anything or if the list was empty 65 | [ -z "$lineNumber" -o "$miniList" = " Nothing is hidden!" ] && exit 66 | 67 | # Show the selected hidden window 68 | selectedID=$(sed -n "$lineNumber p" $file | cut -d ' ' -f 1) 69 | selectedDesktop=$(sed -n "$lineNumber p" $file | cut -d ' ' -f 2) 70 | xdotool set_desktop $selectedDesktop 71 | xdo show $selectedID && sed -i "${lineNumber}d" $file && updatePanel $(($lines - 1)) 72 | ;; 73 | last) 74 | lines=$(wc -l < $file) 75 | selectedID=$(tail -n 1 $file | cut -d ' ' -f 1) 76 | xdo show $selectedID && sed -i "${lineNumber}d" $file && updatePanel $(($lines - 1)) 77 | ;; 78 | dzen) 79 | # Loads color and font settings 80 | . panel-settings 81 | 82 | miniList=$(cat $file) 83 | lines=$(wc -l < $file) 84 | 85 | # Perform necessary checks 86 | [ "$lines" -eq "0" ] && exit 87 | 88 | # Dzen cannot draw more than 10 lines 89 | if [[ $lines -gt 10 ]] 90 | then linesDisplayed=10 91 | else linesDisplayed=$lines 92 | fi 93 | 94 | (echo "^fg(#878438)Hidden^fg() windows:" 95 | echo "$miniList" | cut -d " " -f 2- | nl -w 3 -n rn | sed -r 's/^([ 0-9]+)[ \t]*(.*)$/\^bg(#9D534A) \^bg(#201F1D)\1 \^bg() \2/') | dzen2 -p -m -y 18 -x -408 -w 408 -h 20 -fn "$dzen_font" -fg "$dzen_fg" -bg "$dzen_bg2" -l $lines -e "onstart=uncollapse;button1=menuprint,exit;button3=exit" | while read line; do 96 | line=$(echo $line | cut -d ' ' -f 1) 97 | selectedID=$(sed -n "$line p" $file | cut -d ' ' -f 1) 98 | 99 | xdo show $selectedID && sed -i "${line}d" $file && updatePanel $(($lines - 1)) 100 | done 101 | ;; 102 | esac 103 | -------------------------------------------------------------------------------- /Stendhal/Panel/Monitor/panel-monitor: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ### Load color settings ### 4 | . panel-settings 5 | 6 | ### Close the dzen popup if it exists ### 7 | dslider close 8 | 9 | ### Create the menu ### 10 | # If there is no argument => Create just the pink buttons 11 | # If there is an argument => Create the pink buttons and expand the appropriate button 12 | 13 | monitor="" 14 | 15 | ## Configure each button title (the name that will be displayed in the panel) 16 | # If your button title is longer than two characters, you will have to do some 17 | # adjustments in dslider-content 18 | # The button title can be as long as you want, but the button variable must 19 | # be *TWO CHARACTERS LONG*! 20 | # Xx="