Reorganize repository
This commit is contained in:
parent
da1824edb6
commit
0fc6c32a47
124 changed files with 16295 additions and 1229 deletions
27
modules/development/android/default.nix
Normal file
27
modules/development/android/default.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
options.chvp.development.android.enable = lib.mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
};
|
||||
|
||||
config = lib.mkIf config.chvp.development.android.enable {
|
||||
chvp.base = {
|
||||
emacs.extraConfig = [
|
||||
''
|
||||
;; Groovy (gradle) language support
|
||||
(use-package groovy-mode
|
||||
:mode "\\.gradle\\'")
|
||||
|
||||
;; Kotlin language support
|
||||
(use-package kotlin-mode
|
||||
:mode "\\.kt\\'")
|
||||
''
|
||||
];
|
||||
zfs.homeLinks = [{ path = ".android"; type = "cache"; }];
|
||||
};
|
||||
programs.adb.enable = true;
|
||||
users.users.charlotte.extraGroups = [ "adbusers" ];
|
||||
};
|
||||
}
|
79
modules/development/default.nix
Normal file
79
modules/development/default.nix
Normal file
|
@ -0,0 +1,79 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./android
|
||||
./docker
|
||||
./git
|
||||
];
|
||||
|
||||
options.chvp.development.enable = lib.mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
};
|
||||
|
||||
config = lib.mkIf config.chvp.development.enable {
|
||||
chvp = {
|
||||
base.emacs.extraConfig = [
|
||||
''
|
||||
;; Editorconfig
|
||||
(use-package editorconfig
|
||||
:diminish (editorconfig-mode)
|
||||
:custom (editorconfig-get-properties-function 'editorconfig-get-properties)
|
||||
:config (editorconfig-mode 1)
|
||||
)
|
||||
|
||||
;; Language server support
|
||||
(use-package lsp-mode :commands (lsp))
|
||||
|
||||
;; Markdown syntax support
|
||||
(use-package markdown-mode
|
||||
:commands (markdown-mode gfm-mode)
|
||||
:mode ("README\\.md\\'" . gfm-mode)
|
||||
:mode ("\\.md\\'" . markdown-mode)
|
||||
:mode ("\\.markdown\\'" . markdown-mode)
|
||||
)
|
||||
|
||||
;; YAML syntax support
|
||||
(use-package yaml-mode
|
||||
:mode "\\.yml\\'"
|
||||
:mode "\\.yaml\\'"
|
||||
)
|
||||
|
||||
;; R language support
|
||||
(use-package ess)
|
||||
|
||||
;; Haskell language support
|
||||
(use-package haskell-mode
|
||||
:mode "\\.hs\\'")
|
||||
|
||||
;; Python syntax support
|
||||
(use-package python-mode :mode "\\.py\\'")
|
||||
|
||||
;; Ruby language support
|
||||
(use-package ruby-mode
|
||||
:ensure nil ;; Included with emacs
|
||||
:custom
|
||||
(ruby-insert-encoding-magic-comment nil "Don't insert encoding magic comment")
|
||||
)
|
||||
|
||||
;; TypeScript language support
|
||||
(use-package typescript-mode
|
||||
:mode "\\.ts\\'")
|
||||
|
||||
;; HTML (and HTML template) support
|
||||
(use-package web-mode
|
||||
:mode "\\.html\\'"
|
||||
:mode "\\.html\\.erb\\'"
|
||||
)
|
||||
''
|
||||
];
|
||||
development = {
|
||||
docker.enable = lib.mkDefault true;
|
||||
git.enable = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
|
||||
boot.kernel.sysctl."fs.inotify.max_user_watches" = 524288;
|
||||
};
|
||||
}
|
20
modules/development/docker/default.nix
Normal file
20
modules/development/docker/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.chvp.development.docker.enable = lib.mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
};
|
||||
|
||||
config = lib.mkIf config.chvp.development.docker.enable {
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
extraOptions = "--data-root ${config.chvp.dataPrefix}/var/lib/docker";
|
||||
storageDriver = "zfs";
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.docker-compose ];
|
||||
|
||||
users.users.charlotte.extraGroups = [ "docker" ];
|
||||
};
|
||||
}
|
92
modules/development/git/default.nix
Normal file
92
modules/development/git/default.nix
Normal file
|
@ -0,0 +1,92 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.chvp.development.git = {
|
||||
enable = lib.mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
};
|
||||
email = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "charlotte@vanpetegem.me";
|
||||
example = "charlotte@vanpetegem.me";
|
||||
description = ''
|
||||
Default email set in global git config.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config =
|
||||
let
|
||||
base = {
|
||||
home.packages = with pkgs; [
|
||||
gitAndTools.gitflow
|
||||
git-crypt
|
||||
];
|
||||
programs.git = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
branch.autosetuprebase = "always";
|
||||
pull.rebase = true;
|
||||
github.user = "chvp";
|
||||
};
|
||||
ignores = [
|
||||
".direnv"
|
||||
".envrc"
|
||||
"shell.nix"
|
||||
# Ruby dependencies in source tree
|
||||
"/vendor/bundle"
|
||||
];
|
||||
signing = {
|
||||
key = "charlotte@vanpetegem.me";
|
||||
signByDefault = config.chvp.graphical.enable;
|
||||
};
|
||||
userEmail = config.chvp.development.git.email;
|
||||
userName = "Charlotte Van Petegem";
|
||||
};
|
||||
};
|
||||
in
|
||||
lib.mkIf config.chvp.development.git.enable {
|
||||
chvp.base.emacs.extraConfig = [
|
||||
''
|
||||
;; Magit GitHub/GitLab integration
|
||||
(use-package forge
|
||||
:after magit)
|
||||
|
||||
;; Git integration
|
||||
(use-package magit
|
||||
:demand t
|
||||
:general
|
||||
(lmap
|
||||
"g" '(:ignore t :which-key "git")
|
||||
"gs" '(magit-status :which-key "status")
|
||||
)
|
||||
)
|
||||
|
||||
;; Project management
|
||||
(use-package projectile
|
||||
:after (ripgrep selectrum)
|
||||
:demand t
|
||||
:diminish (projectile-mode)
|
||||
:config (projectile-mode 1)
|
||||
:general
|
||||
(lmap
|
||||
"p" '(:ignore t :which-key "project")
|
||||
"pf" '(projectile-find-file :which-key "find")
|
||||
"pp" '(projectile-switch-project :which-key "switch")
|
||||
"pr" '(projectile-replace :which-key "replace")
|
||||
"ps" '(consult-ripgrep :search "incsearch")
|
||||
"pS" '(projectile-ripgrep :which-key "search")
|
||||
"p!" '(projectile-run-shell-command-in-root :which-key "command")
|
||||
"p&" '(projectile-run-async-shell-command-in-root :which-key "task")
|
||||
)
|
||||
)
|
||||
|
||||
;; Ripgrep support (needed for `projectile-ripgrep')
|
||||
(use-package ripgrep)
|
||||
''
|
||||
];
|
||||
home-manager.users.charlotte = { ... }: base;
|
||||
home-manager.users.root = { ... }: base;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue