{"id":16748536,"url":"https://github.com/wdenton/conforguration","last_synced_at":"2025-09-24T23:31:05.861Z","repository":{"id":66680818,"uuid":"58102019","full_name":"wdenton/conforguration","owner":"wdenton","description":"Moved to Codeberg","archived":true,"fork":false,"pushed_at":"2025-01-25T18:18:31.000Z","size":726,"stargazers_count":30,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-27T16:39:17.578Z","etag":null,"topics":["codeberg"],"latest_commit_sha":null,"homepage":"https://codeberg.org/wdenton/conforguration","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wdenton.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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":"2016-05-05T03:36:35.000Z","updated_at":"2025-02-04T01:34:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"91ef2d80-18b6-475e-8d57-1d93d2e10a8c","html_url":"https://github.com/wdenton/conforguration","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wdenton/conforguration","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdenton%2Fconforguration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdenton%2Fconforguration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdenton%2Fconforguration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdenton%2Fconforguration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wdenton","download_url":"https://codeload.github.com/wdenton/conforguration/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdenton%2Fconforguration/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276834057,"owners_count":25712929,"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-09-24T02:00:09.776Z","response_time":97,"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":["codeberg"],"created_at":"2024-10-13T02:12:56.412Z","updated_at":"2025-09-24T23:31:05.532Z","avatar_url":"https://github.com/wdenton.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"#+TITLE: Conforguration README\n#+AUTHOR: William Denton\n#+EMAIL: william@williamdenton.org\n\n* Conforguration\n\nUse the power of [[http://orgmode.org/][Org]] to manage accounts and install software the way I like it done.\n\nConforguration contains:\n\n+ all my non-private \"dot files\" ([[https://en.wikipedia.org/wiki/Run_commands][run command files]], containing configuration instructions for different programs)\n+ scripts to install (from source) Emacs, R, Ruby and Tor\n\nThe dot files and scripts can be used locally and on remote machines.  It is easy to push everything from the local machine to a remote one from this Org file.\n\nI made this to suit my tastes and work the way I want.  There may be some things in my dot files that you like, in which case you're free to copy them, but watch out!  This is not meant for widespread general use!\n\n* How does it work?\n\nEverything is in [[file:conforguration.org][conforguration.org]].  Tangling that file (by running =M-x org-babel-tangle= or =C-c C-v t=) will generate all of the dot files and scripts.\n\nInstalling Conforguration locally copies files into =~/conforg/=:\n\n+ dot files to =~/conforg/dotfiles/=\n+ scripts to =~/conforg/scripts/=\n\nThe same files can easily be pushed to remote machines.\n\nThere are two types of dot files:  \"mine\" (most of them) or \"imported\" (a few copied verbatim from elsewhere).  Symbolic links are made from $HOME to =~/conforg/dotfiles/=.\n\nThe scripts can be run locally or on remote machines.  For either local or remote installations or updates, you can use =C-c C-c= on the shell blocks to execute them or you can run the scripts at the command line on the given machine.  (If it takes twenty minutes to compile something on a remote machine, you might find it easier to run that script over there instead of from inside Emacs here.)\n\n* Usage\n\nAssume Conforguration will be in =~/src/conforguration/=.\n\n** Requirements\n\nThis all assumes your shell is [[https://www.gnu.org/software/bash/][Bash]].\n\nAll that is needed to get it is Git.  On a Debian, Ubuntu or related system, run this:\n\n#+begin_src shell :eval no\nsudo apt install git rsync\n#+end_src\n\n** Installation\n\nFirst, get Conforguration.  To clone it with your Git account, run this:\n\n#+BEGIN_SRC shell\ngit clone git@github.com:wdenton/conforguration.git ~/src/conforguration/\n#+END_SRC\n\nOr if you don't want to use a GitHub account:\n\n#+BEGIN_SRC shell\ngit clone https://github.com/wdenton/conforguration.git ~/src/conforguration/\n#+END_SRC\n\nSet up =/usr/local/src/= and =~/conforg/=.  This is only necessary once.\n\n#+BEGIN_SRC shell\n~/src/conforguration/conforg/scripts/initialize.sh\n#+END_SRC\n\nInstall the dot files and scripts in =~/conforg/=, and refresh bash to see the effects.\n\n#+BEGIN_SRC shell\n~/src/conforguration/install/install.sh\nsource ~/.bashrc\n#+END_SRC\n\nNow you're running under Conforguration!\n\n** Installing Emacs\n\nThis installs [[https://www.gnu.org/software/emacs/][Emacs]] and [[https://orgmode.org/][Org]] from source.\n\nFor this to work in Ubuntu you'll need to have enabled source code repositories for packages in the APT configuration.  You can do this with the GUI Software Updater tool (in the Ubuntu Software tab, enable the source code option) or in a shell (edit =/etc/apt/sources.list= and uncomment all of the =deb-src= lines).  Then update all the packages, for example with =sudo apt update=.\n\n#+BEGIN_SRC shell\n~/conforg/scripts/emacs-install-requirements.sh\n~/conforg/scripts/emacs-install-personal.sh\n#+END_SRC\n\nTo get my personal Emacs configuration, run the following.  Warning: this will overwrite all sorts of VERY IMPORTANT files, so don't do this unless you're me, or you're on a new bare system and want to try it out.\n\n#+begin_src shell\ncd\ngit clone git@github.com:wdenton/.emacs.d.git\n#+end_src\n\nThen run =emacs=.  A few dozen packages should be downloaded and installed and when that's done your Emacs will look exactly like mine!\n\nIf something goes wrong, you can run everything in =init.el= by hand to install all of the packages.  Run ~emacs~ (or ~emacs -nw~  if you can only use a terminal), then type ~C-x C-f ~/.emacs/init.el~ to load the file, then run ~M-x eval-buffer~ to execute everything in it at once. Then quit Emacs and restart it, perhaps twice.  Then everything should be good.\n\nWhenever you want to upgrade Emacs and Org (packages need to be upgraded inside Emacs; my ridiculous keystroke for that is =C-x l p U x=), run:\n\n#+begin_src shell\n~/conforg/scripts/emacs-update.sh\n#+end_src\n\n** Installing R\n\nYou can install [[https://www.r-project.org/][R]] for personal use (where it runs out of =/usr/local/src/=) or system-wide.  The version number is set in [[file:conforguration.org][conforguration.org]].\n\n#+BEGIN_SRC shell\n~/conforg/scripts/r-install-requirements.sh\n~/conforg/scripts/r-install-personal.sh\nsource ~/.bashrc\n#+END_SRC\n\nRun =~/conforg/scripts/r-install-system.sh= to install R into =/usr/local/bin/=.\n\n** Installing Ruby\n\nYou can install [[https://www.ruby-lang.org/en/][Ruby]] for personal use (where it runs out of =/usr/local/src/=) or system-wide.  The version number is set in [[file:conforguration.org][conforguration.org]].\n\nTo install a personal version with [[https://github.com/rbenv/rbenv][Rbenv]]:\n\n#+BEGIN_SRC shell\n~/conforg/scripts/ruby-install-requirements.sh\n~/conforg/scripts/ruby-rbenv.sh\nsource ~/.bashrc\n~/conforg/scripts/ruby-install-personal.sh\n#+END_SRC\n\nSystem-wide:\n\n#+BEGIN_SRC shell\n~/conforg/scripts/ruby-install-requirements.sh\n~/conforg/scripts/ruby-install-system.sh\n#+END_SRC\n\nWhenever you want to upgrade Rbenv, just run the same script again; if Rbenv is installed it will now upgrade it.\n\n#+BEGIN_SRC shell\n~/conforg/scripts/ruby-rbenv.sh\n#+END_SRC\n\n* Why?\n\nBecause [[https://www.ansible.com/][Ansible]] and similar configuration management tools aren't done in Org.\n\n* What next?\n\nI don't know, but if you're interested, have at it.\n\nThere are a lot of dot files in [[https://github.com/webpro/awesome-dotfiles][awesome-dotfiles]], and it seems [[https://github.com/aldrichtr/tangld][tangld]] is a similar project to this.  There will be things to be learned from any related projects.\n\n* License\n\nGPL v3.  See COPYING for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwdenton%2Fconforguration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwdenton%2Fconforguration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwdenton%2Fconforguration/lists"}