{"id":14968056,"url":"https://github.com/mogria/nixpkgs-config","last_synced_at":"2025-07-09T10:34:42.387Z","repository":{"id":55084742,"uuid":"115042043","full_name":"mogria/nixpkgs-config","owner":"mogria","description":"home configuration files (dotfiles) using home-manager and nix","archived":false,"fork":false,"pushed_at":"2024-04-27T21:56:31.000Z","size":841,"stargazers_count":27,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T13:03:44.530Z","etag":null,"topics":["configuration","dotfiles","git","linux","macos","neovim","nix","nixpkgs","tmux","zsh"],"latest_commit_sha":null,"homepage":"","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/mogria.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":"2017-12-21T19:56:21.000Z","updated_at":"2024-08-01T20:46:25.000Z","dependencies_parsed_at":"2024-04-27T22:32:34.453Z","dependency_job_id":null,"html_url":"https://github.com/mogria/nixpkgs-config","commit_stats":{"total_commits":520,"total_committers":2,"mean_commits":260.0,"dds":0.007692307692307665,"last_synced_commit":"50c98e31ace3ffecb4a3f966b042eed6940e2d7c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mogria/nixpkgs-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogria%2Fnixpkgs-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogria%2Fnixpkgs-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogria%2Fnixpkgs-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogria%2Fnixpkgs-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mogria","download_url":"https://codeload.github.com/mogria/nixpkgs-config/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogria%2Fnixpkgs-config/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264440668,"owners_count":23608745,"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":["configuration","dotfiles","git","linux","macos","neovim","nix","nixpkgs","tmux","zsh"],"created_at":"2024-09-24T13:39:10.529Z","updated_at":"2025-07-09T10:34:42.359Z","avatar_url":"https://github.com/mogria.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mogria's `.dotfiles`\n\nThese are [Home-Manager](https://github.com/rycee/home-manager/) based\nconfiguration for my home directory files.\n\nHome-Manager allows one to configure his own `$HOME` directory using the\n[nix](https://nixos.org/nix/) language and the\n[nixpkgs](https://nixos.org/nix/) package collection.\n\nThese configuration files are in use on multiple 64-Linux Linux NixOS machine's\nand on a recent MacBook.  Some minor modifications might be needed to make them\nrunnable on other architectures or with other distributions than NixOS\njust using the Nix package manager.\n\n# Environment and Tools Included\n\nThis collection of configuration files and script almost gives you a complete\n\"IDE\"-like environment. At least, I use it as such. This environment is heavily\ntuned toward how my own workflow works (keybindings and programs used and\nsuch). So feel free to adjust these files to your wishes or take out little\nbits and pieces here and there.\n\nHere a little screenshot (to show off) of a busy screen when I'm running the\nterminal IDE:\n\n![Tmux + Neovim + Ranger + Alacritty + ZSH + Nix-Shell used for development](https://github.com/mogria/nixpkgs-config/blob/master/screenshot.png)\n\n## Programming: NeoVim\n\nThese configuration files contain a heavily customized neovim with a lot of\nplugins for supporting programming. I usually start multiple instances of\nneovim inside `tmux`. The `.zshrc` automatically starts a new tmux session.\n\nSome of the plugins include:\n\n* [Syntastic](https://github.com/vim-syntastic/syntastic)\n* [UltiSnips](https://github.com/sirver/UltiSnips) + Some of my own snippets\n* Language Specific Plugins for languages and configuration for\n  * PHP\n  * Python\n  * PgSQL\n  * LaTeX\n  * HTML, XHTML\n  * Nix\n* a lot of [tpope](https://github.com/tpope/)'s plugins\n* Git integration is provided via [`vim-fugitive`](https://github.com/tpope/vim-fugitive) plugin.\n\n## Interactive Shell Environment: tmux + zsh\n\nThis configuration includes a customized ZSH with powerline with a custom dark theme. It also contains integration with various tools.\n\n### [direnv](https://github.com/direnv/direnv)\n\nAllows you to set different environment variables and load different\nconfigurations when entering a directory automatically if it contains a\n`.envrc` configuration file. I use this in a lot of project root directories to\nautomatically spawn a [`nix-shell`]() when entering a directory which contains\nall the development dependencies.\n\n### [fzf](https://github.com/junegunn/fzf)\n\nA general fuzzy search program. Is used in diverse places:\n\n* Can be called from vim to fuzzy **s**earch **f**iles using `\u003cSpace\u003esf`\n  while in normal mode\n  * You can then press `CTRL-X` or `CTRL-V` to automatically open a new\n    `:split` or `:vsplit` window respectively.\n  * More vim keybindings can be found in my\n    [vimrc](https://github.com/mogria/nixpkgs-config/blob/8ad8c3ac63112252327f23cdade00b421d05d4ec/vim/vimrc#L253).\n    Feel free to adjust them to your needs.\n* Can be called from zsh to fuzzy search files by typing `\\\u003cTab\u003e`\n* Can be called from zsh to fuzzy search the shell history by pressing\n  `CTRL-R`. This one is very useful and gets more useful the bigger your\n  shell history is. (The size of the history `$HISTSIZE` is configured to be\n    100000).\n\n### [ripgrep](https://github.com/BurntSushi/ripgrep)\n\nA fast recursive grep wit nice colored output. One of my most used shell\nutilities during an interactive shell session. I even have a script\n[`vrg`](https://github.com/mogria/nixpkgs-config/blob/master/bin/vrg) pass to\nstart vim and pass the search results into the quickfix list\nautomatically.\n\nIt can be called from within vim as well to fill the quickfix list using\n`\u003cSpace\u003eF` to search for the word below the cursor. `\u003cSpace\u003ef` searches for the\nlast thing you searched using `/` in vim, so you can expand your file scoped\nsearch to the while project directory. Alternatively type `:Rg` to search for\nsomething else. This functionality is provided by the\n[vim-ripgrep](https://github.com/jremmen/vim-ripgrep) plugin.\n\n### Git Integration\n\nVarious tools have been configured to work better with git.\n\n* **zsh**: Various aliases\n * https://github.com/mogria/nixpkgs-config/blob/8ad8c3ac63112252327f23cdade00b421d05d4ec/git/git.nix#L10-L28\n* **vim**: Almost the same shortcuts prefixed with `\u003cSpace\u003e` provided by the [`vim-fugitive`](https://github.com/tpope/vim-fugitive) plugin.\n * https://github.com/mogria/nixpkgs-config/blob/8ad8c3ac63112252327f23cdade00b421d05d4ec/vim/vimrc#L320-#L330\n * Vim is used as the difftool as well\n\n### Graphical\n\nDifferent graphical tools are included as well but only on Linux. This includes\n\n* [Rofi](https://github.com/mogria/nixpkgs-config/blob/master/rofi/rofi.nix): A little menu I use to start programs and search for windows of currently opened windows. Only used on Linux in conjuction with the NixOS's XFCE 4.14a (needs to be activated in /etc/nixos/configuration.nix).\n* [Alacritty terminal emulator](https://github.com/alacritty/alacritty): cross-platform GPU-accelerated terminal emulator\n\n## Installation\n\n* [Install Nix](https://nixos.org/nix/) or even [NixOS](https://nixos.org/nixos/)\n* Clone this repository into `~/.config/home-manager`\n\n      git clone https://github.com/mogria/nixpkgs-config.git ~/.config/home-manager\n\n* Symlink the used nixpkgs configuration from this repo into ~/.config/nixpkgs\n\n      mkdir ~/.config/nixpkgs\n      ln -s ~/.config/home-manager/config.nix ~/.config/nixpkgs/config.nix\n\n* Configure your git settings and github repositories in [`user-config.nix`](https://github.com/mogria/nixpkgs-config/blob/master/user-config.nix)\n* Install Home-Manager: [https://github.com/nix-community/home-manager](https://github.com/nix-community/home-manager#installation)\n\n      nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager\n      nix-channel --update\n      nix-shell '\u003chome-manager\u003e' -A install\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmogria%2Fnixpkgs-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmogria%2Fnixpkgs-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmogria%2Fnixpkgs-config/lists"}