Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jeremyschlatter/env
My development environment, managed by nix
https://github.com/jeremyschlatter/env
nix
Last synced: 3 months ago
JSON representation
My development environment, managed by nix
- Host: GitHub
- URL: https://github.com/jeremyschlatter/env
- Owner: jeremyschlatter
- Created: 2019-04-11T19:23:46.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-07-19T00:09:12.000Z (7 months ago)
- Last Synced: 2024-08-02T13:34:50.630Z (6 months ago)
- Topics: nix
- Language: Rust
- Homepage:
- Size: 744 KB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# My development environment
**Overview**
I use the [nix](https://nixos.org/) package manager on all of my (non-mobile) computers, and it is very helpful.
There are many ways that this setup provides me value, but one of the most legible is this: I have a fairly customized environment (including a few dozen [tools](https://github.com/jeremyschlatter/nixpkgs/blob/c97e18297883df763df2326bcf8231d9bcd58f11/flake.nix#L164-L217), a couple hundred lines of [config](config), and about a dozen custom [scripts](scripts)) that **I am able to install and synchronize across multiple machines**, including my personal MacBook Pro, my Linux work machine, and a few servers I use for hobby projects.
**Usage**
1. [Install nix](https://github.com/DeterminateSystems/nix-installer?tab=readme-ov-file#the-determinate-nix-installer)
2. Install my environment:
`nix profile install github:jeremyschlatter/nixpkgs`
3. Run my post-install script:`jeremy-post-install`
**Composing env definitions**
While the bulk of my environment is defined here in this repo, I also have a few pieces defined in private repos. This is useful for managing parts of my environment that either need to be secret or that I just don't want to publish for whatever reason.
I have not yet written instructions for how to compose these definitions. I may do that in the future.
**About my environment**
This config installs [kitty](https://sw.kovidgoyal.net/kitty/), which I use as my terminal emulator.
It configures kitty to use a custom shell (bash with a custom bashrc). To use my shell config outside
kitty, you can run it manually as `shell`.**Other Notes**
To pick up the Fira Code font in Gnome I made this symlink:
ln -s ~/.nix-profile/share/fonts/ ~/.local/share/
To pick up application launchers for kitty and obsidian in Gnome I made this symlink:
rmdir ~/.local/share/applications
ln -s ~/.nix-profile/share/applications/ ~/.local/share/To get desktop icons:
ln -s ~/.nix-profile/share/icons/ ~/.local/share/