base vs desktop configurations
This commit is contained in:
122
home.org
122
home.org
@@ -64,7 +64,7 @@ the name implies, allows generating and storing ~age~ keys on a Yubikey. ~rage~
|
||||
~age~ when using ~age.el~, because it supports ~pinentry~. That allows it to prompt for yubikey pins
|
||||
using a dialog, rather than a command line prompt.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/crypto.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/crypto.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
@@ -84,7 +84,7 @@ tools. They boost better speed, or simply more streamlined features.
|
||||
| ~ripgrep~ | ~grep~ |
|
||||
| ~xh~ | ~curl~ |
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/rust-reimpls.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/rust-reimpls.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
@@ -98,7 +98,7 @@ tools. They boost better speed, or simply more streamlined features.
|
||||
|
||||
[[https://ledger-cli.org/][~ledger~]] is how I manage my budget. It's a plain-text accounting tool that's really awesome.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/ledger.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/ledger.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
@@ -109,7 +109,7 @@ tools. They boost better speed, or simply more streamlined features.
|
||||
|
||||
~nil~ is an LSP server for nix files.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/nil.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/nil.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
@@ -122,7 +122,7 @@ tools. They boost better speed, or simply more streamlined features.
|
||||
computers in the world, assuming that you have an out-of-band way to communicate a passphrase
|
||||
between them. Once installed, the actual command is ~wormhole~.
|
||||
|
||||
#+begin_src nix :tangle target/magic-wormhole.nix
|
||||
#+begin_src nix :tangle target/base/magic-wormhole.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
@@ -134,7 +134,7 @@ between them. Once installed, the actual command is ~wormhole~.
|
||||
These are the other programs I have installed globally. A few (like ~awscli~, ~mysql-client~, etc.)
|
||||
are still Shibumi-specific; ideally I'd find another way to install them.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/other-packages.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/other-packages.nix
|
||||
{pkgs, kube, ...}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
@@ -153,6 +153,22 @@ are still Shibumi-specific; ideally I'd find another way to install them.
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
These programs require a full desktop environment:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/desktop/desktop-packages.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
google-chrome
|
||||
keymapp
|
||||
proton-pass
|
||||
protonmail-desktop
|
||||
slack
|
||||
wireshark
|
||||
];
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
* Program Configurations
|
||||
This section contains applications whose config files will be generated by Home Manager. Home
|
||||
Manager calls these "programs" (as opposed to "packages", which are just binaries to put on the
|
||||
@@ -164,7 +180,7 @@ Although Home-Manager generates config files for these programs, they don't need
|
||||
configuration. I'm not sure what benefit there is to enabling ~jq~ as a Home Manager program, rather
|
||||
than just as an available package, but there doesn't seem to be a downside.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/simple-programs.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/simple-programs.nix
|
||||
{
|
||||
programs = {
|
||||
bash.enable = true;
|
||||
@@ -183,7 +199,7 @@ than just as an available package, but there doesn't seem to be a downside.
|
||||
provides syntax-highlighting versions of a few other commands. It's honestly not incredibly useful,
|
||||
but still nice to have.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/bat.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/bat.nix
|
||||
{
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
@@ -197,7 +213,7 @@ but still nice to have.
|
||||
~direnv~ allows loading per-project paths as I navigate to their directories on the command line. I
|
||||
leverage this with the emacs ~envrc~ package.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/direnv.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/direnv.nix
|
||||
{
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
@@ -210,7 +226,7 @@ leverage this with the emacs ~envrc~ package.
|
||||
|
||||
~eza~ is an ~ls~ replacement that offers icons, colors, and some easier command-line options.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/eza.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/eza.nix
|
||||
{
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
@@ -226,7 +242,7 @@ leverage this with the emacs ~envrc~ package.
|
||||
~fzf~ offers a variety of fuzzy finders right from the shell. I haven't been using this, so I'll
|
||||
turn it off for now.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/fzf.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/fzf.nix
|
||||
{
|
||||
programs.fzf = {
|
||||
defaultCommand = "fd --type f";
|
||||
@@ -242,7 +258,7 @@ turn it off for now.
|
||||
|
||||
We all know what ~git~ does.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/git.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/git.nix
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
@@ -261,7 +277,7 @@ We all know what ~git~ does.
|
||||
|
||||
The best text editor ever? Heresy!
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/helix.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/helix.nix
|
||||
{
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
@@ -339,7 +355,7 @@ The best text editor ever? Heresy!
|
||||
~starship~ gives me a nice shell prompt, mostly showing the versions of relevant software I have
|
||||
installed. It's shell-agnostic, so it works with both bash and zsh.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/starship.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/starship.nix
|
||||
{
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
@@ -372,7 +388,7 @@ installed. It's shell-agnostic, so it works with both bash and zsh.
|
||||
I'm using ~wezterm~ instead of ~tmux~ for now, so this is disabled, but I'm keeping the config here
|
||||
in case I need it later.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/tmux.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/tmux.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
programs.tmux = {
|
||||
@@ -401,13 +417,13 @@ in case I need it later.
|
||||
#+END_SRC
|
||||
** Wezterm
|
||||
:PROPERTIES:
|
||||
:header-args:lua: :tangle target/wezterm.lua
|
||||
:header-args:lua: :tangle target/desktop/wezterm.lua
|
||||
:END:
|
||||
|
||||
~wezterm~ is a fast terminal emulator and multiplexer. It is configured using lua. We'll define its
|
||||
config in two blocks, so we can get lua syntax highlighting in org. First, the nix configuration:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/wezterm.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/wezterm.nix
|
||||
{
|
||||
programs.wezterm = {
|
||||
enable = true;
|
||||
@@ -613,7 +629,7 @@ Now we'll set up some keybindings:
|
||||
This is my default shell for now. Unfortunately, nix requires a posix-compliant shell, so bash or
|
||||
zsh it is.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/zsh.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/zsh.nix
|
||||
{
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
@@ -629,7 +645,7 @@ zsh it is.
|
||||
|
||||
Actually, nix *really* requires ~bash~. This is a plugin that allows using zsh from nix-shell.
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/zsh-nix-shell.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/zsh-nix-shell.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
programs.zsh.plugins = [
|
||||
@@ -649,7 +665,7 @@ Actually, nix *really* requires ~bash~. This is a plugin that allows using zsh f
|
||||
|
||||
** Claude Code
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/claude-code.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/claude-code.nix
|
||||
{
|
||||
programs.claude-code = {
|
||||
enable = true;
|
||||
@@ -691,11 +707,11 @@ to track them.
|
||||
|
||||
** Global Settings
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-global.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-global.el
|
||||
:END:
|
||||
These are just some general settings that apply everywhere. First, a few packages:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-global.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-global.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
@@ -949,12 +965,12 @@ content to be.
|
||||
|
||||
** Editing
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-editing.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-editing.el
|
||||
:END:
|
||||
|
||||
This configuration affects general text editing, across all modes. First, some packages:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-editing.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-editing.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
@@ -1075,10 +1091,10 @@ Just "silently" wrap when searching at the bottom of a document.
|
||||
|
||||
** Language Support
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-languages.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-languages.el
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-languages.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-languages.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
@@ -1274,10 +1290,10 @@ available? It seems to work for now anyway...
|
||||
|
||||
** Envrc
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-envrc.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-envrc.el
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-envrc.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-envrc.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
@@ -1296,10 +1312,10 @@ available? It seems to work for now anyway...
|
||||
|
||||
** Magit
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-magit.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-magit.el
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-magit.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-magit.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
@@ -1339,10 +1355,10 @@ available? It seems to work for now anyway...
|
||||
|
||||
** Vertico
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-vertico.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-vertico.el
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-vertico.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-vertico.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
@@ -1445,10 +1461,10 @@ available? It seems to work for now anyway...
|
||||
|
||||
** Org
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-org.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-org.el
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-org.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-org.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
@@ -1581,10 +1597,10 @@ available? It seems to work for now anyway...
|
||||
|
||||
** Terminal
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-terminal.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-terminal.el
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-terminal.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-terminal.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
@@ -1602,10 +1618,10 @@ available? It seems to work for now anyway...
|
||||
|
||||
** Slack
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-slack.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-slack.el
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-slack.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-slack.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
@@ -1625,10 +1641,10 @@ available? It seems to work for now anyway...
|
||||
|
||||
** Kubernetes
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-kubernetes.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-kubernetes.el
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-kubernetes.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-kubernetes.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
@@ -1648,7 +1664,7 @@ available? It seems to work for now anyway...
|
||||
|
||||
** Ledger
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-ledger.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-ledger.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
@@ -1661,10 +1677,10 @@ available? It seems to work for now anyway...
|
||||
|
||||
** Age
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-age.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-age.el
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-age.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-age.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
@@ -1685,10 +1701,10 @@ available? It seems to work for now anyway...
|
||||
|
||||
** Claude Code
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-claude-code.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-claude-code.el
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-claude-code.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-claude-code.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
programs.emacs = {
|
||||
@@ -1720,7 +1736,7 @@ available? It seems to work for now anyway...
|
||||
I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
|
||||
|
||||
** Bat
|
||||
#+BEGIN_SRC nix :tangle target/bat-theme.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/bat-theme.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
programs.bat = {
|
||||
@@ -1741,14 +1757,14 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
|
||||
#+END_SRC
|
||||
|
||||
** Helix
|
||||
#+BEGIN_SRC nix :tangle target/helix-theme.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/helix-theme.nix
|
||||
{
|
||||
programs.helix.settings.theme = "catppuccin_frappe";
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
** Tmux
|
||||
#+BEGIN_SRC nix :tangle target/tmux-theme.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/tmux-theme.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
programs.tmux.plugins = [
|
||||
@@ -1763,7 +1779,7 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
|
||||
#+END_SRC
|
||||
|
||||
** Lazygit
|
||||
#+BEGIN_SRC nix :tangle target/lazygit.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/lazygit.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
xdg = {
|
||||
@@ -1784,7 +1800,7 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
|
||||
#+END_SRC
|
||||
|
||||
** Starship
|
||||
#+BEGIN_SRC nix :tangle target/starship_colors.nix
|
||||
#+BEGIN_SRC nix :tangle target/base/starship_colors.nix
|
||||
{pkgs, ...}:
|
||||
{
|
||||
programs.starship.settings = builtins.fromTOML (builtins.readFile
|
||||
@@ -1799,7 +1815,7 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
|
||||
#+END_SRC
|
||||
|
||||
** Wezterm
|
||||
#+BEGIN_SRC lua :tangle target/wezterm.lua
|
||||
#+BEGIN_SRC lua :tangle target/base/wezterm.lua
|
||||
config.color_scheme = 'Catppuccin Frappe'
|
||||
|
||||
return config
|
||||
@@ -1807,10 +1823,10 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
|
||||
|
||||
** Emacs
|
||||
:PROPERTIES:
|
||||
:header-args:elisp: :tangle target/emacs-theme.el
|
||||
:header-args:elisp: :tangle target/desktop/emacs-theme.el
|
||||
:END:
|
||||
|
||||
#+BEGIN_SRC nix :tangle target/emacs-theme.nix
|
||||
#+BEGIN_SRC nix :tangle target/desktop/emacs-theme.nix
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
|
||||
Reference in New Issue
Block a user