Αυτός ο ιστοχώρος
Pre-rendered ιστοχώρος. Επανασχεδιάστηκε με στόχο να γίνει εύκολα τροποποιήσιμος, από εμένα συγκεκριμένα, και να διατηρήσει απλή δομή. Πέρασε από πολλούς επανασχεδιασμούς. Η πρώτη κύρια έκδοση βασιζόταν σε αφαίρεση, ενώ η δεύτερη σε συντομογραφίες.
<?php /* License at the bottom */ include_once("common/wraps/typical-layouts.php"); include_once("common/wraps/external-links.php"); include_once("common/wraps/xml.php"); [...] function get_biography_html(string $language) { return get_typical_layout( $language,V1
<?php function biography_array_to_en_gr($array) { global $EN, $GR; $EN($array->en); $GR($array->gr); } $b = "biography_array_to_en_gr"; ?> [...] <?php $h = simplexml_load_file("bio-high-school.xml") ?> <h2><?php $b($h->title) ?></h2> <p> <?php $b($h->graduated) ?> <a href="http://2lyk-amaliad.ilei.sch.gr/wordpress17/" ><?php $b($h->high_school) ?></a>V2
Μπορείτε να βρείτε και την πρώτη και τη δεύτερη έκδοση στο GitHub.
Συνδυασμοί πλήκτρων του ΛΣ
Σύστημα που απεικονίζει επόμενους επιτρεπτούς συνδυασμούς πλήκτρων
και πεδία συμπλήρωης για ορισμένους συνδυασμούς, χτισμένο πάνω από το
sxhkd
,
με 4 κύριες εκδόσεις:
Έκδοση 1: alchain
3 προγράμματα,
alchain
,
alpopup
και hk-tui.bash
,
που συνεργάζονται ώστε πατώντας το πλήκτρο Windows
εμφανίζεται ένα τερματικό που καταλαμβάνει το κατώτερο τρίτο της οθόνης,
προβάλλει επιτρεπτά πλήκτρα και αναμένει είσοδο.
Αφότου πατηθεί το Windows και εμφανιστεί το τερματικό,
και μέσα στο τερματικό πατηθεί ακόμη ένα πλήκτρο όπως για παράδειγμα
W
,
σε πολλές περιπτώσεις δε συνέβαινε τίποτα και το τερματικό
πρόβαλλε τα επιτρεπτά πλήκτρα που ακολουθούν μετά από το πρώτο.
read -n 1 -s -r next=$( awk "/^$REPLY/ { print \$2 }" hk-states/$state ) if [ -z $next ] then next=ROOT bspc node last --focus fiαπόσπασμα του
hk-tui.bash
(Πηγαίος κώδηκας)
Το πρόβλημα ήταν ότι τα παράθυρα δε σχεδιάστηκαν για τέτοια χρήση. Δεν υπήρχαν μόνο προβλήματα που θα αποκαλούσε κανείς bugs, αποδείχτηκε ότι τα παράθυρα είναι πιο διακοσμητικά απ' ότι υπέθεσα. Ο περισσότερος απ' τον κώδικα του συστήματος έχει χαθεί σήμερα.
Έκδοση 2: alk
Shell scripts που δέχονται ορίσματα
ανάλογα των αντίστοιχων συνδυασμών πλήκτρων,
και ενεργούν.
Το εκτελέσιμο al
προβάλλει τα stdout
και stderr
σε ένα τερματικό, αν κλήθηκε από περιβάλλον που
δε δίνει τιμή στη μεταβλητή
INTERACTIVE
Οι ορισμοί των shell functions των εκτελέσιμων alk-*
μεταγλωττίζονται σε εγχειρίδιο χρήσης,
το οποίο αναλαμβάνει και το ρόλο της λίστας συνδυασμού πλήκτρων.
Αν και ο κώδικας είναι παράξενος, είναι πού πιο κοντά στο
χαρακτήρα του σημερινού μου κώδικα shell scripts.
Παρατηρήστε ότι είναι POSIX compliant αντί για Bash.
if [ "$INTERACTIVE" = '' ] then set_interactive fi execute_al() { alk-router "$@" } execute_al_interactive() { execute_al "$@" }απόσπασμα του
al
Σε σχέση με την πρώτη έκδοση, αυτή απαιτεί πολύ μεγαλύτερα αρχεία ρυθμίσεων. Επίσης δε χρησιμοποιήθηκε σχεδόν ποτέ εντός τερματικού.
Έκδοση 3: alsnip
Σύστημα παραγωγής φράσεων κώδικα, το οποίο μπορεί να δεχτεί είσοδο από το χρήστη για τη συμπλήρωση μιας φράσης, και στο μεταξύ προβάλλει προτάσεις σχετικά με την είσοδο. Οι φράσεις μπορούσαν να είναι shell scripts που θα εκτελούνταν, και η συμπλήρωση μπορούσε να ξεκινήσει με συνδυασμό πλήκτρων. Τα αρχεία ρυθμίσεων ξεκαθάριζαν ποιες φράσεις είναι shell scripts (προς εκτέλεση), και μεταξύ αυτών, ποιες αντιστοιχούνταν σε συνδυασμούς πλήκτρων, και ποιες απαιτούσαν την παρουσία τερματικού για παράδειγμα για εισαγωγή κωδικών. Ήταν έτοιμο για έκδοση, αλλά είχε πολλές εξαρτήσεις από το σύστημά μου, και επίσης το παράτησα πριν αποφασίσω να το εκδόσω.
fn=powff+key+is-e-q+key-term:"$fn" fn_powff() { case "$act" in script) printf 'sudo shutdown %s\n' "$1" ;; descr) cat <<EOM systemd command, poweroff is an alias to shutdown now EOM ;; arg1) printf "recommend\nnow\n+1\n+5\n+30\n23:59\n02:00\n" ;; esac }απόσπασμα του
example-config/reset.sh
Ποτέ μου δεν είχα χρησιμοποιήσει έτοιμες φράσεις κώδικα, και ούτε κινητοποιήθηκα χάρη σε αυτό το σύστημα να τις χρησιμοποιήσω. Οπότε το σύστημα ανέλαβε μόνο το ρόλο του συνδυασμού πλήκτρων. Επίσης η κατάχρηση της έμπνευσης από τον κύριο Robert C. Martin έκανε το σύστημα περίπλοκο σε κάθε κλίμακα για τον έως τότε κώδικά μου. Φτιάχνοντας αυτό τον ιστοχώρο, το δημοσίευσα στο GitHub.
Έκδοση 4: scmd
Ένα αρχείο.
volume_set_8() { pacmd set-sink-volume 0 48000; } #m8 volume_set_9() { pacmd set-sink-volume 0 54000; } #m9 volume_set_custom() { pacmd set-sink-volume 0 "$(:|dmenu)"; } wallpaper_set_scale() { bspc_float; feh --bg-scale "$(find ~/l/gwp/ -type f -print0 | xargs -0 sxiv -ot)"; } wallpaper_set_fill() { bspc_float; feh --bg-fill "$(find ~/l/gwp/ -type f -print0 | xargs -0 sxiv -ot)"; }
Κάθε γραμμή είναι είτε κενή, είναι σχόλιο, είτε ορισμός συνάρτησης shell.
scmd_run() { c="$(dmenu < "$(this_file)" | cut -d'(' -f1)"; test "$c" && scmd_with_bar_status "$c"; } #x [...] this_file() { echo ~/.config/scmd.sh; }
Αυτό είναι ένα από τα έργα μου που καμαρώνω περισσότερο, τώρα το Νοέμβριο του 2023. Κανείς δε με καταλαβαίνει και ο πρώην εαυτός μου θα προσπαθούσε να το βελτιώσει καταστρέφοντάς το. Δε με επηρεάζει τίποτα, το καμαρώνω όσο μας αξίζει εμένα και του υπολογιστή μου, επειδή αυτό δεν είναι έργο ενός ανθρώπου και ούτε και θα μπορούσε να είναι για μένα, είναι έργο συνεργασίας ανθρώπου και υπολογιστή που εκφέρει άποψη σχετικά με το τι λογισμικό τού είναι υγιεινό και τι τον βαραίνει.
scmd_ls_keys() { sed -n 's/^\([a-z0-9_]\+\)(.*#\([^}]*\)$/\2 \1/p' "$(this_file)"; } scmd_sxhkdrc_vim() { in_vim scmd_sxhkdrc; } scmd_sxhkdrc() { scmd_ls_keys | awk "{ $(scmd_awk1) $(scmd_awk2) }"; } scmd_awk1() { printf %s 's = $1; gsub(/./, "; super + &", s); sub("; ", "", s); '; } scmd_awk2() { printf %s 'print(s); printf("\t. %s && scmd_with_bar_status %s\n\n", "'"$(this_file)"'", $2);'; }scmd.sh.