{"id":13739723,"url":"https://github.com/alba4k/albafetch","last_synced_at":"2025-08-13T12:06:15.943Z","repository":{"id":36954237,"uuid":"464107126","full_name":"alba4k/albafetch","owner":"alba4k","description":"Faster neofetch alternative, written in C. Still improving :)","archived":false,"fork":false,"pushed_at":"2025-08-02T05:06:27.000Z","size":2713,"stargazers_count":67,"open_issues_count":0,"forks_count":11,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-02T08:09:27.793Z","etag":null,"topics":["archlinux","fetch","fetcher","linux","neofetch"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alba4k.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":"alba4k"}},"created_at":"2022-02-27T10:43:02.000Z","updated_at":"2025-08-02T05:06:31.000Z","dependencies_parsed_at":"2023-02-12T09:40:13.392Z","dependency_job_id":"c01ea408-9d5a-418f-81f1-ba6f5ea8ab28","html_url":"https://github.com/alba4k/albafetch","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/alba4k/albafetch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alba4k%2Falbafetch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alba4k%2Falbafetch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alba4k%2Falbafetch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alba4k%2Falbafetch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alba4k","download_url":"https://codeload.github.com/alba4k/albafetch/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alba4k%2Falbafetch/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270236462,"owners_count":24550204,"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-08-13T02:00:09.904Z","response_time":66,"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":["archlinux","fetch","fetcher","linux","neofetch"],"created_at":"2024-08-03T04:00:36.860Z","updated_at":"2025-08-13T12:06:15.859Z","avatar_url":"https://github.com/alba4k.png","language":"C","readme":"# albafetch ~by alba4k\n\n#### Note: to prevent merge conflicts, please open your pull requests to the \"development\" branch, and check that one out before doing anything. Master is more stagnant and only updated when I know what I'm currently working on works as expected (most of the time).\n\n![intro](images/albafetch.png)\n\nalbafetch is a simple and fast program to display a lot of system information in a neofetch-like layout in way less than a second. I decided to make this as a challenge for myself and since I found neofetch too slow (which is understandable given that we're talking about a 10k+ lines shell script).\n\n\u003cdetails\u003e\n\n\u003csummary\u003ePreview\u003c/summary\u003e\nThis is what albafetch will likely look like by default:\n\n![default](images/albafetch_demo_default.png)\n\nAnd this is what [my configuration](https://github.com/alba4k/.dotfiles/blob/master/.config/albafetch/albafetch.conf) looks like\n![custom](images/albafetch_demo.png)\n\n\u003c/details\u003e\n\nHere is a time comparison (exact execution times change between machines and runs):\n\u003cdetails\u003e\n\n\u003csummary\u003eTime comparison\u003c/summary\u003e\n\n![neofetch](images/time_neofetch.png)\n![albafetch](images/time_albafetch.png)\n\n\u003c/details\u003e\n\nYou will find a lot of useful usage and configuration related info inside of the [user manual](MANUAL.md) and a small list of the things I changed since the last release in the [changelog](CHANGELOG.md).\n\nIt currently supports a lot of GNU/Linux distributions, macOS (both x64 and arm64 macs) and even Android (only tested in Termux).\nFeel free to test any other platform :)\n\n## Table of contents\n1. [Dependencies](#dependencies)\n\t* [For building](#build-dependencies)\n\t* [At runtime](#runtime-dependencies)\n2. [Compilation](#compilation)\n\t* [make](#using-the-makefile)\n\t* [meson](#using-meson)\n\t* [nix](#using-nix)\n3. [Installation](#installation)\n\t* [Arch BTW](#for-arch-linux)\n\t* [NixOS](#for-nixos)\n  * [MacPorts](#for-older-macos-versions)\n\t* [Manually](#manual-installation)\n4. [Configuration](#configuration)\n\t\u003e [example config](albafetch.conf)\n5. [Contributing](#contributing)\n\n# Dependencies\n\n## Build dependencies\nThese will usually also install the relative [runtime dependencies](#runtime-dependencies)\nDependencies marked with an asterisk are optional. This means that if not installed at compile-time, albafetch will be compiles with custom implementations of the functions used.\n\n* [libpci](https://github.com/pciutils/pciutils)\\*:\n  Used to get gpu information\n\t- On Arch Linux, [pciutils](https://archlinux.org/packages/core/x86_64/pciutils)\n\t- On Debian, [libpci-dev](https://packages.debian.org/bookworm/libpci-dev)\n\t- On Fedora, [pciutils-devel](https://packages.fedoraproject.org/pkgs/pciutils/pciutils-devel)\n\t- On Alpine Linux, [pciutils-dev](https://pkgs.alpinelinux.org/package/edge/main/x86_64/pciutils-dev)\n* [sqlite3](https://www.sqlite.org):\n  Used to gather the amount of installed rpm packages\n  - On Arch Linux, [sqlite](https://archlinux.org/packages/core/x86_64/sqlite)\n  - On Debian, [libsqlite3-dev](https://packages.debian.org/bookworm/libsqlite3-dev)\n  - On Fedora, [sqlite-devel](https://packages.fedoraproject.org/pkgs/sqlite/sqlite-devel)\n  - On Alpine Linux, [sqlite-dev](https://pkgs.alpinelinux.org/package/edge/main/x86_64/sqlite-dev)\n* [libc](https://www.gnu.org/software/libc) (likely already installed):\n\t- On Alpine Linux, [musl-dev](https://pkgs.alpinelinux.org/package/edge/main/x86_64/musl-dev)\n* [glib](https://docs.gtk.org/glib/)\\*:\n  Provides some useful abstractions\n  - On Arch Linux, [glib2]((https://archlinux.org/packages/core/x86_64/glib2))\n  - On Debian, [libglib2.0-dev](https://packages.debian.org/bookworm/libglib2.0)\n  - On Fedora, [glib2-devel](https://packages.fedoraproject.org/pkgs/glib2/glib2-devel)\n  - On Alpine Linux, [glib-dev](https://pkgs.alpinelinux.org/package/edge/main/x86/glib)\n* [git](https://git-scm.com)\\*:\n  When building from this repo, used to add the commit hash in the `--version` output\n* A build system:\n  To build the project\n\t- A [Makefile](https://www.gnu.org/software/make) exists (which uses [meson](https://mesonbuild.com/Getting-meson.html), [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages) and [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config)/[pkgconf](http://pkgconf.org)), more details are found [here](#compilation).\n\n## Runtime dependencies\nI would like to eventually remove those, by checking at runtime if they are installed and not use them if not so.\nDependencies marked with an asterisk are optional. This means that if not installed at compile-time, albafetch will be compiles with custom implementations of the functions used. If the binary was compiled with the dependency installed, however, it will be needed at runtime too.\n\n* [libpci](https://github.com/pciutils/pciutils)\\*:\n\t- On Arch Linux, [pciutils](https://archlinux.org/packages/core/x86_64/pciutils)\n\t- On Debian, [libpci3](https://packages.debian.org/buster/libpci3)\n\t- On Fedora, [pciutils-libs](https://packages.fedoraproject.org/pkgs/pciutils/pciutils-libs)\n  - On Alpine Linux, [pciutils-dev](https://pkgs.alpinelinux.org/package/edge/main/x86_64/pciutils)\n* [sqlite3](https://www.sqlite.org):\n  - On Arch Linux, [sqlite](https://archlinux.org/packages/core/x86_64/sqlite/)\n  - On Debian, [sqlite3](https://packages.debian.org/bookworm/sqlite3)\n  - On Fedora, [sqlite](https://packages.fedoraproject.org/pkgs/sqlite/sqlite)\n  - On Alpine Linux, [sqlite](https://pkgs.alpinelinux.org/package/edge/main/x86_64/sqlite)\n* [glib](https://docs.gtk.org/glib/)\\*:\n  - On Arch Linux, [glib2]((https://archlinux.org/packages/core/x86_64/glib2))\n  - On Debian, [libglib2.0-dev](https://packages.debian.org/bookworm/libglib2.0)\n  - On Fedora, [glib2-devel](https://packages.fedoraproject.org/pkgs/glib2/glib2)\n  - On Alpine Linux, [glib-dev](https://pkgs.alpinelinux.org/package/edge/main/x86/glib)\n* there must be a `sh` binary in your PATH. This should already be satisfied on any UNIX-like system\n\n# Compilation\n\n## Using the Makefile\n\nThis will need you to have a C compiler installed and will still use meson/ninja under the hood.\n\n```shell\n$ git clone https://github.com/alba4k/albafetch\n$ cd albafetch\n$ make\n```\n\n## Using meson\n\nIf you prefer to build with meson/ninja directly, you can use these commands:\n\n```sh\n$ git clone https://github.com/alba4k/albafetch\n$ cd albafetch\n$ meson setup build\n$ meson compile -C build\n```\n\nIn both cases, an executable file should appear as `build/albafetch` if the compilation succeeds.\n\n### Debug builds\nIt is possible to build a debug binary (`build/debug`) that will test every single function and make sure it runs correctly. This can be done by running\n\n```sh\n$ make debug\n```\n\n## Using meson\n\nIf you prefer to build with meson/ninja directly, you can use these commands:\n\n```sh\n$ meson setup build\n$ meson compile -C build\n$ build/debug\n```\n\n## Using nix\n\nBuilding with nix can make compiling in some ways much easier, such as when compiling statically\nor cross compiling. A few convenience outputs are included:\n\n```sh\nnix build .#albafetch # regular, dynamically linked build\nnix build .#albafetch-static # statically linked build (only available on linux)\nnix build .#albafetch-arm # cross compiling from x86_64 to arm (only available on x86_64)\n```\n\n# Installation\n\n## For Arch Linux\nAn AUR package is available, [albafetch-git](https://aur.archlinux.org/packages/albafetch-git).\nThere are three packages on the AUR that provide albafetch:\n* [albafetch](https://aur.archlinux.org/packages/albafetch-) will compile the source code of the latest release\n* [albafetch-bin](https://aur.archlinux.org/packages/albafetch-bin) will install a pre-compiled binary from the latest release\n* [albafetch-git](https://aur.archlinux.org/packages/albafetch-git) will compile the source of the latest commit in master\n\nYou can find more information on how to install packages from the AUR in the [Arch Wiki](https://wiki.archlinux.org/title/Arch_User_Repository#Installing_and_upgrading_packages)\n\n## For Debian\nYou can create a DEB package from the repo itself\n\nThis can be done via a guided procedure\n\n```\n$ git clone https://github.com/alba4k/albafetch\n$ cd albafetch\n\n$ make deb\n```\n\nThis will create a deb package for you and ask if you want to install it.\n\n## For NixOS\n\n`nix profile`:\n\n```sh\n$ nix profile install .#albafetch\n```\n\n`nix-env`:\n\n```sh\n$ nix-env -iA packages.\u003cyour platform\u003e.albafetch # platform examples: x86_64-linux, aarch64-linux, aarch64-darwin\n```\n\nUsing the overlay (Flake):\n\n```nix\n{\n  inputs = {\n    nixpkgs.url = \"nixpkgs/nixos-unstable\";\n    albafetch = {\n      url = \"github:alba4k/albafetch\";\n      inputs.nixpkgs.follows = \"nixpkgs\";\n    };\n  };\n\n  outputs = {nixpkgs, albafetch, ...}: {\n    nixosConfigurations.host = nixpkgs.lib.nixosSystem {\n      system = \"x86_64-linux\";\n      modules = [\n        ./configuration.nix\n        {\n          nixpkgs.overlays = [albafetch.overlays.default];\n          environment.systemPackages = [pkgs.albafetch];\n        }\n      ];\n    };\n  };\n}\n```\n\nUsing the overlay (`builtins.fetchTarball`):\n\n```nix\n{pkgs, ...}: {\n  nixpkgs.overlays = [(import (builtins.fetchTarball \"https://github.com/alba4k/albafetch/master.tar.gz\")).overlays.default];\n  environment.systemPackages = with pkgs; [\n    albafetch\n  ];\n}\n```\n\n## For older macOS versions\n\nOn older macOS (~11 and lower) versions, albafetch likely won't build natively.\n\nYou can, however, install albafetch on those using the [package](https://ports.macports.org/port/albafetch) on MacPorts\n\nThis can be easily done with the following\n```\n# port install albafetch \n```\n\n## Manual installation\n\nWhat if your OS is not included in the ones mentioned?\nIn this case, you can either compile the source code yourself and install albafetch manually, or you can grab an executable from the [latest release](https://github.com/alba4k/albafetch/releases/latest).\n\nPlease note that albafetch currently won't run on Windows (despite `albafetch --logo windows` being an option), but I'm planning to eventually add support (sooner or later). Feel free to help :)\n\n```\n$ git clone https://github.com/alba4k/albafetch\n$ cd albafetch\n\n$ make\n# make install\n```\n\n`make install` needs elevated privileges on Linux (e.g. `sudo` or a root shell) to write to `/usr/bin`, while `/usr/local/bin` can be accessed as a normal user *on macOS*.\n\nAlternatively, you may prefer meson to perform the installation:\n\n```\n$ git clone https://github.com/alba4k/albafetch\n$ cd albafetch\n$ meson setup build\n$ meson compile -C build\n$ meson install -C build\n```\n\nMeson will install the executable to `/usr/local/bin`, which you may or may not want (executables in this directory are ran instead of ones in `/usr/bin`).\n\n# Configuration\n\nalbafetch can be customized using a config file, usually `~/.config/albafetch.conf` for your user or `/etc/xdg/albafetch.conf`.\n\nYou can find an example configuration file (which only provides the default values of every option) [here](albafetch.conf).\nAlthough this file includes some short comments on how the various options work, I highly recommend checking out the [user manual](MANUAL.md) for a deeper understanding of the way this config file works.\n\n# Contributing\n\nAlmost everything included in this program is written in C.\n\nIf you want to, you can directly modify the source code contained in this repository and recompile the program afterwards to get some features you might want or need.\n\nNew logos can be added in [`src/logos.h`](src/logos.h) (be careful to follow the format), new infos in `src/info` and [`src/info/info.h`](src/info/info.h). Config options are mainly parsed in [`src/utils.c`](src/utils.c). You will also need to edit [`src/main.c`](src/main.c) afterwards to fully enable the new features.\n\nDon't mind opening a pull request if you think some of the changes you made should be in the public version. Please run `clang-tidy --fix src/**/*{.c,.h}` to check for any issues and `clang-format -i src/**/*{c,h}` to make sure the code style is consistent with the rest of the project before committing.\n\nAny contribution, even just a fix of a typo, is highly appreciated.\n\n---\n\n###### © Aaron Blasko\n\n###### Initially started in March 2022\n","funding_links":["https://github.com/sponsors/alba4k"],"categories":["Operation System"],"sub_categories":["Cross Platform"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falba4k%2Falbafetch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falba4k%2Falbafetch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falba4k%2Falbafetch/lists"}