{"id":33129896,"url":"https://github.com/aligrudi/fbpad","last_synced_at":"2025-12-28T14:06:05.580Z","repository":{"id":11389054,"uuid":"13831466","full_name":"aligrudi/fbpad","owner":"aligrudi","description":"A small Linux framebuffer virtual terminal","archived":false,"fork":false,"pushed_at":"2025-11-26T16:18:19.000Z","size":255,"stargazers_count":142,"open_issues_count":2,"forks_count":20,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-11-29T13:38:13.232Z","etag":null,"topics":["c","framebuffer","virtual-terminal"],"latest_commit_sha":null,"homepage":"http://litcave.rudi.ir/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aligrudi.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-10-24T12:30:06.000Z","updated_at":"2025-11-26T16:18:23.000Z","dependencies_parsed_at":"2024-10-27T22:52:48.811Z","dependency_job_id":"dbe642d5-bc0a-4d9c-88fd-f9701a66ed53","html_url":"https://github.com/aligrudi/fbpad","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aligrudi/fbpad","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aligrudi%2Ffbpad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aligrudi%2Ffbpad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aligrudi%2Ffbpad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aligrudi%2Ffbpad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aligrudi","download_url":"https://codeload.github.com/aligrudi/fbpad/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aligrudi%2Ffbpad/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28100636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-28T02:00:05.685Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","framebuffer","virtual-terminal"],"created_at":"2025-11-15T09:00:29.615Z","updated_at":"2025-12-28T14:06:05.575Z","avatar_url":"https://github.com/aligrudi.png","language":"C","funding_links":[],"categories":["Packages"],"sub_categories":["Terminals"],"readme":"FBPAD\n=====\n\nFbpad is a small Linux framebuffer virtual terminal.  It manages many\nterminals through single-letter tags; each tag can hold two terminals.\nThe following table lists fbpad's key-bindings (m-k means pressing k,\nwhile holding the alt key).\n\n==============\t=======================================\nKEY\t\tCOMMAND\n==============\t=======================================\nm-c\t\texecute a shell (SHELL)\nm-m\t\texecute mail program (MAIL)\nm-e\t\texecute editor program (EDITOR)\nm-x \t\tswitch to tag 'x' (TAGS)\nm-j\t\tswitch to current tag's alternative terminal\nm-k\t\tlike m-j\nm-p\t\tshow tag summary\nm-o\t\tjump to the previous tag\nm-tab\t\tshow the next terminal\nm-s\t\tcreate a text screenshot (SCRSHOT)\nm-y\t\tredraw the terminal\nc-m-e\t\treload the fonts and terminal colors (CLRFILE)\nc-m-l\t\tlock the screen; use PASS to unlock\nc-m-o\t\tdisable/enable tag switching\nc-m-q\t\tquit fbpad\nm-,\t\tscroll up\nm-.\t\tscroll down\nm-=\t\tsplit tag horizontally/vertically\nm--\t\tunsplit tag\nm-;\t\tlike m-c but with switching signals\n==============\t=======================================\n\nTo execute a single program in fbpad, the program and its arguments\ncan be passed as command line arguments of fbpad.  Fbpad executes the\nspecified program in a terminal, disables all terminal switching\ncommands, and exits as soon as the program finishes.\n\nPrograms like fbpdf, fbvnc, and fbff read the FBDEV environment\nvariable, which can specify the framebuffer device and its drawing\nregion, like \"/dev/fb0:1438x448+1+451\".  Fbpad defines this\nenvironment variable when executing a program, so that if a tag is\nsplit, the program running in its terminal is limited to its\ncorresponding framebuffer region.\n\nSETTING UP\n==========\n\nFbpad can be configured by editing the conf.h header.  To start fbpad,\nFR must point to a valid fbpad font (for testing you can try\nhttp://litcave.rudi.ir/courr.tf), and SHELL to the shell you want\nfbpad to execute.  Once these are set, fbpad can be started without\nproblems.\n\nFbpad fonts can be generated using fbpad_mkfn program\n(http://litcave.rudi.ir/).  The FR, FI, and FB macros specify the path\nof fbpad fonts for regular, italic, and bold fonts.  If FI or FB is\nNULL, the regular font is used for italic or bold text.\n\nNext, you may want to change the list of fbpad tags by changing the\nTAGS macro.  The FGCOLOR and BGCOLOR macros specify the foreground and\nbackground colors.  Individual colors can be customized by editing the\nhex RGB color description of COLOR* macros.  Also SCRSHOT macro\nspecifies where fbpad text screenshots, created by \"m-s\" command, must\nbe saved.\n\nIf you want to use fbpad's scrsnap feature, you can edit TAGS_SAVED\nto change the list of saved tags.  Framebuffer memory is saved and\nreloaded for terminals in these tags, which is very convenient when\nyou are using programs that modify the framebuffer simultaneously,\nlike fbpdf.\n\nCLRFILE\n=======\n\nIf CLRFILE is set, fbpad fonts and colors can be changed using c-m-e.\nThis is an example:\n\n  # Foreground and background colors\n  color   ffefef 333333\n\n  # Basic 16-color palette\n  color16 000000 ff5f87 00d787 cdcd00 00afff ff87df 00cdcd e5e5e5\n          7f7f7f ff0000 00ff00 ffff00 5c5cff ff00ff 00ffff ffffff\n\n  # Cursor color\n  cursor  444444 ffbb55\n\n  # Border color and width\n  border  ffbb55 3\n\n  # Fonts: regular, italic, bold\n  font    /path/to/0.tf /path/to/1.tf /path/to/2.tf\n\n256-COLOR MODE\n==============\n\nFbpad supports xterm's 256-color extension, but most programs will not\nuse this extension, unless the $TERM terminfo entry declares this\nfeature.  For this purpose, fbpad-256 terminfo file can be created to\ncontain (the two-space identation should be ignored):\n\n  fbpad-256,\n  \tuse=linux, U8#0,\n  \tcolors#256,\n  \tpairs#32767,\n  \tsetab=\\E[%?%p1%{8}%\u003c%t4%p1%d%e%p1%{16}%\u003c%t10%p1%{8}%-%d%e48;5;%p1%d%;m,\n  \tsetaf=\\E[%?%p1%{8}%\u003c%t3%p1%d%e%p1%{16}%\u003c%t9%p1%{8}%-%d%e38;5;%p1%d%;m,\n\nWhich can be installed with tic command:\n\n  $ tic -x ./fbpad-256\n\nThe following line should be added to shell's startup script:\n\n  export TERM=fbpad-256\n\nNote that in order to use this feature and italic fonts in Vim, adding\nfbpad-256 terminfo is not necessary.  Including the following lines in\nthe vimrc file should enable them:\n\n  set t_ZH=\u001b[3m\n  set t_Co=256\n\nPERFORMANCE\n===========\n\nTo improve text rendering performance in fbpad, you may redefine\nfb_set() in pad.c based on the color depth and encoding of your\nframebuffer.  For instance, if using a 32-bit little-endian RGB\nframebuffer, you may redefine it as follows:\n\n  static void fb_set(char *d, unsigned r, unsigned g, unsigned b)\n  {\n\td[0] = b;\n\td[1] = g;\n\td[2] = r;\n  }\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faligrudi%2Ffbpad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faligrudi%2Ffbpad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faligrudi%2Ffbpad/lists"}