Coder Social home page Coder Social logo

ulises-jeremias / dotfiles Goto Github PK

View Code? Open in Web Editor NEW
84.0 5.0 1.0 112.98 MB

HorneroConfig is a comprehensive dotfiles framework, tailored for seamless customization of diverse window management setups across various operating systems. Just like the skilled hornero bird meticulously shapes its nest, HorneroConfig empowers you to craft a digital environment that's robust, uniquely yours, and beautifully organized!

Home Page: https://ulises-jeremias.github.io/dotfiles

License: MIT License

Shell 92.48% Python 0.76% Scheme 0.04% Perl 3.53% SCSS 3.19%
dotfiles dotfiles-generator dotfiles-linux debian arch-linux alacritty alacritty-theme alacritty-config zsh p10k polybar rofi-scripts git archlinux linux hacktoberfest chezmoi chezmoi-template tmux

dotfiles's Introduction

NEVER SKIP / IGNORE / AVOID README

๐Ÿ  HorneroConfig - Comprehensive Dotfiles Framework

Docs | Changelog | Contributing

Awesome AUR Stable AUR Development License: MIT

:octocat: โ€Ž HI THERE! THANKS FOR DROPPING BY!

You might be here looking for (Linux) rice reference or to (full?) replicate my personal configuration of my favorite Window Managers and several apps as well. โ›„

HorneroConfig is your artisanal toolkit for crafting the perfect digital workspace. Named after the industrious hornero bird, renowned for its skillful nest-building, our framework empowers you to construct a robust, functional, and personalized computing environment.

Perfectly suited for a wide array of Desktop Environments and Window Managers, HorneroConfig thrives across different platforms including GitHub Codespaces, Gitpod, VS Code Remote - Containers, or even Linux distributions that are not Arch Linux.

Backed by the versatile Chezmoi, HorneroConfig stands out as a dotfiles manager that adapts flexibly to your needs, streamlining machine setup and ensuring consistency across devices. Embrace the spirit of the hornero, and let HorneroConfig transform your configurations into a harmonious blend of elegance and efficiency.

TAP โฒโ˜ฐโณ TO NAVIGATE THE HARMONY OF CONFIGURATION

Most were written from scratch. Some details:

  • Window Manager ๐Ÿฑ i3 and/or Openbox and/or XFCE!
  • Panel ๐ŸŒธ Polybar which is a fast and easy-to-use status bar!
  • Application Launcher ๐Ÿš€ Rofi which is blazing fast!
  • Desktop Notification ๐ŸŒฟ Dunst which is minimalist!
  • Terminal Emulator ๐ŸŒฟ Alacritty which is GPU accelerated!
  • Shell ๐Ÿš Zsh with several post-installation tweaks!
  • Compositor ๐Ÿง Picom fork by FT-Labs for that perfection topping with Animations!
  • File Manager ๐Ÿƒ Thunar with a customized side pane!
  • Widgets ๐ŸŽจ Eww with 2 different pre-backed widgets!
  • and many more!

Managed with chezmoi, a great dotfiles manager.

Getting started ๐Ÿš€

You can use a convenient script to install the dotfiles on any machine with a single command. Simply run the following command in your terminal:

sh -c "$(wget -qO- "https://github.com/ulises-jeremias/dotfiles/blob/master/scripts/install_dotfiles.sh?raw=true")"

๐Ÿ’ก We use wget here because it comes preinstalled with most Linux distributions. But you can also use curl:

sh -c "$(curl -fsSL "https://github.com/ulises-jeremias/dotfiles/blob/master/scripts/install_dotfiles.sh?raw=true")"

This will install the dotfiles in ~/.dotfiles.

๐ŸŒŸ Other ways to install the dotfiles

Using Chezmoi

This is the recommended method to install HorneroConfig. It will set up the latest stable version of HorneroConfig on your system using Chezmoi, a robust and adaptable dotfiles manager. With Chezmoi, you can easily manage your configuration files across multiple machines, maintaining consistency and simplifying the setup process.

chezmoi init --apply ulises-jeremias --source ~/.dotfiles

This will install the dotfiles in ~/.dotfiles.

From source

Use this for any OS that is not Arch Linux or Arch Linux based distro. This will install unstable versions of HorneroConfig. You can switch to a stable version by using any existing git tag.

git clone https://github.com/ulises-jeremias/dotfiles ~/.dotfiles
~/.dotfiles/install

The installation script allows you to install all the necessary dependencies to make your dotfiles config work correctly.

From the Arch-Linux User Repository (AUR)

  • Using a helper like yay

    Install dots-stable

    yay dots-stable

    or install the rolling release dots-git

    yay dots-git
  • Using makepkg

    Install dots-stable

    git clone https://aur.archlinux.org/dots-stable.git /tmp/dots-stable
    cd /tmp/dots-stable
    makepkg -si

    or install the rolling release dots-git

    git clone https://aur.archlinux.org/dots-git.git /tmp/dots-git
    cd /tmp/dots-git
    makepkg -si

๐ŸŽจ Post install Customization

You can fork this repository and customize it to suit your preferences and workflow. You are encouraged to maintain a separate GitHub repository of configurations for your own dotfiles and keep this repository as a template!

Expand to see the steps to customize your environment!

We use Chezmoi to manage the dotfiles. Chezmoi is a sophisticated yet easy-to-use command-line tool that helps you manage your dotfiles across multiple machines. It is designed to be secure, flexible, and easy to use.

To customize the dotfiles, follow these steps:

  1. Run the command chezmoi init --source ~/.dotfiles to initialize Chezmoi.

  2. Run the command chezmoi edit --source ~/.dotfiles to open the dotfiles directory.

  3. Customize the dotfiles to suit your preferences and workflow.

  4. Run the command chezmoi apply --source ~/.dotfiles to apply the changes.

Read more about this at Customization Docs.

๐Ÿ›ก๏ธ Privacy and Security

Although I like making it look as nice as possible, these dotfiles also try to be private and secure!

You can read more about this at Privacy and Security Docs.

๐Ÿงช Testing

We use Vagrant to test the installation of HorneroConfig in different Operating Systems and machine architectures.

Expand to learn how to run a testing environment!

To run the testing environment, just execute the following commands:

git clone https://github.com/ulises-jeremias/dotfiles
cd ./dotfiles

# start the VM
./bin/play

# provision the VM
./bin/play --provision

# remove the VM
./bin/play --remove

# use -h to know more about the available options

๐Ÿค Contributing

Contributions, issues and feature requests are welcome! Check out the Contributing Guide for more details!

Bellow you can find a list of all the amazing contributors who have made this project possible:

Contributors

Made with contributors-img.

dotfiles's People

Contributors

dependabot[bot] avatar fabiololix avatar fgasquez avatar imgbot[bot] avatar itsbekas avatar maqui-lp avatar picardian14 avatar ulises-jeremias avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

shenxinli

dotfiles's Issues

Move all scripts under dots-scripts

As a user I want to have a wrapper around all the script so I can keep clean my ~/.local/bin directory when installing the dotfiles.

As a first iteration for this ticket we need to create an script called dots-script

Add bluetooth support

The main idea is to add support for bluetooth handling in existing dotfiles.

It would be convenient to complete the following items to have a complete support of this feature:

  • Define a polybar module (See how it could be customizable using xrdb parameters)
  • Show how this module can be overloaded by defining new ones or just changing parameters
  • Add a flag in the main install script to choose whether to install bluetooth support (e.g. --bluetooth).
  • Add the neccesary dependencies to util_pkgs in the main install script to choose to use xfce4 variants for bluetooth management (e.g. blueman will be automatically added to xfce4-settings).
  • Include pulse audio integration for bluetooth service (pulseaudio-module-bluetooth) in util_pkgs.

PLEASE, READ THE CONTRIBUTING GUIDE BEFORE STARTING CODING.

Install doesn't work without LastPass

Describe the bug

Install doesn't work without LastPass

Expected Behavior

Automated deployment of the dotfiles/a mention of the dependency in the docs

Current Behavior

๐Ÿ”ƒ Running '/home/claviola/.dotfiles/install.sh'
Installing chezmoi to '/home/claviola/.local/bin/chezmoi'
info found version 2.46.0 for latest/linux/amd64
info installed /home/claviola/.local/bin/chezmoi
Running 'chezmoi init --apply --source=/home/claviola/.dotfiles'
chezmoi: template: dot_config/private_credentials/private_github_access_token_notifications.tmpl:1:11: executing "dot_config/private_credentials/private_github_access_token_notifications.tmpl" at <lastpassRaw "github_access_token_notifications">: error calling lastpassRaw: exec: "lpass": executable file not found in $PATH

If I install the lastpass-cli package so that lpass exists:

Running 'chezmoi init --apply --source=/home/claviola/.dotfiles'
Error: Could not find decryption key. Perhaps you need to login with `lpass login`.

So it seems like this is a hard dependency.

Reproduction Steps

Run the script on https://github.com/ulises-jeremias/dotfiles?tab=readme-ov-file#getting-started- on a (relatively) pristine Debian VM

Possible Solution

Make LastPass optional

Additional Information/Context

No response

Version used

8f6c576

Environment details (OS name and version, etc.)

Debian 12.4 (bookworm)

Make common packages installation optional

As a user of the dotfiles installer I want to have the option of installing some common packages and not all.

Expected usage example:

$ dots --no-polybar --no-termite

will install all common configurations without polybar and termine dotfiles

The OS packages should be skipped too.


For this it is needed to at least modify the following files:

Make i3 autotiling work properly

[[ -z "$(pgrep autotiling)" ]] && "${XDG_CONFIG_HOME}"/i3/autotiling & needs to be updated once the autotiling scripts works as expected

https://api.github.com/ulises-jeremias/dotfiles/blob/ddee3d34f56a9263427d597323f60b643a0ba4dc/common/config/i3/autostart.sh#L34

# open polybar
"${XDG_CONFIG_HOME}"/polybar/launch &

# TODO: Make i3 autotiling work properly
# [[ -z "$(pgrep autotiling)" ]] && "${XDG_CONFIG_HOME}"/i3/autotiling &

# Start nm-applet
[[ -z "$(pgrep nm-applet)" ]] && nm-applet &

Use picom animations

Describe the feature

Right now I'm using compfy instead of picom because of the animations. This issue is to track the status of the following issue:

yshui/picom#1121

Use Case

Compositor animations

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Version used

latest

Environment details (OS name and version, etc.)

Add dots backup

As a user of the dotfiles installer I want to have the option of creating a backup of my current dotfiles.

The script should be named dots-backup and it should be placed at the root level of this repository and installed behind this line here.

Technical Notes

  • The script should define a comment with the usage following this pattern here
  • The script should import the args parser as here
  • It should use the argument --dotfiles-dir (the content will be on variable dotfiles_dir) to look for the actual configuration.
  • Once it finishes, it should print the path to the created .tar.gz file containing the backup ๐Ÿ‘Œ๐Ÿป

Reach out to @ulises-jeremias for more usage details or any other related topic ๐Ÿ˜ƒ

Update dunst dotfiles

It would be convenient to update the dunst dotfiles according to the existing styling guidelines.

  • Change dotfiles.
  • Make them configurable.

PLEASE, READ THE CONTRIBUTING GUIDE BEFORE STARTING CODING.

Ideas for the future

Describe the feature

Use Case

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Version used

latest

Environment details (OS name and version, etc.)

Stop or rework the "Action: AUR Publish - Development version"?

Discussed in #22

Originally posted by Narrat June 4, 2023
Hello.
I noticed your aur repo dots-git. And I noticed some behaviour which isn't really according to the guidelines.
Main point being it is a VCS package. Those package should only receive a version bump if there are breaking changes that warrant a build.
In your case it is kinda worse as the action is set to run the action twice a day? At least the aur repo gets updated that often. And most of the time with empty commits which pollutes the history of the repo quite significantly. Not made easier by the fact that everything has the same commit message and such.
So please change the process. Or if you doubt me get in touch with the Trusted Users via the aur-general mailing list and ask for confirmation if the behaviour is okay.

Polybar toggle not working properly

Describe the bug

Expected Behavior

Current Behavior

Reproduction Steps

Possible Solution

Additional Information/Context

Version used

Environment details (OS name and version, etc.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.