Migrate custom dmenu selection
Add my very first own derivation (via overlay). Use existing scripts for dmenu. "Build" result for nix out of the scripts, e.g. replace references to nix dependencies. Create proper output so nix can move it to proper places.
This commit is contained in:
parent
953922fc5c
commit
fdde37afd7
1
home.nix
1
home.nix
|
@ -35,6 +35,7 @@
|
|||
# System tools
|
||||
pkgs.dmenu
|
||||
pkgs.networkmanager_dmenu
|
||||
pkgs.dmenu-custom-scripts
|
||||
pkgs.dunst
|
||||
pkgs.st
|
||||
|
||||
|
|
20
overlays/dmenu-custom-scripts/default.nix
Normal file
20
overlays/dmenu-custom-scripts/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
self: super: {
|
||||
dmenu-custom-scripts = super.stdenv.mkDerivation {
|
||||
name = "dmenu-custom-scripts";
|
||||
|
||||
src = ./src;
|
||||
|
||||
buildPhase = ''
|
||||
mkdir -p "$out/bin"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
declare -xp
|
||||
cp -r * "$out/bin/"
|
||||
sed -i 's#\$dmenu#${super.pkgs.dmenu}/bin/dmenu#' $out/bin/dmenu_selection
|
||||
sed -i "s#\$out#$out/bin#" $out/bin/dmenu_selection
|
||||
sed -i 's#\$dmenu#${super.pkgs.dmenu}/bin/dmenu#' $out/bin/scripts/*
|
||||
sed -i 's#\$dunstctl#${super.pkgs.dunst}/bin/dunstctl#' $out/bin/scripts/*
|
||||
'';
|
||||
};
|
||||
}
|
6
overlays/dmenu-custom-scripts/readme.rst
Normal file
6
overlays/dmenu-custom-scripts/readme.rst
Normal file
|
@ -0,0 +1,6 @@
|
|||
Still has many references to Ubuntu system tools.
|
||||
Will migrate step by step and update references.
|
||||
|
||||
For now it is cool to have a first custom package which can be installed.
|
||||
|
||||
It already uses nix dunst and dmenu.
|
10
overlays/dmenu-custom-scripts/src/dmenu_selection
Executable file
10
overlays/dmenu-custom-scripts/src/dmenu_selection
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash
|
||||
|
||||
pushd "$out/scripts"
|
||||
|
||||
# use "." for files in folder, use "*" for subfolder as well
|
||||
chosen=$(ls -1 . | $dmenu -i -l 20)
|
||||
|
||||
popd
|
||||
|
||||
sh "$out/scripts/$chosen" || exit 0
|
5
overlays/dmenu-custom-scripts/src/scripts/calc
Executable file
5
overlays/dmenu-custom-scripts/src/scripts/calc
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
input=$($dmenu -i)
|
||||
result=$(echo $input | scale=4 bc -l)
|
||||
echo $result | $dmenu -i -p "Result:"
|
6
overlays/dmenu-custom-scripts/src/scripts/composer_version
Executable file
6
overlays/dmenu-custom-scripts/src/scripts/composer_version
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
chosen=$(echo "1\n2\n"| $dmenu -i -l 20 -p "$(composer --version)")
|
||||
composer selfupdate --$chosen
|
||||
pkill -SIGRTMIN+10 i3blocks
|
||||
notify-send "switching composer version" "$(composer --version)"
|
4
overlays/dmenu-custom-scripts/src/scripts/docs_php
Executable file
4
overlays/dmenu-custom-scripts/src/scripts/docs_php
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
file=$(ls ~/Projects/docs/php/ | $dmenu -i -l 20 -p "Search Term")
|
||||
firefox --new-tab http://php.docs.localhost/$file
|
7
overlays/dmenu-custom-scripts/src/scripts/node_version
Executable file
7
overlays/dmenu-custom-scripts/src/scripts/node_version
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
nodechosen=$(update-alternatives --list node | $dmenu -i -l 20 -p "$(node --version | cut -d'.' -f1,2 | sed s/v//)")
|
||||
npmchoosen="$(dirname $(dirname $nodechosen))/lib/node_modules"
|
||||
sudo update-alternatives --set node $nodechosen > /dev/null
|
||||
sudo update-alternatives --set npm $npmchoosen > /dev/null
|
||||
pkill -SIGRTMIN+10 i3blocks
|
14
overlays/dmenu-custom-scripts/src/scripts/notifications
Executable file
14
overlays/dmenu-custom-scripts/src/scripts/notifications
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/bash
|
||||
|
||||
chosen=$(echo "pause\nresume" | $dmenu -i)
|
||||
case "$chosen" in
|
||||
"pause")
|
||||
$dunstctl set-paused true
|
||||
;;
|
||||
"resume")
|
||||
$dunstctl set-paused false
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
;;
|
||||
esac
|
6
overlays/dmenu-custom-scripts/src/scripts/php_version
Executable file
6
overlays/dmenu-custom-scripts/src/scripts/php_version
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
chosen=$(update-alternatives --list php | $dmenu -i -l 20 -p "$(php --version | head -1 | cut -d' ' -f2 | cut -d'.' -f1,2)")
|
||||
sudo update-alternatives --set php $chosen > /dev/null
|
||||
pkill -SIGRTMIN+10 i3blocks
|
||||
notify-send "switching php version" "$(php --version)"
|
43
overlays/dmenu-custom-scripts/src/scripts/system
Executable file
43
overlays/dmenu-custom-scripts/src/scripts/system
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/bin/bash
|
||||
|
||||
# i3lock -i /home/daniels/Pictures/urknall.png
|
||||
# TODO: Stop all software before logout
|
||||
# https://faq.i3wm.org/question/239/how-do-i-suspendlockscreen-and-logout.1.html#post-id-1927
|
||||
|
||||
chosen=$(echo "lock\nsuspend\nlogout" | $dmenu -i)
|
||||
case "$chosen" in
|
||||
"lock")
|
||||
# See: https://faq.i3wm.org/question/5654/how-can-i-disable-notifications-when-the-screen-locks-and-enable-them-again-when-unlocking/index.html#post-id-5655
|
||||
# suspend message display
|
||||
pkill -u "$USER" -USR1 dunst
|
||||
# guess i3lock via nix points to other PAM and therefore does not identify by password
|
||||
i3lock -c '#2E3436'
|
||||
# i3lock \
|
||||
# --clock \
|
||||
# --indicator \
|
||||
# --pass-media-keys \
|
||||
# --color=#2E3436 \
|
||||
# --timecolor=#9CD9F0FF \
|
||||
# --datecolor=#9CD9F0FF \
|
||||
# --insidecolor=#2E3436FF \
|
||||
# --ringcolor=#9CD9F0FF \
|
||||
# --insidevercolor=#9CD9F0FF \
|
||||
# --ringvercolor=#72B3CCFF \
|
||||
# --veriftext="checking"
|
||||
# resume message display
|
||||
pkill -u "$USER" -USR2 dunst
|
||||
;;
|
||||
"suspend")
|
||||
systemctl suspend
|
||||
;;
|
||||
"logout")
|
||||
i3-msg exit
|
||||
;;
|
||||
# "hibernate")
|
||||
# i3lock -c 2E3436
|
||||
# systemctl hibernate
|
||||
# ;;
|
||||
*)
|
||||
exit 0
|
||||
;;
|
||||
esac
|
63
overlays/dmenu-custom-scripts/src/scripts/xdebug
Executable file
63
overlays/dmenu-custom-scripts/src/scripts/xdebug
Executable file
|
@ -0,0 +1,63 @@
|
|||
#!/bin/bash
|
||||
|
||||
activeString=""
|
||||
action=$(echo "enable\ndisable\n" | $dmenu -i -p "$activeString")
|
||||
case "$action" in
|
||||
"enable")
|
||||
sudo /bin/ln -s /etc/php/5.6/mods-available/xdebug.ini /etc/php/5.6/cli/conf.d/20-xdebug.ini
|
||||
sudo /bin/ln -s /etc/php/5.6/mods-available/xdebug.ini /etc/php/5.6/fpm/conf.d/20-xdebug.ini
|
||||
|
||||
sudo /bin/ln -s /etc/php/7.0/mods-available/xdebug.ini /etc/php/7.0/cli/conf.d/20-xdebug.ini
|
||||
sudo /bin/ln -s /etc/php/7.0/mods-available/xdebug.ini /etc/php/7.0/fpm/conf.d/20-xdebug.ini
|
||||
|
||||
sudo /bin/ln -s /etc/php/7.1/mods-available/xdebug.ini /etc/php/7.1/cli/conf.d/20-xdebug.ini
|
||||
sudo /bin/ln -s /etc/php/7.1/mods-available/xdebug.ini /etc/php/7.1/fpm/conf.d/20-xdebug.ini
|
||||
|
||||
sudo /bin/ln -s /etc/php/7.2/mods-available/xdebug.ini /etc/php/7.2/cli/conf.d/20-xdebug.ini
|
||||
sudo /bin/ln -s /etc/php/7.2/mods-available/xdebug.ini /etc/php/7.2/fpm/conf.d/20-xdebug.ini
|
||||
|
||||
sudo /bin/ln -s /etc/php/7.3/mods-available/xdebug.ini /etc/php/7.3/cli/conf.d/20-xdebug.ini
|
||||
sudo /bin/ln -s /etc/php/7.3/mods-available/xdebug.ini /etc/php/7.3/fpm/conf.d/20-xdebug.ini
|
||||
|
||||
sudo /bin/ln -s /etc/php/7.4/mods-available/xdebug.ini /etc/php/7.4/cli/conf.d/20-xdebug.ini
|
||||
sudo /bin/ln -s /etc/php/7.4/mods-available/xdebug.ini /etc/php/7.4/fpm/conf.d/20-xdebug.ini
|
||||
|
||||
sudo /bin/ln -s /etc/php/8.0/mods-available/xdebug.ini /etc/php/8.0/cli/conf.d/20-xdebug.ini
|
||||
sudo /bin/ln -s /etc/php/8.0/mods-available/xdebug.ini /etc/php/8.0/fpm/conf.d/20-xdebug.ini
|
||||
;;
|
||||
"disable")
|
||||
sudo /usr/bin/unlink /etc/php/5.6/cli/conf.d/20-xdebug.ini
|
||||
sudo /usr/bin/unlink /etc/php/5.6/fpm/conf.d/20-xdebug.ini
|
||||
|
||||
sudo /usr/bin/unlink /etc/php/7.0/cli/conf.d/20-xdebug.ini
|
||||
sudo /usr/bin/unlink /etc/php/7.0/fpm/conf.d/20-xdebug.ini
|
||||
|
||||
sudo /usr/bin/unlink /etc/php/7.1/cli/conf.d/20-xdebug.ini
|
||||
sudo /usr/bin/unlink /etc/php/7.1/fpm/conf.d/20-xdebug.ini
|
||||
|
||||
sudo /usr/bin/unlink /etc/php/7.2/cli/conf.d/20-xdebug.ini
|
||||
sudo /usr/bin/unlink /etc/php/7.2/fpm/conf.d/20-xdebug.ini
|
||||
|
||||
sudo /usr/bin/unlink /etc/php/7.3/cli/conf.d/20-xdebug.ini
|
||||
sudo /usr/bin/unlink /etc/php/7.3/fpm/conf.d/20-xdebug.ini
|
||||
|
||||
sudo /usr/bin/unlink /etc/php/7.4/cli/conf.d/20-xdebug.ini
|
||||
sudo /usr/bin/unlink /etc/php/7.4/fpm/conf.d/20-xdebug.ini
|
||||
|
||||
sudo /usr/bin/unlink /etc/php/8.0/cli/conf.d/20-xdebug.ini
|
||||
sudo /usr/bin/unlink /etc/php/8.0/fpm/conf.d/20-xdebug.ini
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
sudo /bin/systemctl reload php5.6-fpm.service
|
||||
sudo /bin/systemctl reload php7.0-fpm.service
|
||||
sudo /bin/systemctl reload php7.1-fpm.service
|
||||
sudo /bin/systemctl reload php7.2-fpm.service
|
||||
sudo /bin/systemctl reload php7.3-fpm.service
|
||||
sudo /bin/systemctl reload php7.4-fpm.service
|
||||
sudo /bin/systemctl reload php8.0-fpm.service
|
||||
pkill -SIGRTMIN+10 i3blocks
|
||||
notify-send "switching xdebug: $action"
|
Loading…
Reference in a new issue