b12f restructure #1
|
@ -1 +1,15 @@
|
|||
final: prev: { }
|
||||
final: prev:
|
||||
with final; {
|
||||
import-gtk-settings = writeShellScriptBin "import-gtk-settings" (import ./import-gtk-settings.nix final);
|
||||
mailto-mutt = writeShellScriptBin "mailto-mutt" (import ./mailto-mutt.nix final);
|
||||
mopidy-jellyfin = import ./mopidy-jellyfin.nix final;
|
||||
mu = writeShellScriptBin "mu" (import ./mu.nix final);
|
||||
psos = writeShellScriptBin "psos" (import ./psos.nix final);
|
||||
s = writeShellScriptBin "s" (import ./s.nix final);
|
||||
sway-launcher = writeScriptBin "sway-launcher" (import ./sway-launcher.nix final);
|
||||
sway-service = writeShellScriptBin "sway-service" (import ./sway-service.nix final);
|
||||
swaylock-bg = writeScriptBin "swaylock-bg" (import ./swaylock-bg.nix final);
|
||||
toggle-kbd-layout = writeShellScriptBin "toggle-kbd-layout" (import ./toggle-kbd-layout.nix final);
|
||||
uhk-agent = import ./uhk-agent.nix final;
|
||||
wcwd = writeShellScriptBin "wcwd" (import ./wcwd.nix final);
|
||||
}
|
||||
|
|
11
pkgs/import-gtk-settings.nix
Normal file
11
pkgs/import-gtk-settings.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
self: with self; ''
|
||||
# usage: import-gsettings <gsettings key>:<settings.ini key> <gsettings key>:<settings.ini key> ...
|
||||
|
||||
expression=""
|
||||
for pair in "$@"; do
|
||||
IFS=:; set -- $pair
|
||||
expressions="$expressions -e 's/^$2=(.*)$/gsettings set org.gnome.desktop.interface $1 \1/e'"
|
||||
done
|
||||
IFS=
|
||||
eval exec sed -E $expressions "$XDG_CONFIG_HOME"/gtk-3.0/settings.ini >/dev/null
|
||||
''
|
5
pkgs/mailto-mutt.nix
Normal file
5
pkgs/mailto-mutt.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
self: with self; ''
|
||||
echo "$@" >> $XDG_CACHE_HOME/log/mailto.log
|
||||
|
||||
exec ${alacritty}/bin/alacritty -e neomutt -- "$@"
|
||||
''
|
29
pkgs/mopidy-jellyfin.nix
Normal file
29
pkgs/mopidy-jellyfin.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
self: with self;
|
||||
let
|
||||
websocket-client = python38.pkgs.buildPythonPackage rec {
|
||||
pname = "websocket-client";
|
||||
version = "1.0.0";
|
||||
doCheck = false;
|
||||
src = python38.pkgs.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-UFGzii9MJ/vXygd+uyPsaWWmJt7VqVY382vhs1tsT4E=";
|
||||
};
|
||||
};
|
||||
in
|
||||
python38.pkgs.buildPythonPackage rec {
|
||||
pname = "Mopidy-Jellyfin";
|
||||
version = "1.0.2";
|
||||
doCheck = false;
|
||||
propagatedBuildInputs = with python38.pkgs; [
|
||||
unidecode
|
||||
websocket-client
|
||||
requests
|
||||
setuptools
|
||||
pykka
|
||||
mopidy
|
||||
];
|
||||
src = python38.pkgs.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-5XimIIQSpvNyQbSOFtSTkA0jhA0V68BbyQEQNnov+0g=";
|
||||
};
|
||||
}
|
3
pkgs/mu.nix
Normal file
3
pkgs/mu.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
self: with self; ''
|
||||
exec ${alacritty}/bin/alacritty --class mu_vimpc --option dimensions.columns=120 --option dimensions.lines=80 -e vimpc -- "$@"
|
||||
''
|
29
pkgs/psos.nix
Normal file
29
pkgs/psos.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
self: with self; ''
|
||||
case $1 in
|
||||
rebuild)
|
||||
shift;
|
||||
exec sudo nixos-rebuild switch --flake "/etc/nixos#installed-host" $@
|
||||
;;
|
||||
update)
|
||||
shift;
|
||||
cd /etc/nixos
|
||||
git pull
|
||||
exec nix flake update
|
||||
;;
|
||||
option)
|
||||
shift;
|
||||
exec nixos-option -I nixpkgs=/etc/nixos/lib/compat $@
|
||||
;;
|
||||
*)
|
||||
if [[ "$@" != "" ]]; then
|
||||
echo "Unknown command: psos $@"
|
||||
echo ""
|
||||
fi
|
||||
echo "Usage: psos [COMMAND]"
|
||||
echo " rebuild Rebuild the configuration and switch to it"
|
||||
echo " update Pull git and update flake.lock"
|
||||
echo " option [path] See the current value for an option in the flake config. Example: psos option nix.nixPath"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
''
|
39
pkgs/s.nix
Normal file
39
pkgs/s.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
self: with self; ''
|
||||
case $1 in
|
||||
d)
|
||||
shift;
|
||||
URL="https://duckduckgo.com?q=$@"
|
||||
;;
|
||||
no)
|
||||
shift;
|
||||
URL="https://search.nixos.org/options?query=$@"
|
||||
;;
|
||||
np)
|
||||
shift;
|
||||
URL="https://search.nixos.org/packages?query=$@"
|
||||
;;
|
||||
rs)
|
||||
shift;
|
||||
URL="https://doc.rust-lang.org/std/index.html?search=$@"
|
||||
;;
|
||||
rsc)
|
||||
shift;
|
||||
URL="https://docs.rs/releases/search?query=$@"
|
||||
;;
|
||||
mdn)
|
||||
shift;
|
||||
URL="https://developer.mozilla.org/en-US/search?q=$@"
|
||||
;;
|
||||
w)
|
||||
shift;
|
||||
URL="https://en.wikipedia.org/w/index.php?search=$@"
|
||||
;;
|
||||
*)
|
||||
URL="https://search.b12f.io?q=$@"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
${firefox-wayland}/bin/firefox --new-tab "$URL"
|
||||
${sway}/bin/swaymsg '[app_id="firefox"]' focus
|
||||
''
|
64
pkgs/sway-launcher.nix
Normal file
64
pkgs/sway-launcher.nix
Normal file
|
@ -0,0 +1,64 @@
|
|||
self: with self; ''
|
||||
#!/usr/bin/env zsh
|
||||
# terminal application launcher for sway, using fzf
|
||||
# original command:
|
||||
# Based on: https://github.com/swaywm/sway/issues/1367
|
||||
# bindsym $altkey+space exec termite --name=launcher -e \
|
||||
# "bash -c 'compgen -c | sort -u | fzf --no-extended --print-query | \
|
||||
# tail -n1 | xargs -r swaymsg -t command exec'"
|
||||
|
||||
HIST_FILE="''${XDG_CACHE_HOME:-$HOME/.cache}/sway-launcher-history.txt"
|
||||
|
||||
# Get shell command list
|
||||
# This may include the occasional non-executable file
|
||||
command_list=$({ whence -wm '*' | sed 's/:[^:]*$//' })
|
||||
|
||||
# read existing command history
|
||||
if [ -f "$HIST_FILE" ]; then
|
||||
command_history=$(cat "$HIST_FILE")
|
||||
else
|
||||
command_history=""
|
||||
fi
|
||||
|
||||
# search command list
|
||||
command_str=$(printf "%s\n" "''${command_history}" "''${command_list}" | \
|
||||
sed -E 's/^[0-9]+ (.+)$/\1/' | \
|
||||
fzf --exact --no-extended --print-query --no-sort | \
|
||||
tail -n1) || exit 1
|
||||
|
||||
if [ "$command_str" = "" ]; then
|
||||
exit 1
|
||||
fi
|
||||
# echo "Command: $command_str"
|
||||
|
||||
# using \E flag from perl regex
|
||||
test "''${command_str#*\\E}" != "$command_str" && echo "command can't contain '\E'"
|
||||
test "''${command_str#*\\E}" != "$command_str" && exit 1
|
||||
|
||||
# get full line from history (with count number)
|
||||
hist_line=$(echo "$command_history" | grep -Pe "^[0-9]+ \Q$command_str\E$")
|
||||
# echo "Hist Line: $hist_line"
|
||||
|
||||
if [ "$hist_line" = "" ]; then
|
||||
hist_count=1
|
||||
else
|
||||
# Increment usage count
|
||||
hist_count=$(echo "$hist_line" | sed -E 's/^([0-9]+) .+$/\1/')
|
||||
hist_count=$((hist_count + 1))
|
||||
# delete line, to add updated later
|
||||
# echo "Hist Before: $command_history"
|
||||
command_history=$(echo "$command_history" | \
|
||||
grep --invert-match -Pe "^[0-9]+ \Q$command_str\E$")
|
||||
# echo "Hist After: $command_history"
|
||||
fi
|
||||
|
||||
# update history
|
||||
update_line="''${hist_count} ''${command_str}"
|
||||
printf "%s\n" "''${update_line}" "''${command_history}" | \
|
||||
sort --numeric-sort --reverse > "$HIST_FILE"
|
||||
# echo "$update_line"
|
||||
|
||||
# execute command
|
||||
echo "$command_str"
|
||||
${sway}/bin/swaymsg -t command exec "$command_str"
|
||||
''
|
6
pkgs/sway-service.nix
Normal file
6
pkgs/sway-service.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
self: with self; ''
|
||||
# first import environment variables from the login manager
|
||||
systemctl --user import-environment
|
||||
# then start the service
|
||||
exec systemctl --wait --user start sway.service
|
||||
''
|
20
pkgs/swaylock-bg.nix
Normal file
20
pkgs/swaylock-bg.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
self: with self; ''
|
||||
# Dependencies:
|
||||
# swaylock
|
||||
|
||||
# Make sure we aren't running twice
|
||||
RUNNING=$(ps -A | grep swaylock | wc -l)
|
||||
if [ $RUNNING -ne 0 ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
IMAGE=$XDG_CONFIG_HOME/wallpaper.jpg
|
||||
LOCKARGS=""
|
||||
|
||||
for OUTPUT in `${sway}/bin/swaymsg -t get_outputs | jq -r '.[].name'`
|
||||
do
|
||||
LOCKARGS="''${LOCKARGS} --image ''${OUTPUT}:''${IMAGE}"
|
||||
IMAGES="''${IMAGES} ''${IMAGE}"
|
||||
done
|
||||
exec ${swaylock}/bin/swaylock $LOCKARGS
|
||||
''
|
14
pkgs/toggle-kbd-layout.nix
Normal file
14
pkgs/toggle-kbd-layout.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
self: with self; ''
|
||||
set -e
|
||||
|
||||
current_layout=$(${sway}/bin/swaymsg -t get_inputs | ${jq}/bin/jq -r '.[] | select(.type == "keyboard") | .xkb_active_layout_index' | head -1)
|
||||
total_layouts=$(${sway}/bin/swaymsg -t get_inputs | ${jq}/bin/jq -r '.[] | select(.type == "keyboard") | .xkb_layout_names | length' | head -1)
|
||||
|
||||
next_layout=$(expr $current_layout + 1);
|
||||
|
||||
if [ $next_layout -ge $total_layouts ]; then
|
||||
next_layout=0;
|
||||
fi
|
||||
|
||||
${sway}/bin/swaymsg input '*' xkb_switch_layout "$next_layout"
|
||||
''
|
44
pkgs/uhk-agent.nix
Normal file
44
pkgs/uhk-agent.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
self: with self;
|
||||
let
|
||||
uhk-agent-bin = stdenv.mkDerivation rec {
|
||||
pname = "uhk-agent-bin";
|
||||
version = "1.5.14";
|
||||
src = builtins.fetchurl {
|
||||
url = "https://github.com/UltimateHackingKeyboard/agent/releases/download/v1.5.14/UHK.Agent-1.5.14-linux-x86_64.AppImage";
|
||||
sha256 = "sha256:1yzh4ixy0cqg02xf84vcqj3h67mkxyzs6jf1h935ay582n70nyqg";
|
||||
};
|
||||
phases = [ "installPhase" "patchPhase" ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp $src $out/bin/uhk-agent
|
||||
chmod +x $out/bin/uhk-agent
|
||||
'';
|
||||
};
|
||||
|
||||
script = ''
|
||||
#!${bash}/bin/bash
|
||||
|
||||
${appimage-run}/bin/appimage-run ${uhk-agent-bin}/bin/uhk-agent
|
||||
'';
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "uhk-agent";
|
||||
version = "1.5.14";
|
||||
buildInputs = [
|
||||
bash
|
||||
uhk-agent-bin
|
||||
appimage-run
|
||||
];
|
||||
|
||||
phases = [ "buildPhase" "installPhase" "patchPhase" ];
|
||||
|
||||
buildPhase = ''
|
||||
echo "${script}" >> uhk-agent
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp uhk-agent $out/bin/uhk-agent
|
||||
chmod +x $out/bin/uhk-agent
|
||||
'';
|
||||
}
|
5
pkgs/wcwd.nix
Normal file
5
pkgs/wcwd.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
self: with self; ''
|
||||
pid=$(${sway}/bin/swaymsg -t get_tree | jq '.. | select(.type?) | select(.type=="con") | select(.focused==true).pid')
|
||||
ppid=$(pgrep --newest --parent ''${pid})
|
||||
readlink /proc/''${ppid}/cwd || echo $HOME
|
||||
''
|
Loading…
Reference in a new issue