{"id":17783335,"url":"https://github.com/julien-fischer/linx","last_synced_at":"2025-03-16T03:30:31.997Z","repository":{"id":258758168,"uuid":"868260275","full_name":"Julien-Fischer/linx","owner":"Julien-Fischer","description":"A link between Linux devices, that offers a comprehensive range of features, all synchronized across multiple systems.","archived":false,"fork":false,"pushed_at":"2024-10-26T16:02:52.000Z","size":2110,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-26T16:27:07.607Z","etag":null,"topics":["bash","bashrc","debian","kubuntu","linux","ubuntu"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/Julien-Fischer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2024-10-05T22:29:50.000Z","updated_at":"2024-10-26T16:02:55.000Z","dependencies_parsed_at":"2024-10-25T12:53:19.481Z","dependency_job_id":"d328c9b9-e61d-4e76-85ca-7a0bc1920013","html_url":"https://github.com/Julien-Fischer/linx","commit_stats":null,"previous_names":["julien-fischer/linx"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Julien-Fischer%2Flinx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Julien-Fischer%2Flinx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Julien-Fischer%2Flinx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Julien-Fischer%2Flinx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Julien-Fischer","download_url":"https://codeload.github.com/Julien-Fischer/linx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221640905,"owners_count":16856243,"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","bashrc","debian","kubuntu","linux","ubuntu"],"created_at":"2024-10-27T07:03:16.298Z","updated_at":"2024-10-27T07:03:17.007Z","avatar_url":"https://github.com/Julien-Fischer.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linx (Link for Linux)\n\nLinx is a streamlined and opinionated Bash configuration developped for power users who prioritize\nspeed and efficiency over graphical user interfaces. It provides a curated set of functions, aliases, and terminal configurations aimed at maximizing\nefficiency and minimizing keystrokes.\n\nOnce installed, Linx offers seamless synchronization of your setup across multiple devices, effectively\ncreating a unified environment across your Linux systems.\n\nTo sync your configuration, simply type `linx sync`, and Linx will handle the rest.\n\n## Features\n\nVersion `1.0.0-alpha` of Linx offers the following features:\n\n- A comprehensive set of functions and aliases that minimize the time and effort required for directory navigation, file management, and common task execution\n- Shortcuts for frequently accessed directories such as home, desktop, and dev, allowing users to quickly jump to desired locations\n- Functions that streamline version control tasks and enhance log viewing capabilities\n- For Terminator users, Linx offers preconfigured shortcuts, layouts, and the ability to install multiple native and third-party themes. Users can list and switch Terminator themes at runtime directly from the command line without additional Python installations or plugins\n\n![Live Demo](./demo.gif)\n\n\n## Examples\n\n### Vanilla Bash VS Linx\n\n- **(Navigation) Navigate to the home directory and pretty print its content**\n\n\n| Scope         | Task                                              | :rocket: Using Linx | :sleepy: Without Linx                                                                                                                                |\n|:--------------|:--------------------------------------------------|:--------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------|\n| Navigation    | Go to Desktop                                     | desk                | cd $(xdg-user-dir DESKTOP) \u0026\u0026 pwd \u0026\u0026 ls -AF --group-directories-first --color                                                                        |\n| Navigation    | Go to development projects directory              | dev                 | cd \"${DEV}\" \u0026\u0026 pwd \u0026\u0026 ls -AF --group-directories-first --color                                                                                       |\n| Navigation    | Go to root directory                              | ,                   | cd / \u0026\u0026 pwd \u0026\u0026 ls -AF --group-directories-first --color                                                                                              |\n| Navigation    | Go to home directory                              | ~                   | cd ~ \u0026\u0026 pwd \u0026\u0026 ls -AF --group-directories-first --color                                                                                              |\n| Navigation    | Go to previous directory                          | -                   | cd - \u0026\u0026 pwd \u0026\u0026 ls -AF --group-directories-first --color                                                                                              |\n| Navigation    | Go one directory up                               | ..                  | cd ..                                                                                                                                                |\n| Navigation    | Go two directories up                             | ...                 | cd ../..                                                                                                                                             |\n| Navigation    | Go six directories up                             | .......             | cd ../../../../../../                                                                                                                                |\n| Navigation    | Go six directories up                             | u6                  | cd ../../../../../../                                                                                                                                |\n| Visualization | Inspect current dir, sorted by alphabetical order | ll                  | ls -lhAF                                                                                                                                             |\n| Visualization | Inspect current dir, sorted by modification date  | lt                  | ls -lhAFt -1                                                                                                                                         |\n| Visualization | Inspect current dir, grouping directories first   | ld                  | ls -lhAF --group-directories-first                                                                                                                   |\n| Visualization | Inspect current dir, in short format              | la                  | ls -AF --group-directories-first                                                                                                                     |\n| Git           | Commit \u0026 push                                     | gap \"msg\"           | git add . \u0026\u0026 git commit -m \"msg\" \u0026\u0026 git push                                                                                                         |\n| Git           | View releases                                     | glor                | git log --no-walk --tags --pretty=format:\"%h %ad %d% %an% %s\" --date=format:\"%Y-%m-%d %H:%M\" --abbrev-commit                                         |\n| Git           | Pretty print log in ascending order               | glot asc            | git log --reverse --pretty=format:\"%C(yellow)%h%C(reset) %C(red)%ad%C(reset) %C(cyan)%an%C(reset) %s\" --date=format:\"%Y-%m-%d %H:%M\" --abbrev-commit |\n| Git           | Stash all changes                                 | gas                 | git add . \u0026\u0026 git stash                                                                                                                               |\n| Git           | Force push all changes                            | gapf \"msg\"          | git add . \u0026\u0026 git commit -m \"msg\" \u0026\u0026 git push --force origin                                                                                          |\n| System        | Fully upgrade your packages                       | sup                 | sudo apt update \u0026\u0026 sudo apt full-upgrade -y                                                                                                          |\n\n\n### Linx-specific features\n\n- **(Terminator) List themes and profiles**\n```\nprofiles\n```\n\n- **(Terminator) Apply and persist the `contrast` theme to Terminator**\n```\nprofiles contrast\n```\n\n- **(Linx) Securely backup your files and directories**\n```\nbackup \u003cfilepath|dirpath\u003e [prefix] [-nqrtz]\n# example:\nbackup mydir -t -r\n# result:\n2022-10-22_19-35-54_mydir.bak\n```\n\n- **(Linx) Synchronize your setup on this device**\n```\nlinx sync\n```\n\n### Wrap up\n\nLinx provides many more features. But here's the real kicker: you can finally bid your terminal a proper farewell\nwhen shutting down your system. Who said tech can't have manners?\n\n- **(System) Lock session**\n```\nbye\n```\n\n- **(System) Shutdown**\n```\nbyebye\n```\n\n## Installation instructions\n\n#### 1. Download `install.sh` or clone this repository\n```\ngit clone https://github.com/Julien-Fischer/linx\n```\n\n#### 2. Run the installation wizard\n```\nlinx/install.sh\n```\n\n#### 3. Restart your terminal\n\n\n## Upgrades\n\nIf you already installed this project and wish to upgrade, simply type `linx sync` and let Linx synchronize\nyour setup with the remote.\n\nNote that you may need to restart your terminal for all changes to be applied.\n\n## Dependencies\n\n#### Required\n- Bash (or zsh)\n- Git (for executing upgrade and synchronization commands)\n\n#### Optional (but recommended)\n- Terminator\n- Tree\n- curl (for browsing the web from the terminal)\n- jq (for JSON parsing)\n- Neofetch\n- mkf (Make File)\n\n## Requirements\n\nThis project is designed to run on Debian-based distributions, including (but not limited to) Debian, Ubuntu,\nand Kubuntu.\nPrimary testing has been conducted on Kubuntu 24 and Debian 12.\n\nWhile the majority of functions and aliases in this project should work out-of-the box for Debian-based systems,\nsome features may require additional work to achieve full cross-platform compatibility.\n\nIf you encounter any issues or have suggestions for improving Linx, feel free to open an issue or\nsubmit a pull request.\nWe welcome community contributions to make this project more versatile and user-friendly across different\nLinux environments.\n\n## Contributing\n\nAs Linx is a new project, we're still in the process of developing our contribution guidelines.\nWe expect these to evolve over time as the scope and codebase of Linx grows.\n\nIn the meantime, we welcome all contributions and feedback!\nWhether you're interested in submitting code, reporting bugs, or suggesting new features, your input helps us\nimprove Linx.\n\nPlease refer to the draft of [Contributing to linx](https://github.com/Julien-Fischer/linx/blob/master/CONTRIBUTING.md) for\nmore details.\n\n## Acknowledgments\n\nWe would like to extend our gratitude to Eliver Lara and their contributors for their outstanding work\non Terminator themes.\n\nWhile the `contrast`, `dark_gold`, `fiddle`, and `playful` themes are native to Linx, all third-party themes \nare credited to [Eliver Lara's Terminator Themes](https://github.com/EliverLara/terminator-themes)\n\nThe `native` theme is the default theme for Terminator.\n\n## License\n\nLinx entire source code is released under the\n[MIT License](https://opensource.org/licenses/MIT).\n\nDuring installation, Linx will ask you if you wish to install additional, third-party themes for Terminator.\nThese themes are open-source and licensed under\n[GPL 3](https://www.gnu.org/licenses/gpl-3.0.fr.html#license-text).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulien-fischer%2Flinx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjulien-fischer%2Flinx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulien-fischer%2Flinx/lists"}