GithubHelp home page GithubHelp logo

dotfiles / dotfiles.github.com Goto Github PK

View Code? Open in Web Editor NEW
1.4K 27.0 130.0 1006 KB

Your unofficial guide to doing dotfiles on GitHub.

Home Page: http://dotfiles.github.io

License: MIT License

Ruby 0.53% HTML 26.67% JavaScript 3.93% Shell 1.59% Python 10.66% Sass 56.61%

dotfiles.github.com's Introduction

dotfiles.github.io Build Status

Source for dotfiles.github.io, your unofficial guide to doing dotfiles on GitHub.

See the CONTRIBUTING guide for creating great pull requests.

Quick start

Install project dependencies:

script/bootstrap

Boot local web server to preview changes:

script/server

You can now browse to http://localhost:8484 to preview changes.

Publishing changes

Once you're satisfied with your changes, push your topic branch to your remote and open a pull request in the canonical repo at dotfiles/dotfiles.github.com. If your patch is accepted, a project maintainer will merge your changes and publish them to GitHub Pages.

Updating star counts

Some pages of the site order content by star count; these are updated automatically by the update-star-counts.yml GitHub Action.

Follow these instructions to create a personal access token for GitHub.

Copyright

Copyright (c) Wynn Netherland and Adam Jahnke. See LICENSE for details.

dotfiles.github.com's People

Contributors

2kabhishek avatar actions-user avatar adamyonk avatar agkozak avatar alanyee avatar andyleejordan avatar anishathalye avatar awan avatar bachoseven avatar brokenricefilms avatar deadc0de6 avatar dependabot[bot] avatar driesvints avatar gmarmstrong avatar havk64 avatar hyperupcall avatar jawang35 avatar jeffaco avatar kornicameister avatar kvendrik avatar loicrouchon avatar pengwynn avatar ridhwaans avatar sobolevn avatar thelocehiliosan avatar twe4ked avatar twpayne avatar unixorn avatar weavenet avatar webpro 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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

dotfiles.github.com's Issues

overwhelming is an understatement

Yes, it's great, fantastic stuff, but the one thing I'm having issues with is digesting it all.
Not complaining, just suggesting.

Be great to see some stats on the main page for stuff like:

  • activity/popularity/most-forked/cloned
  • target audience, eg:
    • noob, new machine, do it all for me
    • existing config, what won't destroy what I have
  • focus by packages
    • tmux/vim/zsh
  • focus by package manager
    • vundle/vimplug/
    • oh-my-zsh/....

Periodic update of star counts

Right now, star counts are updated manually by script/update-star-count.py. It would be nice if we could make this automatic, e.g. once a month.

It would be straightforward to write a bot to do this; where could we host such a bot?

(moved here from #274)

shprofile: yet another dotfiles management tool

Hi,

I'm developing shprofile that tries to facilitate shell profile configuration by allowing you to define several profiles for the same user and letting you switch between them.

This way, you can define your own variables, aliases and more (as defining your own dotfiles) for a specific profile. All profile's configuration is contained into a single directory that can then be versionned and shared with the community.

Could you please add it to the list?

Regards
Aurélien

Compile with GitHub pages

There has been a lot of work done on GitHub pages since this was originally set up. I could take a crack at making it work without the pre-compile stage.

Add `homer` to the list

Homer is here: https://github.com/igr/homer

It's a shell script that uses a lesser-known feature of git, and allows you to store dotfiles (or anything that belongs to root) on e.g. github private repo.

It's cool as it treats files and folders differently and does not use any symlinks.

face dotfile, contact info, backgrounds, audio settings?

Hi, I'm curious if there are best practices for the login .face dotfile, the contact info for your user info that is often available if a person finds your computer, saved background screenshots (or at least the setting to point your screenshots to a dir), and audio settings? Thanks. This was a useful repo to learn from.

Info on dotfile basics

Some folks might be newish to dotfiles. How about a section covering dotfile basics or links out to blog posts that do? Could be helpful. Thanks.

Add r/dotfiles, somewhere?

I wanted to mention r/dotfiles somewhere, but I wasn't sure which page would be best. It's not a framework or utility, just a small group posting different things.

Dotfiles filetype glossary

We should create pages for well know file types (.vimrc, .ackrc, etc.) That describes the app that uses that file type and links to popular instances of that file on GitHub.

Set default apps for MacOS

Good day,

This is not an issue, but maybe it will be useful for someone else as well. I am looking for commands to do the following changes:

  • Change default Mac OS Mail client to another application.
  • Change default "Open with:" application for specific extensions, for example: .md, .txt and others.

I would appreciate any help!

Add a dotfiles primer

It'd be nice to have a primer on understanding how dotfiles work in general and its internals. It'd make this guide more comprehensive.

Table of contents / anchors

The right side of the page has gotten very long, and the left side has some open space. It would be nice if the left side had a small table of contents linking to anchors for the headings on the right.

  • Get started with a bootstrap
  • Go further with a framework
    • General-purpose dotfile utilities (this deserves to be promoted)
  • Tutorials
  • Don’t ignore your .gitignore (should be sub-heading'd?)
  • Embrace submodules / subtrees (should be sub-heading'd?)
  • FAQ
  • Contribute

`bundle install` fails to work

  • Outdated version of github-pages fails to get installed on a modern version of Ruby (running on a fresh Ubuntu 17.04 system).
  • Gemfile.lock should be updated to the latest versions of the dependencies.

bundle install command fails because Gemfile.lock is depending on ancient version of github-pages gem (33 - January 28, 2015 (5.5 KB)). That fails to get installed on a recent version of Ruby (2.4.1).

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /home/d2s/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/json-1.8.2/ext/json/ext/generator
/home/d2s/.rbenv/versions/2.4.1/bin/ruby -r ./siteconf20170823-25526-5f87r.rb extconf.rb
creating Makefile

current directory: /home/d2s/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/json-1.8.2/ext/json/ext/generator
make "DESTDIR=" clean

current directory: /home/d2s/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/json-1.8.2/ext/json/ext/generator
make "DESTDIR="
compiling generator.c
generator.c: In function ‘generate_json’:
generator.c:867:25: error: ‘rb_cFixnum’ undeclared (first use in this function)
     } else if (klass == rb_cFixnum) {
                         ^~~~~~~~~~
generator.c:867:25: note: each undeclared identifier is reported only once for each function it appears in
generator.c:869:25: error: ‘rb_cBignum’ undeclared (first use in this function)
     } else if (klass == rb_cBignum) {
                         ^~~~~~~~~~
generator.c: At top level:
cc1: warning: unrecognized command line option ‘-Wno-self-assign’
cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
Makefile:241: recipe for target 'generator.o' failed
make: *** [generator.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/d2s/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/json-1.8.2 for inspection.
Results logged to
/home/d2s/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/extensions/x86_64-linux/2.4.0-static/json-1.8.2/gem_make.out

An error occurred while installing json (1.8.2), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.2'` succeeds before bundling.

In Gemfile:
  github-pages was resolved to 33, which depends on
    jekyll-mentions was resolved to 0.2.1, which depends on
      html-pipeline was resolved to 1.9.0, which depends on
        activesupport was resolved to 4.2.1, which depends on
          json

Be able to host them on github pages

I was trying to host my dotfiles (.bashrc specially) on github pages so that I could download it directly and run it wherever I am. But it appears that github pages ignore the dotfiles and they appear 404.

I could always just give them a name before the dot but...

Add Config Curator to General-purpose dotfile utilities

Ruby gem I wrote that lets you define how your complete configuration should be installed in a single YAML file which you check into VCS. Supports files, entire directories, and creating symlinks. Package requirements and host specific configuration possible.

https://github.com/razor-x/config_curator

Considered stable at this point, although more features are planned. The upcomming v1.0.0 will add smart uninstall support. Feedback welcome.

Working examples:

https://github.com/rxrc/dotfiles
https://github.com/rxrc/archrc

Set "source" branch as the default branch

With User/Organization pages the master branch is always the one that is served as the site, so you can safely make the source branch the default branch.

This would be convenient since it would make that the default branch shown when someone browses to the code on github, and it would also make pull requests automatically target it.

Refactor: reorganize, split into pages, and order by notability

This seems to be a very popular resource (the first result on Google when searching "dotfiles"). That's pretty awesome!

I think in its current state, the page has grown to a size where it is tough to navigate. See related issues #186 and #207.

In my opinion, some content could be removed, and the content overall could be organized better so that it is easier to navigate. I'm suggesting the following concrete changes:

1. Reorganize topics

I'd propose the following topic order and hierarchy. (The exact wording of the topic names can be tweaked.)

  1. Tutorials
  2. General-purpose dotfile utilities
  3. Tool-specific frameworks
  4. Bootstrap repositories
  5. Dotfiles repositories for inspiration
  6. Miscellaneous
  7. FAQ

For some of the topics above, it's clear how the existing topics map over. I think this order better reflects the order in which new users should navigate the material.

In the hierarchy above, I've split the current "go further with a framework" into two top-level headings, separating the general-purpose utilities and following with the tool-specific stuff for shells/editors/etc.

I've also split "get started with a bootstrap" into two categories. Right now, the list contains various users' dotfiles (e.g. Abdullah's dotfiles are the first link on the entire page), most of which are not necessarily meant for others to build on top of. On the other hand, things like dotphiles look like they're actually meant as a bootstrap. I think the former can go into a "inspiration" section, whereas the bootstrap repositories can stay in a dedicated bootstrap section. The current bootstrap list also contains things like Awesome dotfiles, which is not a bootstrap repository; I propose things like this are moved to the Miscellaneous section. It also contains things like bashdot, which should be moved to the general-purpose dotfiles utilities section.

The miscellaneous section can contain everything that doesn't fit in any other category. This includes the current "tips and tricks" style content, like "don't ignore your .gitignore" and "embrace submodules / subtrees".

2. Split content across pages

I think the site is kind of intimidating and hard to navigate. I'd be in favor of splitting major topics across pages, and then adding some sort of navigation to go between the pages.

3. Write a brief intro for the homepage

With content split across pages, the homepage can have a brief text that introduces the user to the site and summarizes the idea of dotfiles management.

4. Remove some content

It might be nice to introduce some sort of notability criteria, e.g. as Homebrew does. I think their current criteria is (>= 20 forks OR >= 20 watchers OR >= 50 stars), but we could come up with our own.

This will help cut down on the overwhelming quantity of content on the site, and help navigate users to high quality projects rather than leaving it to chance which of the 1000 links they click on.

Stars/watchers/forks are a very rough proxy for the quality of a project, but I can't think of better alternatives.

5. Order existing content based on notability

Even with a notability criteria, I'd say it's worth ordering content based on a better metric than alphabetical order. Not to pick on this person in particular, but currently Abdullah's dotfiles (6 stars) are currently the first link on the page. Arguably, this is a less useful resource than e.g. Zach Holman's dotfiles (5.6k stars), which are currently buried deep in the "get started with a bootstrap section".

Sorting each of the topics based on stars helps solve this problem. Again, stars aren't the best metric, but I don't think there's a great alternative (and stars are better than alphabetical order!).

Another metric we could consider is number of users, but that might be hard to measure for certain frameworks. E.g. measuring it for Pathogen might be easy by analyzing public dotfiles repos on GitHub (because you can tell from vimrc contents), but measuring it for a program like stow might be hard, because you install the program on your machine to manage dotfiles, and it can't necessarily be deduced that someone's using stow from the contents of their dotfiles repo.


What are people's thoughts on this proposed reorganization? (cc @bedge @sparr, since they opened similar issues) And what do the maintainers think of this? (cc @unixorn)

If people are in favor of these changes, I'd be happy to do the implementation work.

Add http://freshshell.com for maintaining dotfiles

I just came across http://freshshell.com and started moving my dotfiles to that. It's awesomely easy to use, extensible and doesn't require any predefined directory structure of any kind. As long as you have a ~/.freshrc file (or freshrc in ~/.dotfiles/) and freshshell will keep everything up to date, symlinked, loaded, whatever you need.

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.