diff --git a/overlays/patches/dmenu.patch b/home/natto/patches/dmenu.patch similarity index 100% rename from overlays/patches/dmenu.patch rename to home/natto/patches/dmenu.patch diff --git a/overlays/patches/dwm.patch b/home/natto/patches/dwm.patch similarity index 100% rename from overlays/patches/dwm.patch rename to home/natto/patches/dwm.patch diff --git a/overlays/patches/st.patch b/home/natto/patches/st.patch similarity index 100% rename from overlays/patches/st.patch rename to home/natto/patches/st.patch diff --git a/overlays/customscripts/default.nix b/overlays/customscripts/default.nix index 4cea0c7..11cb0ad 100644 --- a/overlays/customscripts/default.nix +++ b/overlays/customscripts/default.nix @@ -1,17 +1,12 @@ -{lib, stdenv, fetchFromGitHub}: -stdenv.mkDerivation rec{ +{lib, stdenvNoCC, fetchFromGitHub}: + +stdenvNoCC.mkDerivation { name = "customscripts"; src = ./src; - /* src = fetchFromGitHub { - owner = "idcretard"; - repo = "custom-scripts"; - rev = "a996a52831316cc2c282904352654bd20c82f7bd"; - sha256 = "sha256-nw21YmcmQMF8NADnuHOc7eF2Yaj/r/1mYBn77fYK7s8="; - };*/ unpackPhase = ":"; installPhase = '' mkdir -p $out/bin cp -r $src/* $out/bin - for x in $out/bin/*; do chmod +x "$x"; done + chmod -R +x $out/bin/* ''; } diff --git a/overlays/customscripts/src/dmenu_websearch b/overlays/customscripts/src/dmenu_websearch new file mode 100644 index 0000000..382f019 --- /dev/null +++ b/overlays/customscripts/src/dmenu_websearch @@ -0,0 +1,108 @@ +#!/bin/sh + +# title: dmenu_websearch +# license: CC0 +# author: Sunur Efe Vural +# version: Mar 22, 2019 +# dependencies: dmenu, xdotool, hexdump, xprop, setxkbmap, coreutils. + +# A browser-independent address bar with bookmark support. When the +# cursor is on a web browser it acts as the address bar of that browser. + +browser='firefox --new-window' +engine='https://duckduckgo.com/?q=%s' +bookmarks="$HOME/.bookmarks" + +gotourl() { + if [ "$nbrowser" = surf ] + then + xprop -id "$winid" -f _SURF_GO 8s -set _SURF_GO "$choice" + elif [ -n "$winid" ] && [ -z "$nbrowser" ] + then + #change layout to us cuz xdotool spasms with non-latin layouts + layout=$(setxkbmap -query | awk '/^layout:/{ print $2 }') + setxkbmap -layout us + xdotool key --clearmodifiers "$shortcut"\ + type --clearmodifiers --delay 2 "$choice" + xdotool key --clearmodifiers Return + setxkbmap -layout "$layout" + elif [ -n "$nbrowser" ] + then + $nbrowser "$choice" + else $browser "$choice" + fi +} + +searchweb() { + #convert search query to percent encoding and insert it into url + choice=$(echo "$choice" | hexdump -v -e '/1 " %02x"') + choice=$(echo "$engine" | sed "s/%s/${choice% 0a}/;s/[[:space:]]/%/g") + gotourl +} + +xprop -root | grep '^_NET_ACTIVE_WINDOW' && { + winid=$(xprop -root _NET_ACTIVE_WINDOW | sed 's/.*[[:space:]]//') + class=$(xprop -id "$winid" WM_CLASS | awk -F'\"' '{ print $(NF - 1) }') + case "$class" in + Firefox) nbrowser='firefox' ;; + #Firefox) shortcut='ctrl+l' ;; # alternative method, uses xdotool + IceCat) nbrowser='icecat' ;; + Chromium) nbrowser='chromium' ;; + Chrome) nbrowser='chrome' ;; + Opera) nbrowser='opera' ;; + Vivaldi) nbrowser='vivaldi' ;; # not tested + Brave) nbrowser='brave' ;; # not tested + Conkeror) nbrowser='conkeror' ;; # not tested + Palemoon) nbrowser='palemoon' ;; # not tested + Iceweasel) nbrowser='iceweasel' ;; # not tested + qutebrowser) nbrowser='qutebrowser' ;; + Midori) nbrowser='midori' ;; # not that good + Luakit) nbrowser='luakit' ;; # uses the last window instance + Uzbl|Vimb) shortcut='o' ;; + Links) shortcut='g' ;; + Netsurf*|Epiphany|Dillo|Konqueror|Arora) shortcut='ctrl+l' ;; + Surf) nbrowser='surf' ; uricur=$(xprop -id "$winid" _SURF_URI |\ + awk -F'\"' '{ print $( NF - 1 ) }') ;; + *) pid=$(xprop -id "$winid" _NET_WM_PID | awk '{ print $3 }') + while pgrep -oP "$pid" >/dev/null + do + pid=$(pgrep -oP "$pid") + done + pname=$(awk '/^Name\:/{ print $NF }' /proc/"$pid"/status) || + winid="" ;; + esac + [ -n "$pname" ] && case "$pname" in + w3m) shortcut="U" ;; + lynx|elinks|links) shortcut="g" ;; + *) winid="" ;; + esac +} + +tmpfile=$(mktemp /tmp/dmenu_websearch.XXXXXX) +trap 'rm "$tmpfile"' 0 1 15 +printf '%s\n%s\n' "$uricur" "$1" > "$tmpfile" +cat "$bookmarks" >> "$tmpfile" +sed -i -E '/^(#|$)/d' "$tmpfile" +choice=$(dmenu -i -p "Go:" -w "$winid" < "$tmpfile") || exit 1 + +# Detect links without protocol (This is WIP) +protocol='^(https?|ftps?|mailto|about|file):///?' +checkurl() { + grep -Fx "$choice" "$tmpfile" && + choice=$(echo "$choice" | awk '{ print $1 }') && return 0 + [ ${#choice} -lt 4 ] && return 1 + echo "$choice" | grep -Z ' ' && return 1 + echo "$choice" | grep -EiZ "$protocol" && return 0 + echo "$choice" | grep -FZ '..' && return 1 + prepath=$(echo "$choice" | sed 's/(\/|#|\?).*//') + echo "$prepath" | grep -FvZ '.' && return 1 + echo "$prepath" | grep -EZ '^([[:alnum:]~_:-]+\.?){1,3}' && return 0 +} + +if checkurl +then + echo "$choice" | grep -EivZ "$protocol" && + choice="http://$choice" + gotourl +else searchweb +fi diff --git a/overlays/customscripts/src/up b/overlays/customscripts/src/up index 1f28a03..2a82533 100644 --- a/overlays/customscripts/src/up +++ b/overlays/customscripts/src/up @@ -1,5 +1,5 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash for x in "$@"; do - curl -F "file=@\"$x\"" -F "key=$FILEHOST_KEY" https://f.weirdnatto.in - echo " " + curl -F "file=@\"$x\"" -F "key=$FILEHOST_KEY" $FILEHOST_URL + printf "\n" done diff --git a/overlays/customscripts/src/upl b/overlays/customscripts/src/upl deleted file mode 100644 index d27740d..0000000 --- a/overlays/customscripts/src/upl +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env sh -for x in "$@"; do - curl -F "file=@\"$x\"" -F "key=$FILEHOST_KEY" $FILEHOST_URL - echo " " -done diff --git a/overlays/overridesandshit.nix b/overlays/overridesandshit.nix deleted file mode 100644 index d85cd59..0000000 --- a/overlays/overridesandshit.nix +++ /dev/null @@ -1,32 +0,0 @@ -final: prev: { - - dmenu = prev.dmenu.overrideAttrs (oldAttrs: rec { - version = "5.2"; - src = builtins.fetchTarball { - url = "https://dl.suckless.org/tools/dmenu-${version}.tar.gz"; - sha256 = "1rxxc3qdb5qvwg284f0hximg9953fnvlymxwmi1zlqkqbs8qbizk"; - }; - patches = [ ./patches/dmenu.patch ]; - }); - - dwm = prev.dwm.overrideAttrs (oldAttrs: rec { - src = builtins.fetchTarball { - url = "https://dl.suckless.org/dwm/dwm-6.2.tar.gz"; - sha256 = "0qdh8amfkjpvbwffar0byybcqi5w7v1wdqb39h75521haa6mh8xg"; - }; - patches = [ ./patches/dwm.patch ]; - }); - - st = prev.st.overrideAttrs (oldAttrs: rec { - version = "0.9"; - src = builtins.fetchTarball { - url = "https://dl.suckless.org/st/st-${version}.tar.gz"; - sha256 = "1bdhh5lnhiz7q4ihig1f5q0ay5glsqxhpxpnsfqxwffqqwmy1vlh"; - }; - patches = [ ./patches/st.patch ]; - }); - - proxychains = prev.proxychains.overrideAttrs (_: { - postInstall = ":"; - }); -} diff --git a/overlays/packages.nix b/overlays/packages.nix index bc5e94c..4280a48 100644 --- a/overlays/packages.nix +++ b/overlays/packages.nix @@ -6,5 +6,6 @@ let customscripts = call ./customscripts { }; gruvbox-icons = call ./gruvbox-icons { }; mymacs = c: call ./emacs { conf = c; }; - tlauncher = call ./tlauncher { }; + tlauncher = call ./tlauncher { }; + simp1e-cursors = call ./simp1e { }; } diff --git a/overlays/simp1e/default.nix b/overlays/simp1e/default.nix new file mode 100644 index 0000000..b1bfdb4 --- /dev/null +++ b/overlays/simp1e/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenvNoCC, fetchFromGitLab, python3, librsvg, xcursorgen }: + +stdenvNoCC.mkDerivation rec { + pname = "simp1e-cursors"; + version = "20221103.2"; + + src = fetchFromGitLab { + owner = "cursors"; + repo = "simp1e"; + rev = version; + sha256 = "sha256-3DCF6TwxWwYK5pF2Ykr3OwF76H7J03vLNZch/XoZZZk="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + (python3.withPackages (ps: with ps; [ pillow ])) + librsvg + xcursorgen + ]; + + buildPhase = '' + patchShebangs . + HOME=$TMP ./build.sh + ''; + + installPhase = '' + install -dm 755 $out/share/icons + cp -dr --no-preserve='ownership' built_themes/* $out/share/icons/ + ''; + + meta = with lib; { + description = "An aesthetic cursor theme for Linux desktops"; + homepage = "https://gitlab.com/cursors/simp1e"; + license = licenses.gpl3; + platforms = platforms.all; + maintainers = with maintainers; [ natto1784 ]; + }; +} +