mirror of
https://github.com/fairyglade/ly.git
synced 2025-12-20 19:24:53 +00:00
* Add build.zig, remove makefile, add .idea directory to .gitignore * Remove submodules, add projects directly * Remove submodules * Add projects * Rename sub/ to dep/, remove makefiles * Rewrite main.c * Remove Argoat dependency * Remove unused dependencies * Rewrite config.c * Add files * Change default fg to 8 in config.ini * Partially rewrite utils.c * Use Zig package manager * Rewrite INPUTS enum in Zig * Commit unfinished full rewrite (Zig 0.11.0) What needs to be dealt with: - Matrix animation - Authentication part - Testing on actual TTY (not just virtual console) Signed-off-by: AnErrupTion <anerruption@disroot.org> * Implement more (untested) authentication code Signed-off-by: AnErrupTion <anerruption@disroot.org> * Fix some bugs (hopefully) Signed-off-by: AnErrupTion <anerruption@disroot.org> * Try to fix some more bugs Signed-off-by: AnErrupTion <anerruption@disroot.org> * Oops, forgot to allocate hehe Signed-off-by: AnErrupTion <anerruption@disroot.org> * Changes in the Zig rewrite (#596) * Everything * make matrix.zig a bit cleaner * make long lines shorter and add changelog * vi mode * update changelog * get errors from child process and (hopefully) fix some other things * fix utmp entry * run authentication in a child process * update changelog * small code improvements * change that * clear terminal on SIGTERM * Remove LogFile * moved ini to a lib, fixed alternative langs * fix logging out * oops * code improvements * consistency * clearing the env isn't needed anymore (afaik) * replace vi_mode with a bool * type aliases, avoiding zeroes(), breaking a long line * lowercase insert/normal, merge conditionals, code improvements * Add experimental save file migrator + bug fixes + add "-dev" version suffix Signed-off-by: AnErrupTion <anerruption@disroot.org> * Resolve conflicts Signed-off-by: AnErrupTion <anerruption@disroot.org> * Clean up when SIGTERM is received (#597) * clean up child processes on SIGTERM * small code improvement * consistency.. i guess? * Properly set XDG_CURRENT_DESKTOP Signed-off-by: AnErrupTion <anerruption@disroot.org> * Zig 0.12.0 and more! (#599) * less alloc, update migrator, get DesktopNames from .desktop * small cleanup * Update zigini to improve compatibility with old config * Code improvements * Update to zig version 0.12.0 * Some fixes * tiny changes * remove useless comment * migrator changes, and small things * set XDG env vars differently * free memory on error when appending environments * Fix out of bounds issue when using the Delete key Signed-off-by: AnErrupTion <anerruption@disroot.org> * Update zig-ini to fix configuration issue (#603) * Mention display-manager-init for Gentoo/OpenRC in readme.md Signed-off-by: AnErrupTion <anerruption@disroot.org> * Tidy up readme.md Signed-off-by: AnErrupTion <anerruption@disroot.org> * Fix authentication in a few edge cases (#604) * fix loginConv and auth * fix potential mem leak with configs * BIG changes --------- Signed-off-by: AnErrupTion <anerruption@disroot.org> Co-authored-by: アシュ <120780645+Kawaii-Ash@users.noreply.github.com>
109 lines
2.0 KiB
Python
Executable File
109 lines
2.0 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import sys, os, subprocess
|
|
|
|
def escaped(s):
|
|
return s.replace("\033", "\\033")
|
|
|
|
def tput(term, name):
|
|
try:
|
|
return subprocess.check_output(['tput', '-T%s' % term, name]).decode()
|
|
except subprocess.CalledProcessError as e:
|
|
return e.output.decode()
|
|
|
|
|
|
def w(s):
|
|
if s == None:
|
|
return
|
|
sys.stdout.write(s)
|
|
|
|
terminals = {
|
|
'xterm' : 'xterm',
|
|
'rxvt-256color' : 'rxvt_256color',
|
|
'rxvt-unicode' : 'rxvt_unicode',
|
|
'linux' : 'linux',
|
|
'Eterm' : 'eterm',
|
|
'screen' : 'screen'
|
|
}
|
|
|
|
keys = [
|
|
"F1", "kf1",
|
|
"F2", "kf2",
|
|
"F3", "kf3",
|
|
"F4", "kf4",
|
|
"F5", "kf5",
|
|
"F6", "kf6",
|
|
"F7", "kf7",
|
|
"F8", "kf8",
|
|
"F9", "kf9",
|
|
"F10", "kf10",
|
|
"F11", "kf11",
|
|
"F12", "kf12",
|
|
"INSERT", "kich1",
|
|
"DELETE", "kdch1",
|
|
"HOME", "khome",
|
|
"END", "kend",
|
|
"PGUP", "kpp",
|
|
"PGDN", "knp",
|
|
"KEY_UP", "kcuu1",
|
|
"KEY_DOWN", "kcud1",
|
|
"KEY_LEFT", "kcub1",
|
|
"KEY_RIGHT", "kcuf1"
|
|
]
|
|
|
|
funcs = [
|
|
"T_ENTER_CA", "smcup",
|
|
"T_EXIT_CA", "rmcup",
|
|
"T_SHOW_CURSOR", "cnorm",
|
|
"T_HIDE_CURSOR", "civis",
|
|
"T_CLEAR_SCREEN", "clear",
|
|
"T_SGR0", "sgr0",
|
|
"T_UNDERLINE", "smul",
|
|
"T_BOLD", "bold",
|
|
"T_BLINK", "blink",
|
|
"T_REVERSE", "rev",
|
|
"T_ENTER_KEYPAD", "smkx",
|
|
"T_EXIT_KEYPAD", "rmkx"
|
|
]
|
|
|
|
def iter_pairs(iterable):
|
|
iterable = iter(iterable)
|
|
while True:
|
|
yield (next(iterable), next(iterable))
|
|
|
|
def do_term(term, nick):
|
|
w("// %s\n" % term)
|
|
w("static const char *%s_keys[] = {\n\t" % nick)
|
|
for k, v in iter_pairs(keys):
|
|
w('"')
|
|
w(escaped(tput(term, v)))
|
|
w('",')
|
|
w(" 0\n};\n")
|
|
w("static const char *%s_funcs[] = {\n\t" % nick)
|
|
for k,v in iter_pairs(funcs):
|
|
w('"')
|
|
if v == "sgr":
|
|
w("\\033[3%d;4%dm")
|
|
elif v == "cup":
|
|
w("\\033[%d;%dH")
|
|
else:
|
|
w(escaped(tput(term, v)))
|
|
w('", ')
|
|
w("\n};\n\n")
|
|
|
|
def do_terms(d):
|
|
w("static struct term {\n")
|
|
w("\tconst char *name;\n")
|
|
w("\tconst char **keys;\n")
|
|
w("\tconst char **funcs;\n")
|
|
w("} terms[] = {\n")
|
|
for k, v in d.items():
|
|
w('\t{"%s", %s_keys, %s_funcs},\n' % (k, v, v))
|
|
w("\t{0, 0, 0},\n")
|
|
w("};\n")
|
|
|
|
for k,v in terminals.items():
|
|
do_term(k, v)
|
|
|
|
do_terms(terminals)
|