Introduce new Dracula-based fluorescence theme
This commit is contained in:
		
							parent
							
								
									a33c346afc
								
							
						
					
					
						commit
						f044edddb6
					
				|  | @ -1,44 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| # bspc-focus | ||||
| # Jump to the next window in a direction. If -m is supplied, jump to the next | ||||
| # monitor in that direction. | ||||
| # | ||||
| # Makes switching nodes more intuitive. | ||||
| # | ||||
| # Usage: bspc-focus [-m] (west|south|north|east) | ||||
| # Example: | ||||
| #   + bspc-focus south | ||||
| #   + bspc-focus -m west | ||||
| 
 | ||||
| set -e | ||||
| 
 | ||||
| leap= | ||||
| if [[ $1 == -m ]]; then | ||||
|     leap=1; shift | ||||
| fi | ||||
| dir=$1 | ||||
| opposite= | ||||
| 
 | ||||
| case $dir in | ||||
|     west)  opposite=east  ;; | ||||
|     east)  opposite=west  ;; | ||||
|     north) opposite=north ;; | ||||
|     south) opposite=south ;; | ||||
|     *) >&2 echo "Not a valid direction: $dir" | ||||
|         exit 1 | ||||
| esac | ||||
| 
 | ||||
| if [[ -n $leap ]]; then | ||||
|     # jump to monitor in direction | ||||
|     bspc monitor -f "$dir" | ||||
| else | ||||
|     # jump to window in direction (unless at edge of last monitor) | ||||
|     if ! bspc node -f "$dir.local"; then | ||||
|         if [[ $(bspc query -M -m "$dir") ]]; then | ||||
|             bspc monitor -f "$dir" | ||||
|             # Ensure we start at the edge of the window we arrived from | ||||
|             while bspc node -f "$opposite.local"; do :; done | ||||
|         fi | ||||
|     fi | ||||
| fi | ||||
							
								
								
									
										47
									
								
								bin/bspwm/focus
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										47
									
								
								bin/bspwm/focus
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,47 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| # Script: bspc-focus | ||||
| # Author: Henrik Lissner | ||||
| # Usage: | ||||
| #   bspc-focus [-m] (west|south|north|east) | ||||
| #   bspc-focus south | ||||
| #   bspc-focus -m west | ||||
| # | ||||
| # Focus the next window in direction. If -m is supplied, jump to the next | ||||
| # monitor in that direction. | ||||
| # | ||||
| # The behavior of the base 'bspc node -f' is odd when crossing screens. It will | ||||
| # focus the last selected window on that screen, rather than the window on the | ||||
| # connecting edge, which is unintuitive. | ||||
| 
 | ||||
| set -e | ||||
| 
 | ||||
| leap= | ||||
| if [[ $1 == -m ]]; then | ||||
|     leap=1; shift | ||||
| fi | ||||
| dir=$1 | ||||
| opposite= | ||||
| 
 | ||||
| case $dir in | ||||
|   west)  opposite=east  ;; | ||||
|   east)  opposite=west  ;; | ||||
|   north) opposite=north ;; | ||||
|   south) opposite=south ;; | ||||
|   *) >&2 echo "Not a valid direction: $dir" | ||||
|      exit 1 | ||||
| esac | ||||
| 
 | ||||
| if [[ -n $leap ]]; then | ||||
|   # jump to monitor in direction | ||||
|   bspc monitor -f "$dir" | ||||
| else | ||||
|   # jump to window in direction (unless at edge of last monitor) | ||||
|   if ! bspc node -f "$dir.local"; then | ||||
|     if [[ $(bspc query -M -m "$dir") ]]; then | ||||
|       bspc monitor -f "$dir" | ||||
|       # Ensure we start at the edge of the window we arrived from | ||||
|       while bspc node -f "$opposite.local"; do :; done | ||||
|     fi | ||||
|   fi | ||||
| fi | ||||
							
								
								
									
										22
									
								
								bin/bspwm/presel
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								bin/bspwm/presel
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| #!/usr/bin/env cached-nix-shell | ||||
| #! nix-shell -i zsh -p jshon | ||||
| 
 | ||||
| # Script: bspc-presel | ||||
| # Author: Henrik Lissner | ||||
| # Usage: | ||||
| #   bspc-presel RATIO | ||||
| #   bspc-presel 0.2 | ||||
| # | ||||
| # Wrote this to invert the ratio on east/south-bound preselections. In English | ||||
| # that means bspc node -p 0.2 should resize the preselection to 20%, whether or | ||||
| # not it's on the west or east side of the window (or north or south side), | ||||
| # which isn't the case by default. | ||||
| # | ||||
| # NOTE: We use zsh for this because bash chokes on float arithmetic. | ||||
| 
 | ||||
| shift  # nix-shell passes script path as $1 | ||||
| ratio="$1" | ||||
| case "$(bspc query -T -n focused | jshon -e presel -e splitDir | tr -d \")" in | ||||
|   west|north) bspc node -o $ratio ;; | ||||
|   east|south) bspc node -o $(( 1.0 - ratio )) ;; | ||||
| esac | ||||
							
								
								
									
										101
									
								
								bin/bspwm/subtract-presel
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										101
									
								
								bin/bspwm/subtract-presel
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,101 @@ | |||
| #!/usr/bin/env cached-nix-shell | ||||
| #! nix-shell -i zsh -p jshon wmutils-core | ||||
| 
 | ||||
| # Script: bspc-subtract-presel | ||||
| # Author: Henrik Lissner (w/ credit to @Chrysostomus) | ||||
| # Usage: | ||||
| #   bspc-resize-to-presel | ||||
| # | ||||
| # (Adapted from Chrysostomus/bspwm-scripts/bin/resizetopresel.sh) | ||||
| # | ||||
| # This script resizes the current window by "subtracting" the bspwm preselection | ||||
| # on the current node. In English, that means this will reduce the window's | ||||
| # width by 20%: | ||||
| # | ||||
| #   bspc node -p east -o 0.2 && bspc-subtract-presel | ||||
| # | ||||
| # NOTE: We use zsh for this because bash chokes on float arithmetic. | ||||
| 
 | ||||
| # Check if the brother node is a receptacle | ||||
| if [[ $(bspc query -T -n @brother/ | jshon -e client) = null ]]; then | ||||
|   # Yep, it's a receptacle. Get the real dimensions | ||||
|   eval $(grep "window_gap" ~/.config/bspwm/rc.d/theme | tr -cd [0-9]) | ||||
|   # Get orientation | ||||
|   wattr xywh $(pfw) | read focused_x focused_y focused_width focused_height | ||||
|   receptacle_y=$(bspc query -T -n @brother/ | jshon -e rectangle -e y) | ||||
|   if [[ "$focused_y" -eq "$receptacle_y" ]]; then | ||||
|     receptacle_width=$(bspc query -T -n @brother/ | jshon -e rectangle -e width) | ||||
|     receptacle_x=$(bspc query -T -n @brother/ | jshon -e rectangle -e x) | ||||
|     # receptacle and window have the same height, so they are side by side | ||||
|     if [[ receptacle_x -gt focused_x ]]; then | ||||
|       echo "receptacle is right of the window" | ||||
|       # get the true window dimension | ||||
|       true_dim=$(( receptacle_width + gap )) | ||||
|       # kill the repectacle | ||||
|       for i in $(bspc query -N -n .leaf.!window.local); do bspc node $i -k; done | ||||
|       # resize the window | ||||
|       bspc node @east -r -$true_dim || bspc node @west -r +$true_dim | ||||
|     else | ||||
|         echo "receptacle is left of the window" | ||||
|         # get the true window dimension | ||||
|         true_dim=$(( receptacle_width + gap )) | ||||
|         # kill the repectacle | ||||
|         for i in $(bspc query -N -n .leaf.!window.local); do bspc node $i -k; done | ||||
|         # resize the window | ||||
|         bspc node @west -r +$true_dim || bspc node @east -r -$true_dim | ||||
|     fi | ||||
|   else | ||||
|       receptacle_height=$(bspc query -T -n @brother/ | jshon -e rectangle -e height) | ||||
|       # width is necessarily equal if height is not, because the nodes are | ||||
|       # brothers Window are on the top of each other | ||||
|       if [[ receptacle_y -gt focused_y ]]; then | ||||
|         echo "receptacle is below the window" | ||||
|         # get the true window dimension | ||||
|         true_dim=$(( receptacle_height + gap)) | ||||
|         # kill the repectacle | ||||
|         for i in $(bspc query -N -n .leaf.!window.local); do bspc node $i -k; done | ||||
|         # resize the window | ||||
|         bspc node @south -r -$true_dim || bspc node @north -r +$true_dim | ||||
|       else | ||||
|           echo "receptacle is above the window" | ||||
|           # get the true window dimension | ||||
|           true_dim=$(( receptacle_height + gap)) | ||||
|           # kill the repectacle | ||||
|           for i in $(bspc query -N -n .leaf.!window.local); do bspc node $i -k; done | ||||
|           # resize the window | ||||
|           bspc node @north -r +$true_dim || bspc node @south -r -$true_dim | ||||
|       fi | ||||
|   fi | ||||
|   echo $true_dim | ||||
|   exit 0 | ||||
| fi | ||||
| 
 | ||||
| # If the focused window is not preselected, do nothing | ||||
| [[ "$(bspc query -T -n focused | jshon -e presel)" == null ]] && exit 0 | ||||
| 
 | ||||
| dir=$(bspc query -T -n focused | jshon -e presel -e splitDir | tr -d \") | ||||
| ratio=$(bspc query -T -n focused | jshon -e presel -e splitRatio) | ||||
| case "$dir" in | ||||
|   west) | ||||
|     cur=$(bspc query -T -n focused | jshon -e rectangle -e width) | ||||
|     bspc node @west -r +$((${cur}*${ratio})) || \ | ||||
|         bspc node @east -r -$((${cur}*${ratio})) | ||||
|     ;; | ||||
|   east) | ||||
|     cur=$(bspc query -T -n focused | jshon -e rectangle -e width) | ||||
|     bspc node @east -r -$((${cur}*(1.0-${ratio}))) || \ | ||||
|         bspc node @west -r +$((${cur}*${ratio})) | ||||
|     ;; | ||||
| 
 | ||||
|   north) | ||||
|     cur=$(bspc query -T -n focused | jshon -e rectangle -e height) | ||||
|     bspc node @north -r +$((${cur}*${ratio})) || \ | ||||
|         bspc node @south -r -$((${cur}*${ratio})) | ||||
|     ;; | ||||
|   south) | ||||
|     cur=$(bspc query -T -n focused | jshon -e rectangle -e height) | ||||
|     bspc node @south -r -$(( ${cur} * (1.0 - ${ratio}) )) || \ | ||||
|         bspc node @north -r +$(( ${cur} * ${ratio} )) | ||||
| esac | ||||
| 
 | ||||
| bspc node -p cancel | ||||
|  | @ -1,15 +1,18 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| # bspc-swap | ||||
| # swaps current window with the next window in a direction. If -m is set, moves | ||||
| # window to the next monitor in that direction. | ||||
| # Script: bspc-swap | ||||
| # Author: Henrik Lissner | ||||
| # Usage: | ||||
| #   bspc-swap [-m] (west|south|north|east) | ||||
| #   bspc-swap south | ||||
| #   bspc-swap -m west | ||||
| # | ||||
| # Makes swapping nodes more intuitive. | ||||
| # Swaps current window with the window in a direction. If -m is set, move window | ||||
| # to the next monitor in that direction. | ||||
| # | ||||
| # Usage: bspc-swap (west|south|north|east) (1|0) | ||||
| # Example: | ||||
| #   + bspc-swap south | ||||
| #   + bspc-swap -m west | ||||
| # The behavior of the base 'bspc node -s' is odd when crossing screens. It will | ||||
| # swaps with the last selected window on that screen, rather than the window on | ||||
| # the connecting edge, which is unintuitive. | ||||
| 
 | ||||
| set -e | ||||
| 
 | ||||
|  | @ -1,6 +1,5 @@ | |||
| #!/usr/bin/env sh | ||||
| rofi -show drun \ | ||||
|      -modi drun,run \ | ||||
|      -display-drun apps \ | ||||
|      -show-icons \ | ||||
|      -theme theme/appmenu.rasi | ||||
|  | @ -5,7 +5,7 @@ | |||
| # | ||||
| # requires: sqlite3 | ||||
| 
 | ||||
| ROFI_CMD='rofi -dmenu -theme theme/browsermenu.rasi -columns 1 -markup-rows -multi-select -p browser -i' | ||||
| ROFI_CMD='rofi -dmenu -theme theme/bookmarkmenu.rasi -columns 1 -markup-rows -multi-select -p browser -i' | ||||
| SEP=${1:-'{{::}}'} | ||||
| 
 | ||||
| _do_rofi() { | ||||
|  | @ -28,20 +28,20 @@ case ${BROWSER:-firefox} in | |||
|         # The db can be locked from time to time. This is inefficient, but | ||||
|         # places.sqlite is usually under 30mb so this should be instant, and | ||||
|         # /tmp is cleared at boot so... | ||||
|         # if ! find /tmp/rofi-browsermenu -mmin +60 2>&1 >/dev/null; then | ||||
|         # if ! find /tmp/rofi-bookmarkmenu -mmin +60 2>&1 >/dev/null; then | ||||
|           cp "$dir/places.sqlite" "/tmp/places.sqlite" | ||||
|           sqlite3 -separator $SEP "/tmp/places.sqlite" \ | ||||
|             "SELECT DISTINCT title, url FROM moz_places \ | ||||
|             WHERE title IS NOT NULL \ | ||||
|             ORDER BY last_visit_date DESC" >/tmp/rofi-browsermenu | ||||
|           # sqlite3 -separator $SEP "/tmp/places.sqlite" \ | ||||
|           #   "SELECT DISTINCT title, url FROM moz_places \ | ||||
|           #   WHERE title IS NOT NULL \ | ||||
|           #   ORDER BY last_visit_date DESC" >/tmp/rofi-bookmarkmenu | ||||
|           sqlite3 -separator $SEP "/tmp/places.sqlite" \ | ||||
|             "SELECT DISTINCT mb.title, mp.url FROM moz_bookmarks mb \ | ||||
|             INNER JOIN moz_places mp ON mp.id = mb.fk \ | ||||
|             WHERE mb.type = 1 AND mb.title IS NOT NULL \ | ||||
|             ORDER BY mp.frecency DESC \ | ||||
|             LIMIT 200" >>/tmp/rofi-browsermenu | ||||
|             LIMIT 200" >>/tmp/rofi-bookmarkmenu | ||||
|         # fi | ||||
|         cat /tmp/rofi-browsermenu | sed -e 's#&#&#g' -e 's#<#<#g' -e 's#>#>#g' | _do_rofi | ||||
|         cat /tmp/rofi-bookmarkmenu | sed -e 's#&#&#g' -e 's#<#<#g' -e 's#>#>#g' | _do_rofi | ||||
|         break | ||||
|       fi | ||||
|     done | ||||
|  | @ -49,11 +49,11 @@ case ${BROWSER:-firefox} in | |||
|   qutebrowser) | ||||
|     { | ||||
|       sed -e 's/ /{{::}}/' urls | awk -F'{{::}}' '{printf "%s{{::}}%s\n", $2, $1}' | ||||
|       sqlite3 -separator $SEP "$XDG_DATA_HOME/qutebrowser/history.sqlite" \ | ||||
|         "SELECT title, url FROM History \ | ||||
|         WHERE title != '' \ | ||||
|         GROUP BY url \ | ||||
|         ORDER BY atime DESC" | ||||
|       # sqlite3 -separator $SEP "$XDG_DATA_HOME/qutebrowser/history.sqlite" \ | ||||
|       #   "SELECT title, url FROM History \ | ||||
|       #   WHERE title != '' \ | ||||
|       #   GROUP BY url \ | ||||
|       #   ORDER BY atime DESC" | ||||
|     } | _do_rofi | ||||
|     ;; | ||||
|   *) rofi -e "No known browser" ;; | ||||
|  | @ -1,5 +1,6 @@ | |||
| #!/usr/bin/env sh | ||||
| DIR="$(fd -L --type d . $HOME | rofi -dmenu -i -p files -columns 1 -theme theme/appmenu.rasi)" | ||||
| cd $HOME | ||||
| DIR="$(fd -L -d 4 --type d . | rofi -dmenu -i -p "~/" -theme theme/filemenu.rasi)" | ||||
| if [ -d "$DIR" ]; then | ||||
|   cd "$DIR" | ||||
|   if [[ $1 == "-x" ]]; then | ||||
							
								
								
									
										0
									
								
								bin/rofi/networkmenu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								bin/rofi/networkmenu
									
									
									
									
									
										Normal file
									
								
							|  | @ -6,10 +6,11 @@ | |||
| # Example: passmenu [RESUME] | ||||
| 
 | ||||
| ROFI_CMD='rofi -dmenu -theme theme/passmenu.rasi' | ||||
| ROFI_MSG_CMD='rofi -theme theme/passmenu.rasi -markup -e' | ||||
| set -e | ||||
| shopt -s nullglob globstar | ||||
| 
 | ||||
| for prog in xclip notify-send pass; do | ||||
| for prog in xclip pass; do | ||||
|   if ! command -v "$prog" >/dev/null; then | ||||
|     >&2 echo "$prog not installed, aborting" | ||||
|     exit 1 | ||||
|  | @ -42,11 +43,11 @@ else | |||
|   password_files=( "$prefix"/**/*.gpg  ) | ||||
|   password_files=( "${password_files[@]#"$prefix"/}"  ) | ||||
|   password_files=( "${password_files[@]%.gpg}" ) | ||||
|   entry=$(printf "%s\n" "${password_files[@]}" | $ROFI_CMD -p pass -filter "$url") | ||||
|   entry=$(printf "%s\n" "${password_files[@]}" | $ROFI_CMD -p "..." -filter "$url") | ||||
| fi | ||||
| 
 | ||||
| if [[ -z $entry ]]; then | ||||
|   notify-send --urgency=critical "Failed to select $entry" | ||||
|   $ROFI_MSG_CMD "<span foreground="red">Failed to select $entry</span>" | ||||
|   exit 1 | ||||
| fi | ||||
| 
 | ||||
|  | @ -54,14 +55,14 @@ echo "$entry" >/tmp/_upm | |||
| secrets="$(pass show "$entry")" | ||||
| if [[ -n $secrets ]]; then | ||||
|   fields=$(awk -F': ' 'NR>1 && !/^otpauth:/ {print $1}' <<<"$secrets") | ||||
|   field=$(printf "password\n%s\notp\n" "${fields[@]}" | $ROFI_CMD -p "pass ($entry) > ") | ||||
|   field=$(printf "password\n%s\notp\n" "${fields[@]}" | $ROFI_CMD -p "$entry") | ||||
|   case $field in | ||||
|     password) pass -c "$entry" ;; | ||||
|     otp) printf "%s" "$(pass otp -c "$entry")" ;; | ||||
|     *) printf "%s" "$(awk -v "key=$field:" '$1 == key {print $2}' <<<"$secrets")" | xclip -selection clipboard -in ;; | ||||
|   esac | ||||
|   notify-send --urgency=low "<b>$entry/$field</b>" "Copied to clipboard for 45s" | ||||
|   $ROFI_MSG_CMD "Copied <b>$entry/$field</b> to clipboard for 45s" | ||||
| else | ||||
|   notify-send --urgency=critical "Failed to retrieve $entry" | ||||
|   $ROFI_MSG_CMD "<span foreground="red">Failed to retrieve $entry</span>" | ||||
|   exit 2 | ||||
| fi | ||||
							
								
								
									
										31
									
								
								bin/rofi/powermenu
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										31
									
								
								bin/rofi/powermenu
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,31 @@ | |||
| #!/usr/bin/env sh | ||||
| 
 | ||||
| rofi_command="rofi -theme theme/powermenu.rasi" | ||||
| 
 | ||||
| ### Options ### | ||||
| power_off="\tShutdown" | ||||
| reboot="\tReboot" | ||||
| lock="\tLock" | ||||
| suspend="鈴\tSleep" | ||||
| log_out="\tLogout" | ||||
| # Variable passed to rofi | ||||
| options="$power_off\n$reboot\n$lock\n$suspend\n$log_out" | ||||
| 
 | ||||
| case "$(echo -e "$options" | $rofi_command -dmenu -selected-row 2)" in | ||||
|     $power_off) | ||||
|         systemctl poweroff | ||||
|         ;; | ||||
|     $reboot) | ||||
|         systemctl reboot | ||||
|         ;; | ||||
|     $lock) | ||||
|         zzz | ||||
|         ;; | ||||
|     $suspend) | ||||
|         dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause | ||||
|         systemctl suspend | ||||
|         ;; | ||||
|     $log_out) | ||||
|         bspc quit | ||||
|         ;; | ||||
| esac | ||||
|  | @ -1,2 +0,0 @@ | |||
| #!/usr/bin/env sh | ||||
| rofi -show window -show-icons -theme theme/windowmenu.rasi | ||||
							
								
								
									
										0
									
								
								bin/rofi/spotifymenu
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								bin/rofi/spotifymenu
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										4
									
								
								bin/rofi/windowmenu
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										4
									
								
								bin/rofi/windowmenu
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| #!/usr/bin/env sh | ||||
| rofi -show window \ | ||||
|      -show-icons \ | ||||
|      -theme theme/windowmenu.rasi | ||||
|  | @ -1,7 +1,7 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| SCRID=scratch | ||||
| CMD='tmux new-session -A -s scratch -n scratch' | ||||
| CMD=${1:-'tmux new-session -A -s scratch -n scratch'} | ||||
| focused=$(xdotool getactivewindow) | ||||
| scratch=$(xdotool search --onlyvisible --classname $SCRID) | ||||
| if [[ -n $scratch ]]; then | ||||
|  | @ -12,16 +12,13 @@ if [[ -n $scratch ]]; then | |||
|     fi | ||||
| elif command -v alacritty >/dev/null; then | ||||
|     alacritty --class $SCRID \ | ||||
|         -d 90 26 \ | ||||
|         -e $SHELL -c "$CMD" | ||||
| elif command -v urxvt >/dev/null; then | ||||
|     urxvt -name $SCRID \ | ||||
|           -geometry 100x26 \ | ||||
|           -e $SHELL -c "$CMD" | ||||
| elif command -v xst >/dev/null; then | ||||
|     xst -t $SCRID -n $SCRID -c $SCRID \ | ||||
|         -f "$(xrdb -query | grep 'scratch\.font' | cut -f2)" \ | ||||
|         -g 100x26 \ | ||||
|         -e $SHELL -c "$CMD" | ||||
| else | ||||
|     >&2 echo "No shell to launch the scratch terminal with" | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| #!/bin/sh | ||||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| export MONITOR=$(xrandr -q | grep primary | cut -d' ' -f1) | ||||
| export MONITORS=( $(xrandr -q | grep ' connected' | cut -d' ' -f1) ) | ||||
| MONITOR=${MONITOR:-${MONITORS[0]}} | ||||
| 
 | ||||
| # Only have workspaces for primary monitor | ||||
| bspc monitor $MONITOR -d {1,2,3,4,5} | ||||
| bspc monitor $MONITOR -d {1,2,3,4,5,6} | ||||
| 
 | ||||
| bspc config remove_disabled_monitors true | ||||
| bspc config remove_unplugged_monitors true | ||||
|  | @ -15,14 +15,12 @@ bspc config remove_unplugged_monitors true | |||
| bspc rule -r '*' | ||||
| 
 | ||||
| bspc rule -a Pinentry state=floating center=on | ||||
| bspc rule -a Emacs split_ratio=0.28 state=fullscreen border=off | ||||
| bspc rule -a xst-256color border=off | ||||
| bspc rule -a Emacs split_ratio=0.28 state=tiled | ||||
| bspc rule -a Firefox split_ratio=0.32 | ||||
| bspc rule -a feh state=fullscreen | ||||
| bspc rule -a 'Emacs:org*' state=floating | ||||
| bspc rule -a 'Emacs:scratch' state=floating | ||||
| bspc rule -a '*:scratch' state=floating sticky=on center=on | ||||
| 
 | ||||
| bspc rule -a '*:scratch' state=floating sticky=on center=on border=off rectangle=1000x600+0+0 | ||||
| 
 | ||||
| # | ||||
| for file in $XDG_CONFIG_HOME/bspwm/rc.d/*; do | ||||
|  |  | |||
|  | @ -10,19 +10,12 @@ super + t | |||
| super + apostrophe | ||||
| 	bspc window -s last | ||||
| 
 | ||||
| # focus/swap the node in the given direction | ||||
| super + {_,ctrl +}{h,j,k,l} | ||||
| 	bspc-focus {_,-m }{west,south,north,east} | ||||
| 
 | ||||
| super + shift + {_,ctrl +}{h,j,k,l} | ||||
| 	bspc-swap {_,-m }{west,south,north,east} | ||||
| 
 | ||||
| super + {_,shift +}{1-9,0} | ||||
| 	bspc {desktop -f,node -d} {1-9,10} | ||||
| 
 | ||||
| super + Return | ||||
| 	xst -e bash -c "tmux new || tmux attach" | ||||
| 
 | ||||
| ctrl + super + Return | ||||
| 	xst | ||||
| 
 | ||||
| super + grave | ||||
| 	scratch | ||||
| 
 | ||||
|  | @ -30,13 +23,16 @@ super + shift + grave | |||
| 	emacsclient -e '(open-scratch-frame)' | ||||
| 
 | ||||
| super + space | ||||
| 	rofi-appmenu | ||||
| 	~/.dotfiles/bin/rofi/appmenu | ||||
| 
 | ||||
| super + Tab | ||||
| 	rofi-windowmenu | ||||
| 	~/.dotfiles/bin/rofi/windowmenu | ||||
| 
 | ||||
| super + backslash | ||||
| 	rofi-passmenu | ||||
| 	~/.dotfiles/bin/rofi/passmenu | ||||
| 
 | ||||
| super + slash | ||||
| 	~/.dotfiles/bin/rofi/filemenu -x | ||||
| 
 | ||||
| super + Escape | ||||
| 	pkill -USR1 -x sxhkd | ||||
|  | @ -48,11 +44,47 @@ super + Escape | |||
| # | ||||
| ## | ||||
| 
 | ||||
| # Toggle floating/fullscreen | ||||
| ## Toggle floating/fullscreen | ||||
| super + {_,ctrl + }f | ||||
| 	bspc node -t ~{floating,fullscreen} | ||||
| 
 | ||||
| 
 | ||||
| super + {_,ctrl +}{h,j,k,l} | ||||
| 	~/.dotfiles/bin/bspwm/focus {_,-m }{west,south,north,east} | ||||
| 
 | ||||
| super + shift + {_,ctrl +}{h,j,k,l} | ||||
| 	~/.dotfiles/bin/bspwm/swap {_,-m }{west,south,north,east} | ||||
| 
 | ||||
| 
 | ||||
| ## Resize by preselection | ||||
| super + alt + {1-9} | ||||
| 	~/.dotfiles/bin/bspwm/presel 0.{1-9} | ||||
| 
 | ||||
| super + alt + {h,j,k,l} | ||||
| 	bspc node -p {west,south,north,east} | ||||
| 
 | ||||
| super + alt + Return | ||||
| 	~/.dotfiles/bin/bspwm/subtract-presel | ||||
| 
 | ||||
| super + alt + Delete | ||||
| 	bspc node -p cancel | ||||
| 
 | ||||
| super + {_,shift +}{1-9,0} | ||||
| 	bspc {desktop -f,node -d} {1-9,10}; | ||||
| 
 | ||||
| # expand a window by moving one of its side outward | ||||
| super + {Left,Down,Up,Right} | ||||
| 	bspc node -z {left -40 0,bottom 0 40,top 0 -40,right 40 0} | ||||
| 
 | ||||
| # contract a window by moving one of its side inward | ||||
| super + ctrl + {Left,Down,Up,Right} | ||||
| 	bspc node -z {right -40 0,top 0 40,bottom 0 -40,left 40 0} | ||||
| 
 | ||||
| # move a floating window | ||||
| super + shift + {Left,Down,Up,Right} | ||||
| 	bspc node -v {-40 0,0 40,0 -40,40 0} | ||||
| 
 | ||||
| 
 | ||||
| # | ||||
| ## Media keys | ||||
| 
 | ||||
|  | @ -61,10 +93,10 @@ Print | |||
| 	scrcap | ||||
| # screencast region to mp4 | ||||
| super + Print | ||||
| 	scrrec -s ~/shared/$(date +%F-%T).mp4 | ||||
| 	scrrec -s ~/recordings/$(date +%F-%T).mp4 | ||||
| # screencast region to gif | ||||
| super + ctrl + Print | ||||
| 	scrrec -s ~/shared/$(date +%F-%T).gif | ||||
| 	scrrec -s ~/recordings/$(date +%F-%T).gif | ||||
| 
 | ||||
| XF86MonBrightnessUp | ||||
| 	light -A 5 | ||||
|  |  | |||
|  | @ -32,7 +32,7 @@ | |||
|     ## Services | ||||
|     <modules/services/syncthing.nix> | ||||
|     ## Theme | ||||
|     <modules/themes/aquanaut> | ||||
|     <modules/themes/fluorescence> | ||||
|   ]; | ||||
| 
 | ||||
|   networking.networkmanager.enable = true; | ||||
|  |  | |||
|  | @ -2,7 +2,6 @@ | |||
| 
 | ||||
| { | ||||
|   my = { | ||||
|     env.PATH = [ <bin/rofi> ]; | ||||
|     # link recursively so other modules can link files in its folder | ||||
|     home.xdg.configFile."rofi" = { | ||||
|       source = <config/rofi>; | ||||
|  | @ -17,22 +16,22 @@ | |||
| 
 | ||||
|       # Fake rofi dmenu entries | ||||
|       (makeDesktopItem { | ||||
|         name = "rofi-browsermenu"; | ||||
|         name = "rofi-bookmarkmenu"; | ||||
|         desktopName = "Open Bookmark in Browser"; | ||||
|         icon = "bookmark-new-symbolic"; | ||||
|         exec = "${<config/rofi>}/bin/rofi-browsermenu"; | ||||
|         exec = "${<bin/rofi/bookmarkmenu>}"; | ||||
|       }) | ||||
|       (makeDesktopItem { | ||||
|         name = "rofi-filemenu"; | ||||
|         desktopName = "Open Directory in Terminal"; | ||||
|         icon = "folder"; | ||||
|         exec = "${<config/rofi>}/bin/rofi-filemenu"; | ||||
|         exec = "${<bin/rofi/filemenu>}"; | ||||
|       }) | ||||
|       (makeDesktopItem { | ||||
|         name = "rofi-filemenu-scratch"; | ||||
|         desktopName = "Open Directory in Scratch Terminal"; | ||||
|         icon = "folder"; | ||||
|         exec = "${<config/rofi>}/bin/rofi-filemenu -x"; | ||||
|         exec = "${<bin/rofi/filemenu>} -x"; | ||||
|       }) | ||||
| 
 | ||||
|       (makeDesktopItem { | ||||
|  |  | |||
|  | @ -25,15 +25,12 @@ | |||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   my = { | ||||
|     env.PATH = [ <bin/bspwm> ]; | ||||
|     home.xdg.configFile = { | ||||
|       "sxhkd".source = <config/sxhkd>; | ||||
|       # link recursively so other modules can link files in their folders | ||||
|       "bspwm" = { | ||||
|         source = <config/bspwm>; | ||||
|         recursive = true; | ||||
|       }; | ||||
|   my.home.xdg.configFile = { | ||||
|     "sxhkd".source = <config/sxhkd>; | ||||
|     # link recursively so other modules can link files in their folders | ||||
|     "bspwm" = { | ||||
|       source = <config/bspwm>; | ||||
|       recursive = true; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -5,8 +5,11 @@ | |||
|     ## Desktop apps | ||||
|     ./apps/redshift.nix | ||||
|     ./apps/rofi.nix     # My launcher | ||||
|     ./apps/thunar.nix   # I often need a thumbnail browser to show off, peruse | ||||
|                         # or organize photos, design work, or digital art. | ||||
| 
 | ||||
|     # I often need a thumbnail browser to show off, peruse or organize photos, | ||||
|     # design work, or digital art. | ||||
|     # ./apps/nautilus.nix | ||||
|     ./apps/thunar.nix | ||||
| 
 | ||||
|     ## Terminal | ||||
|     # ./apps/alacritty.nix | ||||
|  | @ -28,6 +31,13 @@ | |||
|     xclip | ||||
|     xdotool | ||||
|     libqalculate  # calculator cli w/ currency conversion | ||||
|     (makeDesktopItem { | ||||
|       name = "scratch-calc"; | ||||
|       desktopName = "Calculator"; | ||||
|       icon = "calc"; | ||||
|       exec = "scratch '${tmux}/bin/tmux new-session -s calc -n calc qalc'"; | ||||
|       categories = "Development"; | ||||
|     }) | ||||
|   ]; | ||||
| 
 | ||||
|   ## Sound | ||||
|  | @ -59,8 +69,8 @@ | |||
|     backend = "glx"; | ||||
|     vSync = true; | ||||
|     opacityRules = [ | ||||
|       "100:class_g = 'Firefox'" | ||||
|       "100:class_g = 'Vivaldi-stable'" | ||||
|       # "100:class_g = 'Firefox'" | ||||
|       # "100:class_g = 'Vivaldi-stable'" | ||||
|       "100:class_g = 'VirtualBox Machine'" | ||||
|       # Art/image programs where we need fidelity | ||||
|       "100:class_g = 'Gimp'" | ||||
|  | @ -69,10 +79,18 @@ | |||
|       "100:class_g = 'krita'" | ||||
|       "100:class_g = 'feh'" | ||||
|       "100:class_g = 'mpv'" | ||||
|       "100:class_g = 'Rofi'" | ||||
|       "100:class_g = 'Peek'" | ||||
|       "99:_NET_WM_STATE@:32a = '_NET_WM_STATE_FULLSCREEN'" | ||||
|     ]; | ||||
|     shadowExclude = [ | ||||
|       # Put shadows on notifications, the scratch popup and rofi only | ||||
|       "! name~='(scratch|Dunst)$'" | ||||
|     ]; | ||||
|     settings.blur-background-exclude = [ | ||||
|       "window_type = 'dock'" | ||||
|       "window_type = 'desktop'" | ||||
|       "class_g = 'Rofi'" | ||||
|       "_GTK_FRAME_EXTENTS@:c" | ||||
|     ]; | ||||
|   }; | ||||
|  |  | |||
							
								
								
									
										0
									
								
								modules/themes/fluorescence/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								modules/themes/fluorescence/README.md
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										79
									
								
								modules/themes/fluorescence/Xresources
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								modules/themes/fluorescence/Xresources
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,79 @@ | |||
| !! Colors | ||||
| #define blk  #1E2029 | ||||
| #define bblk #282a36 | ||||
| #define red  #ffb86c | ||||
| #define bred #de935f | ||||
| #define grn  #50fa7b | ||||
| #define bgrn #0189cc | ||||
| #define ylw  #f0c674 | ||||
| #define bylw #f9a03f | ||||
| #define blu  #61bfff | ||||
| #define bblu #8be9fd | ||||
| #define mag  #bd93f9 | ||||
| #define bmag #ff79c6 | ||||
| #define cyn  #8be9fd | ||||
| #define bcyn #0189cc | ||||
| #define wht  #f8f8f2 | ||||
| #define bwht #e2e2dc | ||||
| #define bg blk | ||||
| #define fg wht | ||||
| 
 | ||||
| *.foreground:  fg | ||||
| *.background:  bg | ||||
| *.cursorColor: mag | ||||
| 
 | ||||
| *.color0:  blk | ||||
| *.color8:  bblk | ||||
| *.color1:  red | ||||
| *.color9:  bred | ||||
| *.color2:  grn | ||||
| *.color10: bgrn | ||||
| *.color3:  ylw | ||||
| *.color11: bylw | ||||
| *.color4:  blu | ||||
| *.color12: bblu | ||||
| *.color5:  mag | ||||
| *.color13: bmag | ||||
| *.color6:  cyn | ||||
| *.color14: bcyn | ||||
| *.color7:  wht | ||||
| *.color15: bwht | ||||
| 
 | ||||
| ! greys | ||||
| *.color234: #1E2029 | ||||
| *.color235: #282a36 | ||||
| *.color236: #373844 | ||||
| *.color237: #44475a | ||||
| *.color239: #565761 | ||||
| *.color240: #6272a4 | ||||
| *.color241: #b6b6b2 | ||||
| 
 | ||||
| 
 | ||||
| !! general | ||||
| scratch.font: Fira Code:pixelsize=16 | ||||
| 
 | ||||
| 
 | ||||
| !! xst | ||||
| st.font: Fira Code:pixelsize=12 | ||||
| 
 | ||||
| 
 | ||||
| !! urxvt | ||||
| URxvt*depth:                   32 | ||||
| URxvt*.background:             blk | ||||
| URxvt*.borderless:             1 | ||||
| URxvt*.buffered:               true | ||||
| URxvt*.cursorBlink:            true | ||||
| URxvt*.font:                   xft:Fira Code:pixelsize=12 | ||||
| URxvt*.internalBorder:         10 | ||||
| URxvt*.letterSpace:            0 | ||||
| URxvt*.lineSpace:              0 | ||||
| URxvt*.loginShell:             false | ||||
| URxvt*.matcher.button:         1 | ||||
| URxvt*.matcher.rend.0:         Uline Bold fg5 | ||||
| URxvt*.saveLines:              5000 | ||||
| URxvt*.scrollBar:              false | ||||
| URxvt*.underlineColor:         grey | ||||
| URxvt.clipboard.autocopy:      true | ||||
| URxvt.iso14755:                false | ||||
| URxvt.iso14755_52:             false | ||||
| URxvt.perl-ext-common:         default,matcher | ||||
							
								
								
									
										16
									
								
								modules/themes/fluorescence/bspwmrc
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										16
									
								
								modules/themes/fluorescence/bspwmrc
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,16 @@ | |||
| #!/usr/bin/env sh | ||||
| 
 | ||||
| bspc config borderless_monocle true | ||||
| bspc config gapless_monocle true | ||||
| 
 | ||||
| bspc config border_width 1 | ||||
| bspc config window_gap 0 | ||||
| 
 | ||||
| bspc config normal_border_color "#181a23" | ||||
| bspc config active_border_color "#181a23" | ||||
| bspc config focused_border_color "#bd93f9" | ||||
| bspc config presel_feedback_color "#bd93f9" | ||||
| 
 | ||||
| # Extra padding for polybar | ||||
| bspc config -m primary top_padding 0 | ||||
| bspc config -m primary bottom_padding 34 | ||||
							
								
								
									
										75
									
								
								modules/themes/fluorescence/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								modules/themes/fluorescence/default.nix
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,75 @@ | |||
| # modules/themes/aquanaut/default.nix --- a sea-blue linux theme | ||||
| 
 | ||||
| { config, lib, pkgs, ... }: | ||||
| { | ||||
|   imports = [ ../. ]; # Load framework for themes | ||||
| 
 | ||||
|   theme.wallpaper = ./wallpaper.png; | ||||
| 
 | ||||
|   services.compton = { | ||||
|     fade = true; | ||||
|     fadeDelta = 1; | ||||
|     fadeSteps = [ "0.01" "0.012" ]; | ||||
|     shadow = true; | ||||
|     shadowOffsets = [ (-10) (-10) ]; | ||||
|     shadowOpacity = "0.22"; | ||||
|     # activeOpacity = "1.00"; | ||||
|     # inactiveOpacity = "0.92"; | ||||
|     settings = { | ||||
|       shadow-radius = 12; | ||||
|       # blur-background = true; | ||||
|       # blur-background-frame = true; | ||||
|       # blur-background-fixed = true; | ||||
|       blur-kern = "7x7box"; | ||||
|       blur-strength = 320; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   services.xserver.displayManager.lightdm = { | ||||
|     greeters.mini.extraConfig = '' | ||||
|       text-color = "#ff79c6" | ||||
|       password-background-color = "#1E2029" | ||||
|       window-color = "#181a23" | ||||
|       border-color = "#181a23" | ||||
|     ''; | ||||
|   }; | ||||
| 
 | ||||
|   fonts.fonts = [ pkgs.nerdfonts ]; | ||||
|   my.packages = with pkgs; [ | ||||
|     my.ant-dracula | ||||
|     paper-icon-theme # for rofi | ||||
|   ]; | ||||
|   my.zsh.rc = lib.readFile ./zsh/prompt.zsh; | ||||
|   my.home.xdg.configFile = { | ||||
|     "bspwm/rc.d/polybar".source = ./polybar/run.sh; | ||||
|     "bspwm/rc.d/theme".source   = ./bspwmrc; | ||||
|     "dunst/dunstrc".source      = ./dunstrc; | ||||
|     "polybar" = { source = ./polybar; recursive = true; }; | ||||
|     "rofi/theme" = { source = ./rofi; recursive = true; }; | ||||
|     "tmux/theme".source         = ./tmux.conf; | ||||
|     "xtheme/90-theme".source    = ./Xresources; | ||||
|     # GTK | ||||
|     "gtk-3.0/settings.ini".text = '' | ||||
|       [Settings] | ||||
|       gtk-theme-name=Ant-Dracula | ||||
|       gtk-icon-theme-name=Paper | ||||
|       gtk-fallback-icon-theme=gnome | ||||
|       gtk-application-prefer-dark-theme=true | ||||
|       gtk-cursor-theme-name=Paper | ||||
|       gtk-xft-hinting=1 | ||||
|       gtk-xft-hintstyle=hintfull | ||||
|       gtk-xft-rgba=none | ||||
|     ''; | ||||
|     # GTK2 global theme (widget and icon theme) | ||||
|     "gtk-2.0/gtkrc".text = '' | ||||
|       gtk-theme-name="Ant-Dracula" | ||||
|       gtk-icon-theme-name="Paper-Mono-Dark" | ||||
|       gtk-font-name="Sans 10" | ||||
|     ''; | ||||
|     # QT4/5 global theme | ||||
|     "Trolltech.conf".text = '' | ||||
|       [Qt] | ||||
|       style=Ant-Dracula | ||||
|     ''; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										49
									
								
								modules/themes/fluorescence/dunstrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								modules/themes/fluorescence/dunstrc
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,49 @@ | |||
| [global] | ||||
| alignment = left | ||||
| bounce_freq = 0 | ||||
| browser = firefox -new-tab | ||||
| corner_radius = 2 | ||||
| dmenu = rofi -dmenu -p dunst: | ||||
| follow = none | ||||
| font = Fira Sans 11 | ||||
| format = "<b>%s</b>\n%b" | ||||
| frame_color = "#1a1c25" | ||||
| frame_width = 1 | ||||
| # geometry [{width}]x{height}][+/-{x}+/-{y}] | ||||
| geometry = "440x15-22+58" | ||||
| history_length = 20 | ||||
| horizontal_padding = 16 | ||||
| icon_position = right | ||||
| idle_threshold = 120 | ||||
| ignore_newline = no | ||||
| indicate_hidden = yes | ||||
| line_height = 0 | ||||
| markup = full | ||||
| max_icon_size = 64 | ||||
| monitor = 0 | ||||
| padding = 20 | ||||
| separator_color = auto | ||||
| separator_height = 4 | ||||
| show_age_threshold = 60 | ||||
| show_indicators = yes | ||||
| shrink = no | ||||
| sort = yes | ||||
| startup_notification = false | ||||
| sticky_history = yes | ||||
| transparency = 5 | ||||
| word_wrap = yes | ||||
| 
 | ||||
| [urgency_low] | ||||
| background = "#1E2029" | ||||
| foreground = "#bbc2cf" | ||||
| timeout = 8 | ||||
| 
 | ||||
| [urgency_normal] | ||||
| background = "#2a2d39" | ||||
| foreground = "#bbc2cf" | ||||
| timeout = 14 | ||||
| 
 | ||||
| [urgency_critical] | ||||
| background = "#cc6666" | ||||
| foreground = "#1E2029" | ||||
| timeout = 0 | ||||
							
								
								
									
										327
									
								
								modules/themes/fluorescence/polybar/config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										327
									
								
								modules/themes/fluorescence/polybar/config
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,327 @@ | |||
| [colors] | ||||
| black = ${xrdb:color0} | ||||
| bblack = ${xrdb:color8} | ||||
| red = ${xrdb:color1} | ||||
| bred = ${xrdb:color9} | ||||
| green = ${xrdb:color2} | ||||
| bgreen = ${xrdb:color10} | ||||
| yellow = ${xrdb:color3} | ||||
| byellow = ${xrdb:color11} | ||||
| blue = ${xrdb:color4} | ||||
| bblue = ${xrdb:color12} | ||||
| magenta = ${xrdb:color5} | ||||
| bmagenta = ${xrdb:color13} | ||||
| cyan = ${xrdb:color6} | ||||
| bcyan = ${xrdb:color14} | ||||
| white = ${xrdb:color7} | ||||
| bwhite = ${xrdb:color15} | ||||
| 
 | ||||
| bg = ${xrdb:background} | ||||
| fg = ${colors.magenta} | ||||
| bg-alt = #1E2029 | ||||
| fg-alt = #373844 | ||||
| bg-dark = #181a23 | ||||
| 
 | ||||
| alert = ${colors.yellow} | ||||
| accent = #604c7e | ||||
| 
 | ||||
| 
 | ||||
| [global/wm] | ||||
| margin-top = 0 | ||||
| margin-bottom = 34 | ||||
| 
 | ||||
| [bar/main] | ||||
| monitor = ${env:MONITOR} | ||||
| monitor-strict = true | ||||
| enable-ipc = true | ||||
| wm-restack = bspwm | ||||
| # REQUIRED to move the window with hideit.sh | ||||
| override-redirect = true | ||||
| fixed-center = true | ||||
| 
 | ||||
| background = ${colors.bg} | ||||
| foreground = ${colors.fg} | ||||
| 
 | ||||
| width = 100% | ||||
| height = 34 | ||||
| offset-x = 0 | ||||
| offset-y = 0 | ||||
| bottom = true | ||||
| 
 | ||||
| overline-size = 0 | ||||
| overline-color = #f00 | ||||
| underline-size = 0 | ||||
| underline-color = #00f | ||||
| 
 | ||||
| border-bottom-size = 0 | ||||
| border-top-size = 1 | ||||
| border-color = ${colors.bg-dark} | ||||
| 
 | ||||
| padding-left = 2 | ||||
| padding-right = 2 | ||||
| module-margin-left = 0 | ||||
| module-margin-right = 0 | ||||
| 
 | ||||
| font-0 = "Fira Code:pixelsize=9;2" | ||||
| font-1 = "Wuncon Siji:pixelsize=12;2" | ||||
| font-2 = "Siji:pixelsize=10;2" | ||||
| 
 | ||||
| ; modules-left = volume pad cpu memory pad pkg mail | ||||
| modules-left = pulseaudio pad cpu memory | ||||
| modules-center = bspwm | ||||
| modules-right = battery wlan syncthing redshift pad date | ||||
| 
 | ||||
| ;tray-position = center | ||||
| ;tray-padding = 2 | ||||
| ;tray-transparent = true | ||||
| ;tray-background = #0063ff | ||||
| 
 | ||||
| [module/bspwm] | ||||
| type = internal/bspwm | ||||
| pin-workspaces = true | ||||
| enable-click = true | ||||
| 
 | ||||
| ws-icon-0 = 1; | ||||
| ws-icon-1 = 2; | ||||
| ws-icon-2 = 3; | ||||
| ws-icon-3 = 4; | ||||
| ws-icon-4 = 5; | ||||
| ws-icon-5 = 6; | ||||
| ws-icon-default = x | ||||
| 
 | ||||
| format = <label-state> <label-mode> | ||||
| label-padding = 1 | ||||
| 
 | ||||
| label-focused = %icon% | ||||
| label-focused-background = ${colors.bg-dark} | ||||
| label-focused-foreground = ${colors.fg} | ||||
| # label-focused-underline = ${colors.magenta} | ||||
| ; label-focused-foreground = ${xrdb:color2} | ||||
| label-focused-padding = 1 | ||||
| 
 | ||||
| label-occupied = %icon% | ||||
| label-occupied-foreground = ${colors.accent} | ||||
| label-occupied-padding = 1 | ||||
| 
 | ||||
| ; label-urgent = %icon% | ||||
| label-urgent-foreground = ${colors.alert} | ||||
| ; label-urgent-background = ${colors.alert} | ||||
| label-urgent-padding = 1 | ||||
| 
 | ||||
| label-empty = %icon% | ||||
| label-empty-foreground = ${colors.fg-alt} | ||||
| label-empty-padding = 1 | ||||
| 
 | ||||
| [module/date] | ||||
| type = internal/date | ||||
| interval = 5 | ||||
| 
 | ||||
| label = %date%  %time% | ||||
| date = %A, %h %d | ||||
| date-alt = %Y-%m-%d | ||||
| time = %I:%M %p | ||||
| time-alt = %H:%M:%S | ||||
| format-prefix = "" | ||||
| format-prefix-padding = 1 | ||||
| ; format-prefix-background = ${colors.bg-alt} | ||||
| format-prefix-foreground = ${colors.accent} | ||||
| ; format-underline = ${xrdb:color4} | ||||
| 
 | ||||
| [module/xwindow] | ||||
| type = internal/xwindow | ||||
| label = %title:0:80:...% | ||||
| label-padding-left = 2 | ||||
| 
 | ||||
| ; [module/mpd] | ||||
| ; type = internal/mpd | ||||
| ; host = /home/hlissner/.config/mpd/mpd.sock | ||||
| ; | ||||
| ; format-online = <label-song> <toggle> | ||||
| ; format-padding = 5 | ||||
| ; | ||||
| ; label-song-maxlen = 45 | ||||
| ; label-song-ellipsis = true | ||||
| ; | ||||
| ; icon-prev =  | ||||
| ; icon-seekb =  | ||||
| ; icon-stop =  | ||||
| ; icon-play =  | ||||
| ; icon-pause =  | ||||
| ; icon-next =  | ||||
| ; icon-seekf =  | ||||
| ; | ||||
| ; icon-random =  | ||||
| ; icon-repeat =  | ||||
| ; | ||||
| ; toggle-on-foreground = ${colors.fg} | ||||
| ; toggle-off-foreground = #66 | ||||
| 
 | ||||
| [module/cpu] | ||||
| type = internal/cpu | ||||
| interval = 2 | ||||
| format = <bar-load> | ||||
| format-prefix = "" | ||||
| format-foreground = ${colors.accent} | ||||
| ; format-underline = #f90000 | ||||
| ; label = %percentage%% | ||||
| format-padding = 1 | ||||
| 
 | ||||
| bar-load-indicator = | ||||
| bar-load-width = 6 | ||||
| bar-load-foreground-0 = ${colors.fg} | ||||
| bar-load-foreground-1 = ${colors.fg} | ||||
| bar-load-foreground-2 = ${colors.yellow} | ||||
| bar-load-foreground-3 = ${colors.alert} | ||||
| bar-load-foreground-4 = ${colors.alert} | ||||
| bar-load-fill = | | ||||
| bar-load-empty = ¦ | ||||
| bar-load-empty-foreground = ${colors.fg-alt} | ||||
| 
 | ||||
| [module/memory] | ||||
| type = internal/memory | ||||
| interval = 3 | ||||
| format = <bar-used> | ||||
| format-prefix = "" | ||||
| format-prefix-foreground = ${colors.accent} | ||||
| ; format-underline = #4bffdc | ||||
| ; label = %percentage_used%% | ||||
| format-padding-left = 1 | ||||
| 
 | ||||
| ; Only applies if <bar-used> is used | ||||
| bar-used-indicator = | ||||
| bar-used-width = 6 | ||||
| bar-used-foreground-0 = ${colors.fg} | ||||
| bar-used-foreground-1 = ${colors.fg} | ||||
| bar-used-foreground-2 = ${colors.yellow} | ||||
| bar-used-foreground-3 = ${colors.alert} | ||||
| bar-used-foreground-4 = ${colors.alert} | ||||
| bar-used-fill = | | ||||
| bar-used-empty = ¦ | ||||
| bar-used-empty-foreground = ${colors.fg-alt} | ||||
| 
 | ||||
| [module/wlan] | ||||
| type = internal/network | ||||
| interface = ${env:WLP:wlp3s0} | ||||
| interval = 3.0 | ||||
| 
 | ||||
| format-connected = <ramp-signal> | ||||
| format-disconnected = ! | ||||
| format-disconnected-foreground = ${colors.red} | ||||
| 
 | ||||
| ; label-connected = | ||||
| ; label-disconnected = ! | ||||
| ; label-disconnected-foreground = ${colors.red} | ||||
| 
 | ||||
| ramp-signal-0 =  | ||||
| ramp-signal-0-foreground = ${colors.yellow} | ||||
| ramp-signal-1 =  | ||||
| ramp-signal-1-foreground = ${colors.yellow} | ||||
| ramp-signal-2 =  | ||||
| ramp-signal-2-foreground = ${colors.yellow} | ||||
| ramp-signal-3 =  | ||||
| ramp-signal-3-foreground = ${colors.accent} | ||||
| ramp-signal-4 =  | ||||
| ramp-signal-4-foreground = ${colors.fg} | ||||
| 
 | ||||
| ; [module/eth] | ||||
| ; type = internal/network | ||||
| ; interface = ${env:ETH:enp2s0} | ||||
| ; interval = 4.0 | ||||
| ; | ||||
| ; ; format-connected-underline = #55aa55 | ||||
| ; ; format-connected-prefix = " " | ||||
| ; format-connected-foreground-foreground = ${colors.fg-alt} | ||||
| ; label-connected = %local_ip% | ||||
| ; | ||||
| ; format-disconnected-underline = ${self.format-connected-underline} | ||||
| ; label-disconnected = %ifname% disconnected | ||||
| ; label-disconnected-foreground = ${colors.fg-alt} | ||||
| 
 | ||||
| [module/pulseaudio] | ||||
| type = internal/pulseaudio | ||||
| 
 | ||||
| ; format-volume = <label-volume> <bar-volume> | ||||
| format-volume = <ramp-volume> <bar-volume> | ||||
| ; label-volume = " " | ||||
| label-volume-foreground = ${colors.accent} | ||||
| 
 | ||||
| ; format-muted-prefix = " " | ||||
| format-muted-foreground = ${colors.alert} | ||||
| label-muted =  | ||||
| 
 | ||||
| bar-volume-width = 8 | ||||
| # bar-volume-foreground-0 = ${colors.magenta} | ||||
| # bar-volume-foreground-1 = ${colors.magenta} | ||||
| # bar-volume-foreground-2 = ${colors.magenta} | ||||
| # bar-volume-foreground-3 = ${colors.magenta} | ||||
| # bar-volume-foreground-4 = ${colors.magenta} | ||||
| # bar-volume-foreground-5 = ${colors.magenta} | ||||
| # bar-volume-foreground-6 = ${colors.magenta} | ||||
| bar-volume-gradient = false | ||||
| bar-volume-indicator = | | ||||
| bar-volume-indicator-font = 1 | ||||
| bar-volume-indicator-foreground = #ff | ||||
| bar-volume-fill = ─ | ||||
| bar-volume-fill-font = 1 | ||||
| bar-volume-empty = ─ | ||||
| bar-volume-empty-font = 1 | ||||
| bar-volume-empty-foreground = ${colors.fg-alt} | ||||
| 
 | ||||
| ; Only applies if <ramp-volume> is used | ||||
| ramp-volume-0 =  | ||||
| ramp-volume-1 =  | ||||
| ramp-volume-2 =  | ||||
| 
 | ||||
| [module/battery] | ||||
| type = internal/battery | ||||
| battery = BAT0 | ||||
| adapter = ADP1 | ||||
| full-at = 98 | ||||
| 
 | ||||
| format-charging = <animation-charging> <label-charging> | ||||
| format-charging-underline = #ffb52a | ||||
| 
 | ||||
| format-discharging = <ramp-capacity> <label-discharging> | ||||
| format-discharging-underline = ${self.format-charging-underline} | ||||
| 
 | ||||
| format-full-prefix = " " | ||||
| format-full-prefix-foreground = ${colors.fg-alt} | ||||
| format-full-underline = ${self.format-charging-underline} | ||||
| 
 | ||||
| ramp-capacity-0 =  | ||||
| ramp-capacity-1 =  | ||||
| ramp-capacity-2 =  | ||||
| ramp-capacity-foreground = ${colors.fg-alt} | ||||
| 
 | ||||
| animation-charging-0 =  | ||||
| animation-charging-1 =  | ||||
| animation-charging-2 =  | ||||
| animation-charging-foreground = ${colors.fg-alt} | ||||
| animation-charging-framerate = 750 | ||||
| 
 | ||||
| 
 | ||||
| ;===================================================== | ||||
| ; Custom scripts | ||||
| ;===================================================== | ||||
| 
 | ||||
| [module/pad] | ||||
| type = custom/text | ||||
| content = "   " | ||||
| content-foreground = ${colors.fg-alt} | ||||
| 
 | ||||
| [module/redshift] | ||||
| type = custom/script | ||||
| exec = ~/.config/polybar/modules/redshift | ||||
| exec-if = pgrep -x redshift | ||||
| interval = 60 | ||||
| format-padding = 1 | ||||
| 
 | ||||
| [module/syncthing] | ||||
| type = custom/script | ||||
| exec = echo 1 | ||||
| exec-if = systemctl is-active syncthing | ||||
| format = "" | ||||
| format-foreground = ${colors.fg} | ||||
| interval = 30 | ||||
| 
 | ||||
| ; vim:ft=dosini | ||||
							
								
								
									
										21
									
								
								modules/themes/fluorescence/polybar/modules/redshift
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										21
									
								
								modules/themes/fluorescence/polybar/modules/redshift
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| # Specifying the icon(s) in the script | ||||
| # This allows us to change its appearance conditionally | ||||
| pgrep -x redshift &> /dev/null | ||||
| if [[ $? -eq 0 ]]; then | ||||
|     temp=$(redshift -p 2>/dev/null | grep temp | cut -d' ' -f3) | ||||
|     temp=${temp//K/} | ||||
| fi | ||||
| 
 | ||||
| # OPTIONAL: Append ' ${temp}K' after $icon | ||||
| if [[ -z $temp ]]; then | ||||
|     echo "%{F#65737E}$icon"       # Greyed out (not running) | ||||
| elif [[ $temp -ge 5000 ]]; then | ||||
|     echo "%{F#8FA1B3}$icon"       # Blue | ||||
| elif [[ $temp -ge 4000 ]]; then | ||||
|     echo "%{F#EBCB8B}$icon"       # Yellow | ||||
| else | ||||
|     echo "%{F#D08770}$icon"       # Orange | ||||
| fi | ||||
| 
 | ||||
							
								
								
									
										7
									
								
								modules/themes/fluorescence/polybar/run.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								modules/themes/fluorescence/polybar/run.sh
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| killall -q polybar | ||||
| while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done | ||||
| 
 | ||||
| polybar main >>$XDG_DATA_HOME/polybar.log 2>&1 & | ||||
| echo 'Polybar launched...' | ||||
							
								
								
									
										10
									
								
								modules/themes/fluorescence/rofi/appmenu.rasi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								modules/themes/fluorescence/rofi/appmenu.rasi
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| /* -*- mode: css; -*- */ | ||||
| @import "config.rasi" | ||||
| 
 | ||||
| textbox-icon { | ||||
|   str: "  "; | ||||
| } | ||||
| 
 | ||||
| prompt { | ||||
|   enabled: false; | ||||
| } | ||||
							
								
								
									
										21
									
								
								modules/themes/fluorescence/rofi/base.cyclemenu.rasi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								modules/themes/fluorescence/rofi/base.cyclemenu.rasi
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| /* -*- mode: css; -*- */ | ||||
| @import "config.rasi" | ||||
| 
 | ||||
| window { | ||||
|   y-offset: 0; | ||||
|   children: [ listview ]; | ||||
|   width: 500px; | ||||
| } | ||||
| 
 | ||||
| listview { | ||||
|   scrollbar: false; | ||||
| } | ||||
| 
 | ||||
| element { | ||||
|   padding: 30px; | ||||
|   background-color: @bg-light; | ||||
| } | ||||
| element.selected { | ||||
|   background-color: @accent; | ||||
|   text-color: @bg; | ||||
| } | ||||
							
								
								
									
										14
									
								
								modules/themes/fluorescence/rofi/bookmarkmenu.rasi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								modules/themes/fluorescence/rofi/bookmarkmenu.rasi
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | |||
| /* -*- mode: css; -*- */ | ||||
| 
 | ||||
| @import "config.rasi" | ||||
| 
 | ||||
| window { | ||||
|   width: 44%; | ||||
| } | ||||
| textbox-icon { | ||||
|   str: " 爵 "; | ||||
| } | ||||
| 
 | ||||
| prompt { | ||||
|   enabled: false; | ||||
| } | ||||
							
								
								
									
										114
									
								
								modules/themes/fluorescence/rofi/config.rasi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								modules/themes/fluorescence/rofi/config.rasi
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,114 @@ | |||
| /* -*- mode: css; -*- */ | ||||
| configuration { | ||||
|   icon-theme:       "Paper"; | ||||
|   cycle:            true; | ||||
|   disable-history:  false; | ||||
|   monitor:          "-4"; | ||||
| } | ||||
| 
 | ||||
| * { | ||||
|   accent:   #bd93f9; | ||||
|   bg:       #1E2029FA; | ||||
|   bg-light: #1c1c1c; | ||||
|   bg-focus: #282a36; | ||||
|   bg-dark:  #181a23; | ||||
|   fg:       #bbc2cf; | ||||
|   fg-list:  #bbc2cf; | ||||
|   on:       #8BD49C; | ||||
|   off:      #cc6666; | ||||
| 
 | ||||
|   magenta: #bd93f9; | ||||
|   blue:    #61bfff; | ||||
| 
 | ||||
|   text-font:        "Fira Sans 16"; | ||||
|   text-mono-font:   "Fira Code 14"; | ||||
|   icon-font:        "Hurmit Nerd Font Mono 26"; | ||||
| 
 | ||||
|   background-color: transparent; | ||||
|   text-color: @fg-list; | ||||
|   font: @text-font; | ||||
|   border-color: @bg-dark; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /**** Layout ****/ | ||||
| window { | ||||
|   width:    34%; | ||||
|   y-offset: -25%; | ||||
|   anchor:   north; | ||||
|   location: center; | ||||
|   border: 1px; | ||||
|   border-radius: 6px; | ||||
|   children: [ inputbar, listview ]; | ||||
| } | ||||
| listview { | ||||
|   lines: 16; | ||||
|   fixed-height: false; | ||||
|   /* reverse: true; */ | ||||
|   margin: -2px 0 0; | ||||
|   columns: 1; | ||||
|   scrollbar: true; | ||||
|   spacing: 1px; | ||||
| } | ||||
| scrollbar { | ||||
|   handle-width: 1px; | ||||
| } | ||||
| inputbar { | ||||
|   children: [ textbox-icon, prompt, entry ]; | ||||
|   border: 0 0 1px; | ||||
| } | ||||
| textbox-icon, prompt { | ||||
|   padding: 11px; | ||||
|   expand: false; | ||||
|   border: 0 1px 0 0; | ||||
|   margin: 0 -2px 0 0; | ||||
| } | ||||
| textbox-icon { | ||||
|   padding: 7px -6px 0; | ||||
| } | ||||
| entry, element { | ||||
|   padding: 11px 14px; | ||||
| } | ||||
| textbox { | ||||
|   padding: 24px; | ||||
|   margin: 20px; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /**** Looks ****/ | ||||
| scrollbar { | ||||
|   background-color: @bg-dark; | ||||
|   handle-color: @accent; | ||||
|   border-color: @bg-dark; | ||||
| } | ||||
| listview, inputbar { | ||||
|   background-color: @bg-dark; | ||||
| } | ||||
| textbox-icon, prompt, entry { | ||||
|   text-color: @accent; | ||||
| } | ||||
| prompt, entry { | ||||
|   background-color: @bg-focus; | ||||
| } | ||||
| textbox-icon, prompt { | ||||
|   background-color: #2f313d; | ||||
| } | ||||
| prompt { | ||||
|   background-color: @bg-focus; | ||||
| } | ||||
| textbox-icon { | ||||
|   font: @icon-font; | ||||
| } | ||||
| entry { | ||||
|   font: @text-font-mono; | ||||
|   text-color: @fg; | ||||
| } | ||||
| 
 | ||||
| element { | ||||
|   background-color: @bg; | ||||
|   text-color: @fg; | ||||
| } | ||||
| element selected { | ||||
|   background-color: @bg-dark; | ||||
|   text-color: @accent; | ||||
| } | ||||
							
								
								
									
										11
									
								
								modules/themes/fluorescence/rofi/filemenu.rasi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								modules/themes/fluorescence/rofi/filemenu.rasi
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| /* -*- mode: css; -*- */ | ||||
| 
 | ||||
| @import "config.rasi" | ||||
| 
 | ||||
| textbox-icon { | ||||
|   str: "  "; | ||||
| } | ||||
| 
 | ||||
| prompt { | ||||
|   enabled: true; | ||||
| } | ||||
							
								
								
									
										6
									
								
								modules/themes/fluorescence/rofi/passmenu.rasi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/themes/fluorescence/rofi/passmenu.rasi
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| /* -*- mode: css; -*- */ | ||||
| @import "config.rasi" | ||||
| 
 | ||||
| textbox-icon { | ||||
|   str: "  "; | ||||
| } | ||||
							
								
								
									
										23
									
								
								modules/themes/fluorescence/rofi/powermenu.rasi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/themes/fluorescence/rofi/powermenu.rasi
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| /** -*- mode: css; -*- | ||||
|  * This theme is intended for a 5 items wide menu on a 1920x1080 pixels resolution. | ||||
|  * You may have to tweak values such as the window padding if you have a different resolution. | ||||
|  */ | ||||
| @import "appmenu.rasi" | ||||
| 
 | ||||
| window { | ||||
|   children: [ listview ]; | ||||
|   width: 500px; | ||||
| } | ||||
| 
 | ||||
| listview { | ||||
|   scrollbar: false; | ||||
| } | ||||
| 
 | ||||
| element { | ||||
|   padding: 30px; | ||||
|   background-color: @bg-light; | ||||
| } | ||||
| element.selected { | ||||
|   background-color: @accent; | ||||
|   text-color: @bg; | ||||
| } | ||||
							
								
								
									
										19
									
								
								modules/themes/fluorescence/rofi/windowmenu.rasi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								modules/themes/fluorescence/rofi/windowmenu.rasi
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| /* -*- mode: css; -*- */ | ||||
| 
 | ||||
| @import "config.rasi" | ||||
| 
 | ||||
| inputbar { | ||||
|   width: 25%; | ||||
| } | ||||
| 
 | ||||
| textbox-icon { | ||||
|   str: " 缾 "; | ||||
| } | ||||
| 
 | ||||
| prompt { | ||||
|   enabled: false; | ||||
| } | ||||
| 
 | ||||
| element { | ||||
|   font: "Fira Code 12"; | ||||
| } | ||||
							
								
								
									
										64
									
								
								modules/themes/fluorescence/tmux.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								modules/themes/fluorescence/tmux.conf
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,64 @@ | |||
| # -- THEME ------------------------------- | ||||
| 
 | ||||
| # The statusbar | ||||
| set -g status-position bottom | ||||
| set -g status-justify centre | ||||
| set -g status-bg default | ||||
| set -g status-fg colour15 | ||||
| set -g status-interval 10 | ||||
| # set -g status-attr dim | ||||
| # set -g status-left '#[fg=colour236]_________________________' | ||||
| set -g status-left '#{prefix_highlight}#[fg=colour236]|―――――――――――――――――――|' | ||||
| # set -g status-left "#[fg=colour236]#{prefix_highlight} #[fg=colour5] #S #[fg=colour236]──" | ||||
| # set -g status-right '#[fg=colour236]_________________________' | ||||
| set -g status-right '#[fg=colour236]|―――――――――――――――――――――――――|' | ||||
| set -g status-right-length 30 | ||||
| set -g status-left-length 30 | ||||
| 
 | ||||
| # The messages | ||||
| set -g message-style fg=magenta,bg=colour236 | ||||
| set -g message-command-style fg=blue,bg=black | ||||
| 
 | ||||
| # loud or quiet? | ||||
| set-option -g visual-activity off | ||||
| set-option -g visual-bell off | ||||
| set-option -g visual-silence off | ||||
| set-window-option -g monitor-activity on | ||||
| set-option -g bell-action none | ||||
| 
 | ||||
| # The modes | ||||
| setw -g clock-mode-colour colour135 | ||||
| # setw -g mode-attr bold | ||||
| # setw -g mode-fg colour196 | ||||
| # setw -g mode-bg colour238 | ||||
| 
 | ||||
| # The panes | ||||
| set -g pane-border-style fg=colour235 | ||||
| set -g pane-active-border-style fg=colour5 | ||||
| 
 | ||||
| # setw -g window-status-current-fg colour2 | ||||
| # setw -g window-status-current-bg default | ||||
| # setw -g window-status-current-attr none | ||||
| # setw -g window-status-current-format ' #W ' | ||||
| 
 | ||||
| # setw -g window-status-fg colour236 | ||||
| # setw -g window-status-bg default | ||||
| # setw -g window-status-attr none | ||||
| # setw -g window-status-format '#[fg=colour8] #I #[fg=default]#W ' | ||||
| setw -g window-status-format ' #W ' | ||||
| 
 | ||||
| # setw -g window-status-activity-bg default | ||||
| # setw -g window-status-activity-fg colour240 | ||||
| # setw -g window-status-activity-attr none | ||||
| 
 | ||||
| # setw -g window-status-bell-attr bold | ||||
| # setw -g window-status-bell-fg colour255 | ||||
| # setw -g window-status-bell-bg colour1 | ||||
| 
 | ||||
| 
 | ||||
| # -- PLUGINS ----------------------------- | ||||
| 
 | ||||
| # tmux-prefix-highlight | ||||
| set -g @prefix_highlight_empty_prompt '-----' | ||||
| set -g @prefix_highlight_prefix_prompt ' C^c #[bg=colour8]' | ||||
| set -g @prefix_highlight_show_copy_mode 'on' | ||||
							
								
								
									
										
											BIN
										
									
								
								modules/themes/fluorescence/wallpaper.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								modules/themes/fluorescence/wallpaper.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.8 MiB | 
							
								
								
									
										71
									
								
								modules/themes/fluorescence/zsh/prompt.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								modules/themes/fluorescence/zsh/prompt.zsh
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,71 @@ | |||
| # Loosely based off Pure <https://github.com/sindresorhus/pure> | ||||
| 
 | ||||
| _strlen() { echo ${#${(S%%)1//$~%([BSUbfksu]|([FB]|){*})/}}; } | ||||
| 
 | ||||
| # fastest possible way to check if repo is dirty | ||||
| prompt_git_dirty() { | ||||
|   command -v git >/dev/null || return | ||||
| 
 | ||||
|   # check if we're in a git repo | ||||
|   [[ "$(command git rev-parse --is-inside-work-tree 2>/dev/null)" == "true" ]] || return | ||||
|   # check if it's dirty | ||||
|   command test -n "$(git status --porcelain --ignore-submodules -unormal)" || return | ||||
| 
 | ||||
|   local r=$(command git rev-list --right-only --count HEAD...@'{u}' 2>/dev/null) | ||||
|   local l=$(command git rev-list --left-only --count HEAD...@'{u}' 2>/dev/null) | ||||
| 
 | ||||
|   (( ${r:-0} > 0 )) && echo -n " %F{red}${r}-" | ||||
|   (( ${l:-0} > 0 )) && echo -n " %F{green}${l}+" | ||||
|   echo -n '%f' | ||||
| } | ||||
| 
 | ||||
| ## Hooks ############################### | ||||
| prompt_hook_precmd() { | ||||
|   vcs_info # get git info | ||||
|   # Newline before prompt, except on init | ||||
|   [[ -n $PROMPT_DONE ]] && print ""; PROMPT_DONE=1 | ||||
| } | ||||
| 
 | ||||
| ## Initialization ###################### | ||||
| prompt_init() { | ||||
|   # prevent percentage showing up | ||||
|   # if output doesn't end with a newline | ||||
|   export PROMPT_EOL_MARK= | ||||
| 
 | ||||
|   # prompt_opts=(cr subst percent) | ||||
|   setopt promptsubst | ||||
|   autoload -Uz add-zsh-hook | ||||
|   autoload -Uz vcs_info | ||||
| 
 | ||||
|   add-zsh-hook precmd prompt_hook_precmd | ||||
|   # Updates cursor shape and prompt symbol based on vim mode | ||||
|   zle-keymap-select() { | ||||
|     case $KEYMAP in | ||||
|       vicmd)      PROMPT_SYMBOL="%F{green}« " ;; | ||||
|       main|viins) PROMPT_SYMBOL="%(?.%F{magenta}.%F{yellow})λ " ;; | ||||
|     esac | ||||
|     zle reset-prompt | ||||
|     zle -R | ||||
|   } | ||||
|   zle -N zle-keymap-select | ||||
|   zle -A zle-keymap-select zle-line-init | ||||
| 
 | ||||
|   zstyle ':vcs_info:*' enable git | ||||
|   zstyle ':vcs_info:*' use-simple true | ||||
|   zstyle ':vcs_info:*' max-exports 2 | ||||
|   zstyle ':vcs_info:git*' formats ' %b' | ||||
|   zstyle ':vcs_info:git*' actionformats ' %b (%a)' | ||||
| 
 | ||||
|   # show username@host if logged in through SSH | ||||
|   if [[ -n $SSH_CONNECTION ]]; then | ||||
|     prompt_username='%m ' | ||||
|     if [[ $(whoami) != hlissner ]]; then | ||||
|       prompt_username="%n.$prompt_username" | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   RPROMPT='%F{blue}%~%F{magenta}${vcs_info_msg_0_}$(prompt_git_dirty)%f' | ||||
|   PROMPT='%F{magenta}${prompt_username}%f${PROMPT_SYMBOL:-$ }' | ||||
| } | ||||
| 
 | ||||
| prompt_init "$@" | ||||
|  | @ -8,6 +8,7 @@ | |||
|         (callPackage | ||||
|           (builtins.fetchTarball | ||||
|             https://github.com/xzfc/cached-nix-shell/archive/master.tar.gz) {}); | ||||
|       ant-dracula = (callPackage ./packages/ant-dracula.nix {}); | ||||
|     }; | ||||
| 
 | ||||
|     nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") { | ||||
|  | @ -16,7 +17,7 @@ | |||
| 
 | ||||
|     # Occasionally, "stable" packages are broken or incomplete, so access to the | ||||
|     # bleeding edge is necessary, as a last resort. | ||||
|     unstable = import <nixpkgs-unstable> { inherit config; }; | ||||
|     unstable = import <nixos-unstable> { inherit config; }; | ||||
|   }) | ||||
| 
 | ||||
|   # emacsGit | ||||
|  |  | |||
							
								
								
									
										39
									
								
								packages/ant-dracula.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								packages/ant-dracula.nix
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,39 @@ | |||
| { stdenv, fetchurl, gtk-engine-murrine }: | ||||
| 
 | ||||
| stdenv.mkDerivation rec { | ||||
|   pname = "ant-dracula-theme"; | ||||
|   version = "1.3.0"; | ||||
| 
 | ||||
|   src = fetchurl { | ||||
|     url = "https://github.com/EliverLara/Ant-Dracula/releases/download/v${version}/Ant-Dracula.tar"; | ||||
|     sha256 = "00b8w69xapqy8kc7zqwlfz1xpld6hibbh35djvhcnd905gzzymkd"; | ||||
|   }; | ||||
| 
 | ||||
|   propagatedUserEnvPkgs = [ | ||||
|     gtk-engine-murrine | ||||
|   ]; | ||||
| 
 | ||||
|   dontBuild = true; | ||||
| 
 | ||||
|   installPhase = '' | ||||
|     runHook preInstall | ||||
|     mkdir -p $out/share/themes/Ant-Dracula | ||||
|     cp -a * $out/share/themes/Ant-Dracula | ||||
|     rm -r $out/share/themes/Ant-Dracula/{Art,LICENSE,README.md,gtk-2.0/render-assets.sh} | ||||
|     runHook postInstall | ||||
|   ''; | ||||
| 
 | ||||
|   outputHashAlgo = "sha256"; | ||||
|   outputHashMode = "recursive"; | ||||
|   outputHash = "1ns00y1haxm20jak26gjv53yisaw9vsr2dbsgj10zz65rglr1h18"; | ||||
| 
 | ||||
|   meta = with stdenv.lib; { | ||||
|     description = "A flat and light theme with a modern look"; | ||||
|     homepage = https://github.com/EliverLara/Ant-Dracula; | ||||
|     license = licenses.gpl3; | ||||
|     platforms = platforms.all; | ||||
|     maintainers = [ | ||||
|       maintainers.pbogdan | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
		Reference in a new issue