#!/usr/bin/env bash ############################################################################### # dllm — LLM launcher via dmenu # # Maintainer: Kris Yotam # License: MIT # Created: 2026-02-18 ############################################################################### TERM_CMD="st" # Top-level menu tier1=$(printf '%s\n' \ " Cloud" \ " Local" \ | dmenu -i -l 2 -p " LLM") [ -z "$tier1" ] && exit 0 case "$tier1" in *Cloud*) choice=$(printf '%s\n' \ " Claude Code" \ "󰊭 Gemini" \ | dmenu -i -l 2 -p " Cloud") [ -z "$choice" ] && exit 0 case "$choice" in *Claude*) setsid -f $TERM_CMD -e claude &>/dev/null ;; *Gemini*) setsid -f $TERM_CMD -e gemini &>/dev/null ;; esac ;; *Local*) # Pull installed models from ollama models=$(ollama list 2>/dev/null | tail -n +2 | awk '{print $1}') if [ -z "$models" ]; then notify-send "dllm" "No local models installed. Run: ollama pull " exit 1 fi # Prefix each model with nerd font icon menu=$(echo "$models" | while read -r m; do echo " $m"; done) choice=$(echo "$menu" | dmenu -i -l 20 -p " Local") [ -z "$choice" ] && exit 0 # Strip icon prefix to get model name model=$(echo "$choice" | sed 's/^. //') setsid -f $TERM_CMD -e ollama run "$model" &>/dev/null ;; esac