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
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# bspc-swap
|
# Script: bspc-swap
|
||||||
# swaps current window with the next window in a direction. If -m is set, moves
|
# Author: Henrik Lissner
|
||||||
# window to the next monitor in that direction.
|
# 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)
|
# The behavior of the base 'bspc node -s' is odd when crossing screens. It will
|
||||||
# Example:
|
# swaps with the last selected window on that screen, rather than the window on
|
||||||
# + bspc-swap south
|
# the connecting edge, which is unintuitive.
|
||||||
# + bspc-swap -m west
|
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
rofi -show drun \
|
rofi -show drun \
|
||||||
-modi drun,run \
|
-modi drun,run \
|
||||||
-display-drun apps \
|
|
||||||
-show-icons \
|
-show-icons \
|
||||||
-theme theme/appmenu.rasi
|
-theme theme/appmenu.rasi
|
|
@ -5,7 +5,7 @@
|
||||||
#
|
#
|
||||||
# requires: sqlite3
|
# 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:-'{{::}}'}
|
SEP=${1:-'{{::}}'}
|
||||||
|
|
||||||
_do_rofi() {
|
_do_rofi() {
|
||||||
|
@ -28,20 +28,20 @@ case ${BROWSER:-firefox} in
|
||||||
# The db can be locked from time to time. This is inefficient, but
|
# 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
|
# places.sqlite is usually under 30mb so this should be instant, and
|
||||||
# /tmp is cleared at boot so...
|
# /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"
|
cp "$dir/places.sqlite" "/tmp/places.sqlite"
|
||||||
sqlite3 -separator $SEP "/tmp/places.sqlite" \
|
# sqlite3 -separator $SEP "/tmp/places.sqlite" \
|
||||||
"SELECT DISTINCT title, url FROM moz_places \
|
# "SELECT DISTINCT title, url FROM moz_places \
|
||||||
WHERE title IS NOT NULL \
|
# WHERE title IS NOT NULL \
|
||||||
ORDER BY last_visit_date DESC" >/tmp/rofi-browsermenu
|
# ORDER BY last_visit_date DESC" >/tmp/rofi-bookmarkmenu
|
||||||
sqlite3 -separator $SEP "/tmp/places.sqlite" \
|
sqlite3 -separator $SEP "/tmp/places.sqlite" \
|
||||||
"SELECT DISTINCT mb.title, mp.url FROM moz_bookmarks mb \
|
"SELECT DISTINCT mb.title, mp.url FROM moz_bookmarks mb \
|
||||||
INNER JOIN moz_places mp ON mp.id = mb.fk \
|
INNER JOIN moz_places mp ON mp.id = mb.fk \
|
||||||
WHERE mb.type = 1 AND mb.title IS NOT NULL \
|
WHERE mb.type = 1 AND mb.title IS NOT NULL \
|
||||||
ORDER BY mp.frecency DESC \
|
ORDER BY mp.frecency DESC \
|
||||||
LIMIT 200" >>/tmp/rofi-browsermenu
|
LIMIT 200" >>/tmp/rofi-bookmarkmenu
|
||||||
# fi
|
# 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
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -49,11 +49,11 @@ case ${BROWSER:-firefox} in
|
||||||
qutebrowser)
|
qutebrowser)
|
||||||
{
|
{
|
||||||
sed -e 's/ /{{::}}/' urls | awk -F'{{::}}' '{printf "%s{{::}}%s\n", $2, $1}'
|
sed -e 's/ /{{::}}/' urls | awk -F'{{::}}' '{printf "%s{{::}}%s\n", $2, $1}'
|
||||||
sqlite3 -separator $SEP "$XDG_DATA_HOME/qutebrowser/history.sqlite" \
|
# sqlite3 -separator $SEP "$XDG_DATA_HOME/qutebrowser/history.sqlite" \
|
||||||
"SELECT title, url FROM History \
|
# "SELECT title, url FROM History \
|
||||||
WHERE title != '' \
|
# WHERE title != '' \
|
||||||
GROUP BY url \
|
# GROUP BY url \
|
||||||
ORDER BY atime DESC"
|
# ORDER BY atime DESC"
|
||||||
} | _do_rofi
|
} | _do_rofi
|
||||||
;;
|
;;
|
||||||
*) rofi -e "No known browser" ;;
|
*) rofi -e "No known browser" ;;
|
|
@ -1,5 +1,6 @@
|
||||||
#!/usr/bin/env sh
|
#!/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
|
if [ -d "$DIR" ]; then
|
||||||
cd "$DIR"
|
cd "$DIR"
|
||||||
if [[ $1 == "-x" ]]; then
|
if [[ $1 == "-x" ]]; then
|
0
bin/rofi/networkmenu
Normal file
0
bin/rofi/networkmenu
Normal file
|
@ -6,10 +6,11 @@
|
||||||
# Example: passmenu [RESUME]
|
# Example: passmenu [RESUME]
|
||||||
|
|
||||||
ROFI_CMD='rofi -dmenu -theme theme/passmenu.rasi'
|
ROFI_CMD='rofi -dmenu -theme theme/passmenu.rasi'
|
||||||
|
ROFI_MSG_CMD='rofi -theme theme/passmenu.rasi -markup -e'
|
||||||
set -e
|
set -e
|
||||||
shopt -s nullglob globstar
|
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
|
if ! command -v "$prog" >/dev/null; then
|
||||||
>&2 echo "$prog not installed, aborting"
|
>&2 echo "$prog not installed, aborting"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -42,11 +43,11 @@ else
|
||||||
password_files=( "$prefix"/**/*.gpg )
|
password_files=( "$prefix"/**/*.gpg )
|
||||||
password_files=( "${password_files[@]#"$prefix"/}" )
|
password_files=( "${password_files[@]#"$prefix"/}" )
|
||||||
password_files=( "${password_files[@]%.gpg}" )
|
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
|
fi
|
||||||
|
|
||||||
if [[ -z $entry ]]; then
|
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
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -54,14 +55,14 @@ echo "$entry" >/tmp/_upm
|
||||||
secrets="$(pass show "$entry")"
|
secrets="$(pass show "$entry")"
|
||||||
if [[ -n $secrets ]]; then
|
if [[ -n $secrets ]]; then
|
||||||
fields=$(awk -F': ' 'NR>1 && !/^otpauth:/ {print $1}' <<<"$secrets")
|
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
|
case $field in
|
||||||
password) pass -c "$entry" ;;
|
password) pass -c "$entry" ;;
|
||||||
otp) printf "%s" "$(pass otp -c "$entry")" ;;
|
otp) printf "%s" "$(pass otp -c "$entry")" ;;
|
||||||
*) printf "%s" "$(awk -v "key=$field:" '$1 == key {print $2}' <<<"$secrets")" | xclip -selection clipboard -in ;;
|
*) printf "%s" "$(awk -v "key=$field:" '$1 == key {print $2}' <<<"$secrets")" | xclip -selection clipboard -in ;;
|
||||||
esac
|
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
|
else
|
||||||
notify-send --urgency=critical "Failed to retrieve $entry"
|
$ROFI_MSG_CMD "<span foreground="red">Failed to retrieve $entry</span>"
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
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
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
SCRID=scratch
|
SCRID=scratch
|
||||||
CMD='tmux new-session -A -s scratch -n scratch'
|
CMD=${1:-'tmux new-session -A -s scratch -n scratch'}
|
||||||
focused=$(xdotool getactivewindow)
|
focused=$(xdotool getactivewindow)
|
||||||
scratch=$(xdotool search --onlyvisible --classname $SCRID)
|
scratch=$(xdotool search --onlyvisible --classname $SCRID)
|
||||||
if [[ -n $scratch ]]; then
|
if [[ -n $scratch ]]; then
|
||||||
|
@ -12,16 +12,13 @@ if [[ -n $scratch ]]; then
|
||||||
fi
|
fi
|
||||||
elif command -v alacritty >/dev/null; then
|
elif command -v alacritty >/dev/null; then
|
||||||
alacritty --class $SCRID \
|
alacritty --class $SCRID \
|
||||||
-d 90 26 \
|
|
||||||
-e $SHELL -c "$CMD"
|
-e $SHELL -c "$CMD"
|
||||||
elif command -v urxvt >/dev/null; then
|
elif command -v urxvt >/dev/null; then
|
||||||
urxvt -name $SCRID \
|
urxvt -name $SCRID \
|
||||||
-geometry 100x26 \
|
|
||||||
-e $SHELL -c "$CMD"
|
-e $SHELL -c "$CMD"
|
||||||
elif command -v xst >/dev/null; then
|
elif command -v xst >/dev/null; then
|
||||||
xst -t $SCRID -n $SCRID -c $SCRID \
|
xst -t $SCRID -n $SCRID -c $SCRID \
|
||||||
-f "$(xrdb -query | grep 'scratch\.font' | cut -f2)" \
|
-f "$(xrdb -query | grep 'scratch\.font' | cut -f2)" \
|
||||||
-g 100x26 \
|
|
||||||
-e $SHELL -c "$CMD"
|
-e $SHELL -c "$CMD"
|
||||||
else
|
else
|
||||||
>&2 echo "No shell to launch the scratch terminal with"
|
>&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 MONITOR=$(xrandr -q | grep primary | cut -d' ' -f1)
|
||||||
export MONITORS=( $(xrandr -q | grep ' connected' | cut -d' ' -f1) )
|
export MONITORS=( $(xrandr -q | grep ' connected' | cut -d' ' -f1) )
|
||||||
MONITOR=${MONITOR:-${MONITORS[0]}}
|
MONITOR=${MONITOR:-${MONITORS[0]}}
|
||||||
|
|
||||||
# Only have workspaces for primary monitor
|
# 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_disabled_monitors true
|
||||||
bspc config remove_unplugged_monitors true
|
bspc config remove_unplugged_monitors true
|
||||||
|
@ -15,14 +15,12 @@ bspc config remove_unplugged_monitors true
|
||||||
bspc rule -r '*'
|
bspc rule -r '*'
|
||||||
|
|
||||||
bspc rule -a Pinentry state=floating center=on
|
bspc rule -a Pinentry state=floating center=on
|
||||||
bspc rule -a Emacs split_ratio=0.28 state=fullscreen border=off
|
bspc rule -a Emacs split_ratio=0.28 state=tiled
|
||||||
bspc rule -a xst-256color border=off
|
|
||||||
bspc rule -a Firefox split_ratio=0.32
|
bspc rule -a Firefox split_ratio=0.32
|
||||||
bspc rule -a feh state=fullscreen
|
bspc rule -a feh state=fullscreen
|
||||||
bspc rule -a 'Emacs:org*' state=floating
|
bspc rule -a 'Emacs:org*' state=floating
|
||||||
bspc rule -a 'Emacs:scratch' 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
|
for file in $XDG_CONFIG_HOME/bspwm/rc.d/*; do
|
||||||
|
|
|
@ -10,19 +10,12 @@ super + t
|
||||||
super + apostrophe
|
super + apostrophe
|
||||||
bspc window -s last
|
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
|
super + Return
|
||||||
xst -e bash -c "tmux new || tmux attach"
|
xst -e bash -c "tmux new || tmux attach"
|
||||||
|
|
||||||
|
ctrl + super + Return
|
||||||
|
xst
|
||||||
|
|
||||||
super + grave
|
super + grave
|
||||||
scratch
|
scratch
|
||||||
|
|
||||||
|
@ -30,13 +23,16 @@ super + shift + grave
|
||||||
emacsclient -e '(open-scratch-frame)'
|
emacsclient -e '(open-scratch-frame)'
|
||||||
|
|
||||||
super + space
|
super + space
|
||||||
rofi-appmenu
|
~/.dotfiles/bin/rofi/appmenu
|
||||||
|
|
||||||
super + Tab
|
super + Tab
|
||||||
rofi-windowmenu
|
~/.dotfiles/bin/rofi/windowmenu
|
||||||
|
|
||||||
super + backslash
|
super + backslash
|
||||||
rofi-passmenu
|
~/.dotfiles/bin/rofi/passmenu
|
||||||
|
|
||||||
|
super + slash
|
||||||
|
~/.dotfiles/bin/rofi/filemenu -x
|
||||||
|
|
||||||
super + Escape
|
super + Escape
|
||||||
pkill -USR1 -x sxhkd
|
pkill -USR1 -x sxhkd
|
||||||
|
@ -48,11 +44,47 @@ super + Escape
|
||||||
#
|
#
|
||||||
##
|
##
|
||||||
|
|
||||||
# Toggle floating/fullscreen
|
## Toggle floating/fullscreen
|
||||||
super + {_,ctrl + }f
|
super + {_,ctrl + }f
|
||||||
bspc node -t ~{floating,fullscreen}
|
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
|
## Media keys
|
||||||
|
|
||||||
|
@ -61,10 +93,10 @@ Print
|
||||||
scrcap
|
scrcap
|
||||||
# screencast region to mp4
|
# screencast region to mp4
|
||||||
super + Print
|
super + Print
|
||||||
scrrec -s ~/shared/$(date +%F-%T).mp4
|
scrrec -s ~/recordings/$(date +%F-%T).mp4
|
||||||
# screencast region to gif
|
# screencast region to gif
|
||||||
super + ctrl + Print
|
super + ctrl + Print
|
||||||
scrrec -s ~/shared/$(date +%F-%T).gif
|
scrrec -s ~/recordings/$(date +%F-%T).gif
|
||||||
|
|
||||||
XF86MonBrightnessUp
|
XF86MonBrightnessUp
|
||||||
light -A 5
|
light -A 5
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
## Services
|
## Services
|
||||||
<modules/services/syncthing.nix>
|
<modules/services/syncthing.nix>
|
||||||
## Theme
|
## Theme
|
||||||
<modules/themes/aquanaut>
|
<modules/themes/fluorescence>
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
my = {
|
my = {
|
||||||
env.PATH = [ <bin/rofi> ];
|
|
||||||
# link recursively so other modules can link files in its folder
|
# link recursively so other modules can link files in its folder
|
||||||
home.xdg.configFile."rofi" = {
|
home.xdg.configFile."rofi" = {
|
||||||
source = <config/rofi>;
|
source = <config/rofi>;
|
||||||
|
@ -17,22 +16,22 @@
|
||||||
|
|
||||||
# Fake rofi dmenu entries
|
# Fake rofi dmenu entries
|
||||||
(makeDesktopItem {
|
(makeDesktopItem {
|
||||||
name = "rofi-browsermenu";
|
name = "rofi-bookmarkmenu";
|
||||||
desktopName = "Open Bookmark in Browser";
|
desktopName = "Open Bookmark in Browser";
|
||||||
icon = "bookmark-new-symbolic";
|
icon = "bookmark-new-symbolic";
|
||||||
exec = "${<config/rofi>}/bin/rofi-browsermenu";
|
exec = "${<bin/rofi/bookmarkmenu>}";
|
||||||
})
|
})
|
||||||
(makeDesktopItem {
|
(makeDesktopItem {
|
||||||
name = "rofi-filemenu";
|
name = "rofi-filemenu";
|
||||||
desktopName = "Open Directory in Terminal";
|
desktopName = "Open Directory in Terminal";
|
||||||
icon = "folder";
|
icon = "folder";
|
||||||
exec = "${<config/rofi>}/bin/rofi-filemenu";
|
exec = "${<bin/rofi/filemenu>}";
|
||||||
})
|
})
|
||||||
(makeDesktopItem {
|
(makeDesktopItem {
|
||||||
name = "rofi-filemenu-scratch";
|
name = "rofi-filemenu-scratch";
|
||||||
desktopName = "Open Directory in Scratch Terminal";
|
desktopName = "Open Directory in Scratch Terminal";
|
||||||
icon = "folder";
|
icon = "folder";
|
||||||
exec = "${<config/rofi>}/bin/rofi-filemenu -x";
|
exec = "${<bin/rofi/filemenu>} -x";
|
||||||
})
|
})
|
||||||
|
|
||||||
(makeDesktopItem {
|
(makeDesktopItem {
|
||||||
|
|
|
@ -25,9 +25,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
my = {
|
my.home.xdg.configFile = {
|
||||||
env.PATH = [ <bin/bspwm> ];
|
|
||||||
home.xdg.configFile = {
|
|
||||||
"sxhkd".source = <config/sxhkd>;
|
"sxhkd".source = <config/sxhkd>;
|
||||||
# link recursively so other modules can link files in their folders
|
# link recursively so other modules can link files in their folders
|
||||||
"bspwm" = {
|
"bspwm" = {
|
||||||
|
@ -35,5 +33,4 @@
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,11 @@
|
||||||
## Desktop apps
|
## Desktop apps
|
||||||
./apps/redshift.nix
|
./apps/redshift.nix
|
||||||
./apps/rofi.nix # My launcher
|
./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
|
## Terminal
|
||||||
# ./apps/alacritty.nix
|
# ./apps/alacritty.nix
|
||||||
|
@ -28,6 +31,13 @@
|
||||||
xclip
|
xclip
|
||||||
xdotool
|
xdotool
|
||||||
libqalculate # calculator cli w/ currency conversion
|
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
|
## Sound
|
||||||
|
@ -59,8 +69,8 @@
|
||||||
backend = "glx";
|
backend = "glx";
|
||||||
vSync = true;
|
vSync = true;
|
||||||
opacityRules = [
|
opacityRules = [
|
||||||
"100:class_g = 'Firefox'"
|
# "100:class_g = 'Firefox'"
|
||||||
"100:class_g = 'Vivaldi-stable'"
|
# "100:class_g = 'Vivaldi-stable'"
|
||||||
"100:class_g = 'VirtualBox Machine'"
|
"100:class_g = 'VirtualBox Machine'"
|
||||||
# Art/image programs where we need fidelity
|
# Art/image programs where we need fidelity
|
||||||
"100:class_g = 'Gimp'"
|
"100:class_g = 'Gimp'"
|
||||||
|
@ -69,10 +79,18 @@
|
||||||
"100:class_g = 'krita'"
|
"100:class_g = 'krita'"
|
||||||
"100:class_g = 'feh'"
|
"100:class_g = 'feh'"
|
||||||
"100:class_g = 'mpv'"
|
"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 = [
|
settings.blur-background-exclude = [
|
||||||
"window_type = 'dock'"
|
"window_type = 'dock'"
|
||||||
"window_type = 'desktop'"
|
"window_type = 'desktop'"
|
||||||
|
"class_g = 'Rofi'"
|
||||||
"_GTK_FRAME_EXTENTS@:c"
|
"_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
|
(callPackage
|
||||||
(builtins.fetchTarball
|
(builtins.fetchTarball
|
||||||
https://github.com/xzfc/cached-nix-shell/archive/master.tar.gz) {});
|
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") {
|
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
|
# Occasionally, "stable" packages are broken or incomplete, so access to the
|
||||||
# bleeding edge is necessary, as a last resort.
|
# bleeding edge is necessary, as a last resort.
|
||||||
unstable = import <nixpkgs-unstable> { inherit config; };
|
unstable = import <nixos-unstable> { inherit config; };
|
||||||
})
|
})
|
||||||
|
|
||||||
# emacsGit
|
# 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