{"id":25918355,"url":"https://github.com/bibermann/biberconf","last_synced_at":"2026-04-10T02:03:47.049Z","repository":{"id":97738688,"uuid":"230797758","full_name":"bibermann/biberconf","owner":"bibermann","description":"Tools, tweaks and configs for a Bash command line environment.","archived":false,"fork":false,"pushed_at":"2024-08-10T16:17:49.000Z","size":86,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-08-11T16:24:12.861Z","etag":null,"topics":["bash","git"],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/bibermann.png","metadata":{"files":{"readme":".github/README.md","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}},"created_at":"2019-12-29T20:06:16.000Z","updated_at":"2024-08-10T16:17:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"2d9ec013-ef51-4210-815a-28cd338f1f13","html_url":"https://github.com/bibermann/biberconf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bibermann%2Fbiberconf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bibermann%2Fbiberconf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bibermann%2Fbiberconf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bibermann%2Fbiberconf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bibermann","download_url":"https://codeload.github.com/bibermann/biberconf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241678140,"owners_count":20001682,"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","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":["bash","git"],"created_at":"2025-03-03T14:19:29.429Z","updated_at":"2025-12-31T01:03:11.960Z","avatar_url":"https://github.com/bibermann.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Biberconf\n\nTools, tweaks and configs for a Bash command line environment.\n\nCurrently working on:\n- Debian based systems including Ubuntu (server and desktop environments)\n- Arch based systems\n- X.org (Wayland is not yet tested)\n\nBiberconf includes:\n- [bash-git-prompt: An informative and fancy bash prompt for Git users](https://github.com/magicmonty/bash-git-prompt)\n- [HSTR: Easily view, navigate and search your command history](https://github.com/dvorka/hstr) (slightly modified version)\n- [stderred: stderr in red](https://github.com/ku1ik/stderred)\n- Recommended settings for Git, Vim, and the tools listed above\n- Some useful Bash and Git aliases/scripts\n\nBiberconf sets all your custom configurations into version-control.\n\n## Overview\n\nThe Biberconf repository will be placed in your home directory.\nThis way you can add any configuration file to version control\nand at the same time profit from our base configs, \nwhich you are free to adopt as well.\n\nIt serves two purposes:\n* First, it provides you with a sophisticated foundation \n    to productively work with the command line.\n* Second, it versions your own customizations in a seperate `custom` branch\n    (you are allowed to rename the branch or manage multiple branches if you like to).\n    This allows you to push your personal configurations to a private repository \n    and easily resue it in other environments.\n\nThe installation scripts are designed \nto safely integrate Biberconf into your current configurations*\nand automatically rebase your branch on remote updates.\n\n*) Only a few lines, mainly include directives, are added to your current config files.\n\n## Requirements\n\nYou need to know how to edit and save documents with `vim` and how to exit `vim`.\n\n## Installation\n\n```bash\n# Either use curl:\nbash \u003c(curl -sS https://raw.githubusercontent.com/bibermann/biberconf/main/.biberconf/fresh-install.sh)\n\n# Or use wget:\nbash \u003c(wget -O- https://raw.githubusercontent.com/bibermann/biberconf/main/.biberconf/fresh-install.sh)\n```\n\nIf you haven't any of those tools, install `curl` and try again:\n\n```bash\n# If you have a Debian based system:\nsudo apt update \u0026\u0026 sudo apt install -y curl\n\n# If you have an Arch based system:\nsudo pacman -S core/curl\n```\n\n## Update\n\nThe script fetches the latest changes, installs them and rebases your `custom` branch.\n\nDo not fear to run this command, it is able to handle common problems or conflicts -\neven a rewritten git history of the remote branch.\n\n```bash\n~/.biberconf/update.sh\n```\n\n## Deinstallation\n\nUninstalls all integrations, removes Biberconf from your configuration files\nand prints a list of files and directories* you then may remove \nto clean your home directory from Biberconf.\n\n```bash\n~/.biberconf/uninstall.sh\n```\n\n*) You may run the command again after uninstallation, to see the list again.\n\n## Features\n\n### Terminal prompt\n\n![terminal-prompt](../.biberconf/img/terminal-prompt.png)\n\nLegend:\n\n```bash\n#      ,---------------------------------- signal name or exit code from last command\n#     |                ,------------------ current virtual environment\n#     |               |       ,----------- current Git branch\n#     |               |      |       ,---- remote Git status\n#     |               |      |      |   ,- local Git status\n#     |               |      |      |  |\n    INT ~/gh/testrepo myvenv master ↑2 *3+2\n20:08 $ |\n```\n\n### Bash history\n\nWithin HSTR you can type keywords to filter the list and select a line with the arrow keys:\n\n![hstr-empty](../.biberconf/img/hstr-empty.png)\n![hstr-head-gi](../.biberconf/img/hstr-head-gi.png)\n\nHistory logic:\n- When starting a new terminal window, a snapshot of all past commands (including all commands issued in still opened terminal windows) is made. This command history then is available in HSTR.\n- Each issued command is saved with the current date:\n    - In the `~/.bash_history` without duplicates to better work with the `[Arrow-Up]` and `[Arrow-Down]` keys in the terminal prompt.\n    - In `~/.hstr_histories/` with duplicates to give sense to the \"ranking view\" mode in HSTR.\n\nShortcuts:\n- `[Ctrl] + [s]`: Start HSTR in \"history view\" mode.\n- `[Ctrl] + [r]`: Start HSTR in \"ranking view\" mode.\n- `[Ctrl] + [f]`: Start HSTR in \"favorites view\" mode.\n\n### Available commands\n\n- `ccat FILE [FILES...]`: Prints the file(s) with syntax highlighting.\n    - Change theme in `ccat_theme.sh`.\n        - Show favorite themes: `_ccat_test_selected_themes [TEST_FILE]`\n        - Show all themes: `_ccat_test_all_themes [TEST_FILE]`\n- `stderred COMMAND`: Executes the command, highlighting all output to stderr with red.\n- More aliases:\n    - `git` (language set to english)\n    - `alert` (use like `sleep 10; alert` to notify you when the previous command (here `sleep 10`) has finished)\n    - `l`\n    - `ll`\n    - `la`\n\n#### Desktop environments only\n\n- `open`: Shortcut for `xdg-open`\n\n#### Debian based systems only\n\n- `upgrade`: Upgrades your system, optionally shutting down afterwards, see `upgrade -h` for options.\n\n### Git aliases\n\n- `git s [ARGS...]`: Alias for `git status`.\n- `git d [ARGS...]`: Like `git diff` but as minimal as possible. Perfect for an overview of all changes.\n    ![git-d](../.biberconf/img/git-d.png)\n- `git l [ARGS...]`: Like `git log --graph` but with pretty and compact formatting.\n    ![git-l](../.biberconf/img/git-l.png)\n- `git a [ARGS...]`: Auto-Log: Like `git l` but in reverse order and automatically updating after changes. That means if you run this command once in a terminal and pin it somewhere on the screen, you will always see the up-to-date git history there, starting with the youngest entry at the bottom of the terminal window.\n\n# Recommended tools\n\n## Graphical tools\n\n- `gitk` (Git GUI)\n- `tilix` (Terminal emulator)\n- `speedcrunch` (calculator)\n- `gnome-tweaks` (extended GNOME configuration)\n- `dconf-editor` (advanced GNOME configuration)\n\n\u003cdetails\u003e\u003csummary\u003eInstallation instructions (Debian)\u003c/summary\u003e\n\u003cp\u003e\n\n```bash\nsudo apt update\nsudo apt install -y gitk tilix atom speedcrunch gnome-tweaks dconf-editor\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eInstallation instructions (Arch)\u003c/summary\u003e\n\u003cp\u003e\n\n\u003c!--\nNote: tk and tcl are required to run gitk.\n--\u003e\n\n```bash\nsudo pacman -S extra/{tk,tcl,tilix,speedcrunch,dconf-editor}\nparu -S aur/archlinux-tweak-tool-git\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n## Command-line tools\n\n- `tree` (recursive directory listing)\n- `ag` ([code-searching tool](https://github.com/ggreer/the_silver_searcher))\n- `jq` ([command-line JSON processor](https://stedolan.github.io/jq/))\n- `cloc` (count lines of code)\n- `most` (alternative to `more`)\n- `mc` (Midnight Commander)\n- `recode` (example: `recode latin-1..utf-8 myfile.txt`)\n- `neofetch` (system information gathering)\n\n\u003cdetails\u003e\u003csummary\u003eInstallation instructions (Debian)\u003c/summary\u003e\n\u003cp\u003e\n\n```bash\nsudo apt install -y tree silversearcher-ag jq cloc most mc recode neofetch\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eInstallation instructions (Arch)\u003c/summary\u003e\n\u003cp\u003e\n\n```bash\nsudo pacman -S extra/{tree,the_silver_searcher,jq,cloc,most,mc,recode,neofetch}\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n## Developer's tools\n\n- `curl`\n- [`direnv`](https://direnv.net/docs/installation.html)\n- [`pyenv`](https://github.com/pyenv/pyenv#installation)\n- [`poetry`](https://python-poetry.org/docs/#installation)\n\n\u003cdetails\u003e\u003csummary\u003eInstallation instructions (Debian)\u003c/summary\u003e\n\u003cp\u003e\n\n```bash\nsudo apt install -y \\\n    curl direnv \\\n    `# pyenv` \\\n        build-essential libssl-dev zlib1g-dev libbz2-dev \\\n        libreadline-dev libsqlite3-dev wget llvm libncurses-dev \\\n        xz-utils tk-dev libffi-dev liblzma-dev python-openssl \\\n    `# poetry` \\\n        python3-venv\ncurl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash\ncurl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python\n\n# Please re-login now.\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eInstallation instructions (Arch)\u003c/summary\u003e\n\u003cp\u003e\n\n```bash\nsudo pacman -S core/curl\nsudo pacman -S extra/{direnv,pyenv,python-poetry}\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbibermann%2Fbiberconf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbibermann%2Fbiberconf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbibermann%2Fbiberconf/lists"}