From 519455fac700d93952b72b40c1030bb41596dace Mon Sep 17 00:00:00 2001 From: Quinn Date: Fri, 30 May 2025 15:22:23 +0200 Subject: [PATCH] start using GNU stow add more configurations to the dotfiles directory --- .config/systemd/user/.gitignore | 2 + .config/user-dirs.dirs | 16 +++++++ .config/user-dirs.locale | 1 + .config/user-tmpfiles.d/localtmp.conf | 2 + .gtkrc-2.0 | 19 ++++++++ .inputrc | 3 ++ .local/bin/buildconfig | 29 +++++++++++ .local/bin/coinflip | Bin 0 -> 16432 bytes .local/bin/cpusetcores | 2 + .local/bin/emcc | 2 + .local/bin/emsdk | 2 + .local/bin/git-leaderboard | 17 +++++++ .local/bin/java-prime | 5 ++ .local/bin/prime-run | 2 + .local/bin/prime-run-conf | 66 ++++++++++++++++++++++++++ .local/bin/unzip-all | 13 +++++ .local/bin/uwu | 6 +++ .local/bin/xfullscreen-toggle | 14 ++++++ .local/share/cpusetcores | Bin 0 -> 16672 bytes .stow-local-ignore | 3 ++ 20 files changed, 204 insertions(+) create mode 100644 .config/systemd/user/.gitignore create mode 100644 .config/user-dirs.dirs create mode 100644 .config/user-dirs.locale create mode 100644 .config/user-tmpfiles.d/localtmp.conf create mode 100644 .gtkrc-2.0 create mode 100644 .inputrc create mode 100755 .local/bin/buildconfig create mode 100755 .local/bin/coinflip create mode 100755 .local/bin/cpusetcores create mode 100755 .local/bin/emcc create mode 100755 .local/bin/emsdk create mode 100755 .local/bin/git-leaderboard create mode 100755 .local/bin/java-prime create mode 100755 .local/bin/prime-run create mode 100755 .local/bin/prime-run-conf create mode 100755 .local/bin/unzip-all create mode 100755 .local/bin/uwu create mode 100755 .local/bin/xfullscreen-toggle create mode 100755 .local/share/cpusetcores create mode 100644 .stow-local-ignore diff --git a/.config/systemd/user/.gitignore b/.config/systemd/user/.gitignore new file mode 100644 index 0000000..e554195 --- /dev/null +++ b/.config/systemd/user/.gitignore @@ -0,0 +1,2 @@ +# ignore enabled systemd units, since these are often symlinks to the system and stuff +/basic.target.wants/ diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs new file mode 100644 index 0000000..287d208 --- /dev/null +++ b/.config/user-dirs.dirs @@ -0,0 +1,16 @@ +# This file is written by xdg-user-dirs-update +# If you want to change or add directories, just edit the line you're +# interested in. All local changes will be retained on the next run. +# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped +# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an +# absolute path. No other format is supported. +# +XDG_DESKTOP_DIR="$HOME/desktop" +XDG_DOWNLOAD_DIR="$HOME/downloads" +XDG_TEMPLATES_DIR="$HOME/templates" +XDG_PUBLICSHARE_DIR="$HOME/public" +XDG_DOCUMENTS_DIR="$HOME/documents" +XDG_MUSIC_DIR="$HOME/music" +XDG_PICTURES_DIR="$HOME/photos" +XDG_VIDEOS_DIR="$HOME/videos" +XDG_PUBLIC_DIR="$HOME/public" diff --git a/.config/user-dirs.locale b/.config/user-dirs.locale new file mode 100644 index 0000000..4889c8e --- /dev/null +++ b/.config/user-dirs.locale @@ -0,0 +1 @@ +en_GB \ No newline at end of file diff --git a/.config/user-tmpfiles.d/localtmp.conf b/.config/user-tmpfiles.d/localtmp.conf new file mode 100644 index 0000000..bd6b40f --- /dev/null +++ b/.config/user-tmpfiles.d/localtmp.conf @@ -0,0 +1,2 @@ +D /home/furry/.local/tmp 0750 furry furry - + diff --git a/.gtkrc-2.0 b/.gtkrc-2.0 new file mode 100644 index 0000000..5178e83 --- /dev/null +++ b/.gtkrc-2.0 @@ -0,0 +1,19 @@ +# DO NOT EDIT! This file will be overwritten by LXAppearance. +# Any customization should be done in ~/.gtkrc-2.0.mine instead. + +include "/home/furry/.gtkrc-2.0.mine" +gtk-theme-name="Gruvbox-Dark" +gtk-icon-theme-name="Gruvbox-Plus-Dark" +gtk-font-name="NotoSans Nerd Font 11" +gtk-cursor-theme-name="Breeze" +gtk-cursor-theme-size=0 +gtk-toolbar-style=GTK_TOOLBAR_BOTH +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=1 +gtk-menu-images=1 +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=1 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle="hintfull" +gtk-xft-rgba="none" diff --git a/.inputrc b/.inputrc new file mode 100644 index 0000000..98b8760 --- /dev/null +++ b/.inputrc @@ -0,0 +1,3 @@ +"\e[A": history-search-backward +"\e[B": history-search-forward + diff --git a/.local/bin/buildconfig b/.local/bin/buildconfig new file mode 100755 index 0000000..7aa5f6e --- /dev/null +++ b/.local/bin/buildconfig @@ -0,0 +1,29 @@ +#!/bin/bash + +BUILD_CONFIG= + +# try to find a valid build config path +if [ -n "${1+x}" ] && [ -f "$1" ] && [[ "$(basename "$1")" == ".buildconfig" ]]; then BUILD_CONFIG="$1" # first check if a build config has been specified, and whether it's a valid path +elif [ -n "${1+x}" ]; then echo "E: the specified path '$1' is not a valid path!"; exit 1 + +elif [[ -f "$PWD/.buildconfig" ]]; then BUILD_CONFIG="$PWD/.buildconfig" # then check if there is a build config in the current working directory +elif [[ -f "$HOME/.buildconfig" ]]; then BUILD_CONFIG="$HOME/.buildconfig" # then check if there is a build config in the home directory +else $EDITOR .buildconfig +#else echo "E: could not find a .buildconfig file and none was specified!"; exit 1 +fi + +source "$BUILD_CONFIG" +[ -z "${cmd+x}" ] && { echo "E: cmd was not set! '$BUILD_CONFIG'"; exit 1; } +[ -z "${arg+x}" ] && { echo "E: arg was not set! '$BUILD_CONFIG'"; exit 1; } + +# export the environment variables if they've been set +if [[ -n ${env+x} ]]; then + for var in "${!env[@]}"; do + export "$var=${env[$var]}" + done +fi + +# execute the command with the arguments +# don't mind if the user made arguments separate out, that would likely be the user's intention +$cmd "$arg" +exit $? diff --git a/.local/bin/coinflip b/.local/bin/coinflip new file mode 100755 index 0000000000000000000000000000000000000000..685da7d7405ddd92505c18df983a8b234278e8f6 GIT binary patch literal 16432 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 nG?~r7z_1R@aG1R?b)aqm% bool: + if (os.path.isdir(outdir) == False): + error(f"'{outdir}' does not exist! can't write .desktop file!") + return False + + if (os.path.exists(outpath)): + error(f"'{outpath}' already exists!") + return False + + if (os.path.isfile(path) == False): + error(f"file does not exist: '{path}'") + return False + return True + + +def create_desktop_file(path: str) -> int: + outdir = os.environ['HOME'] + "/.local/share/applications" + outpath = outdir + "/" + os.path.basename(path) + + if (validate_path(path, outdir, outpath) == False): + return 1 + + f_in = open(path, "r") + f_out = open(outpath, "w") + + while (True): + ln = f_in.readline(); + + if (len(ln) == 0): + break + + if (ln.startswith("Exec=")): + lns = ln.split('=', 1) + ln = f"{lns[0]}=prime-run {lns[1]}" + + f_out.write(ln) + + f_in.close() + f_out.close() + return 0 + +def main(argc: int, argv: list[str]) -> int: + + if (argc <= 1): + error("incorrect amount of arguments! expected: 'desktop file path'") + return 1 + + err = 0 + i = 1 + while (i < argc): + err |= create_desktop_file(argv[i]) + i += 1 + + return err + +if __name__ == "__main__": + import sys + exit(main(len(sys.argv), sys.argv)); diff --git a/.local/bin/unzip-all b/.local/bin/unzip-all new file mode 100755 index 0000000..2f4ffdd --- /dev/null +++ b/.local/bin/unzip-all @@ -0,0 +1,13 @@ +#/bin/bash + +if [ -z ${var+2} ]; then + echo -e "\033[91mno parameters were given!\033[0m" +fi + +for i in $2; do + readonly fname="$(basename $i .*)" + mkdir "$fname" + cd "$fname" + unzip "../$i" + cd - +done diff --git a/.local/bin/uwu b/.local/bin/uwu new file mode 100755 index 0000000..abc476f --- /dev/null +++ b/.local/bin/uwu @@ -0,0 +1,6 @@ +#!/bin/bash + +while true; do + printf "owo " + sleep 0.25 +done diff --git a/.local/bin/xfullscreen-toggle b/.local/bin/xfullscreen-toggle new file mode 100755 index 0000000..ba550fc --- /dev/null +++ b/.local/bin/xfullscreen-toggle @@ -0,0 +1,14 @@ +#!/bin/sh + +WIN=$(xdotool getwindowfocus) +STATE=$(xprop -id "$WIN" _NET_WM_STATE) + +# check if fullscreen is present in the state +if echo "$STATE" | grep -q '_NET_WM_STATE_FULLSCREEN'; then + wmctrl -ir "$WIN" -b remove,fullscreen + exit $? +else + # If not fullscreen, add it + wmctrl -ir "$WIN" -b add,fullscreen + exit $? +fi diff --git a/.local/share/cpusetcores b/.local/share/cpusetcores new file mode 100755 index 0000000000000000000000000000000000000000..9c717b825a6ed45fa3184f3e984ef2233bdee971 GIT binary patch literal 16672 zcmb<-^>JfjWMqH=W(GS35YIpmBH{p{7!oX@36-##FfcHn(=t$XFdF10kPwIl=>xH`;Q%g(D2!$hfbc>3 zSV2rEA0`f?Svf(H3=A+DCJxdEwod^f&wxhjK-~|ck@bPXW`{0B-ws<;`UVq({{TwE z^nth_eHWnmE6$M(((&Z^BB@oOXBkiit>|-k(lwx`FUv!i6!}&4DsY|$Qj3Zh(h7<)^Geb{y7CK3KvZ%;DMMLt9#lL&KDi<>J}omZF(W^qYsQHZZ|PJUi$NMce>DnopHdTxFm)UELlrC1d*FfcGNFfuU1 zAq$*^EXoX514{p(pasdUXJCL;0}LXWnY^HybthD;R4S7bRB9ZC^0!Q!#s;$MJV-MG z0|Tsnft8mE(0Drltv_Jm7od@S0!^F+T84B$D{h#27=MF3#3E3c19LM-WCxNssB8j> zf$#w&adwaZ6rVs6=Y@)as0&Eqpz;wU2EsRx#6>{@Q2YQ%TpTI}rl9Tz*$J)Ez``6z z;-K;vEC>oqBymug4HK6@5(oJiCa!=a4htiYoCcCOv?&1+W-ve!hc->X;uc8a++Yz1 z;eaI00}%p~9!TPRU=aurfF#Zj5dxDDNaCRS2rS6Jz>t6>4owPRsSG4>Xwm_T7a)lX zgGC@j1(LWJL}-*84S~@R7!85Z5Ew!s@R?ukmq+s(4v%iuo%#$69<2vTnEqezXg
    Mue;?d123X*I+P{Q&5K^nij3j+g8 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 Ub)aDeZ2B#s5vPo%0gcN500hm8@Bjb+ literal 0 HcmV?d00001 diff --git a/.stow-local-ignore b/.stow-local-ignore new file mode 100644 index 0000000..31e914a --- /dev/null +++ b/.stow-local-ignore @@ -0,0 +1,3 @@ +\.git +LICENSE +README\.md