mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-04-19 00:19:11 +00:00
Restructured the project setup
I've also added a little module for version control systems now that I'm finding myself often packaging software.
This commit is contained in:
parent
4085fce69c
commit
d01e597918
3
Makefile
3
Makefile
@ -41,3 +41,6 @@ upgrade: update switch
|
||||
rollback:
|
||||
@sudo nix-env --rollback
|
||||
|
||||
test:
|
||||
@nixos-rebuild $(FLAGS) test
|
||||
|
||||
|
@ -92,7 +92,7 @@ In this case, it is my https://github.com/foo-dogsquared/dotflies[dotfiles] dire
|
||||
It is also used on the installation phase (from `make install`) by setting the `HOST` variable (i.e., `HOST=zilch make -C /etc/install`) with the folder name as the argument.
|
||||
See the <<Hosts>> section for more details.
|
||||
|
||||
* The `packages/` folder is my custom packages either the new ones that haven't made into nixpkgs yet or packages with overrides.
|
||||
* Though my custom packages are now placed in my https://github.com/foo-dogsquared/nur-packages[NUR repo], the `packages/` folder still exists here intended for "private" packages.
|
||||
Also contains third-party package repositories and overlays such as the https://github.com/nix-community/NUR[NUR], https://github.com/nix-community/emacs-overlay[unstable branch of Emacs], or the unstable branch of https://github.com/NixOS/nixpkgs/[nixpkgs].
|
||||
See the <<Packages>> section for more information.
|
||||
|
||||
|
@ -98,6 +98,7 @@
|
||||
racket.enable = true;
|
||||
};
|
||||
rust.enable = true;
|
||||
vcs.enable = true;
|
||||
};
|
||||
|
||||
editors = {
|
||||
@ -155,10 +156,16 @@
|
||||
maim
|
||||
(tesseract.override { enableLanguages = [ "eng" ]; })
|
||||
slop
|
||||
virt-manager
|
||||
xclip
|
||||
xdg-user-dirs
|
||||
xorg.xwininfo
|
||||
zbar
|
||||
|
||||
# My custom packages.
|
||||
# fds-nur.brl-cad
|
||||
# fds-nur.hypermail
|
||||
# fds-nur.wikiman
|
||||
];
|
||||
|
||||
# Setting up the shell environment.
|
||||
@ -168,7 +175,15 @@
|
||||
READ = "zathura";
|
||||
SUDO_ASKPASS = <config/bin/askpass>;
|
||||
};
|
||||
my.alias.dots = "USER=${config.my.username} make -C /etc/dotfiles";
|
||||
|
||||
# foo-dogsquared is my only alias.
|
||||
my.alias = {
|
||||
# Convenience alias for my NixOS config.
|
||||
dots = "USER=${config.my.username} make -C /etc/dotfiles";
|
||||
|
||||
# Assume you've installed Doom Emacs.
|
||||
org-capture = "$XDG_CONFIG_HOME/emacs/bin/org-capture";
|
||||
};
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Asia/Manila";
|
||||
@ -212,4 +227,6 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
my.user.extraGroups = [ "docker" ];
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ with lib;
|
||||
freecad # FREE AS A BIRD, FREE AS A ALL-YOU-CAN-EAT BUFFER!
|
||||
kicad # The CAD for ki which is a form of energy found everywhere.
|
||||
leocad # A CAD for leos, a well-known brand of toys.
|
||||
openscad # A programmable CAD for programmers.
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -28,6 +28,11 @@ in {
|
||||
udiskie # An automounter for external devices with authentication.
|
||||
];
|
||||
|
||||
# Enable peer-to-peer synchro summoning service.
|
||||
my.home.services = {
|
||||
syncthing.enable = true;
|
||||
};
|
||||
|
||||
# Clean 'yer home!
|
||||
my.env = {
|
||||
RECOLL_CONFDIR = "$XDG_DATA_HOME/recoll";
|
||||
|
@ -12,6 +12,7 @@ in {
|
||||
type = types.bool;
|
||||
default = bool;
|
||||
}; in {
|
||||
programmable.enable = mkBoolDefault false;
|
||||
raster.enable = mkBoolDefault false;
|
||||
vector.enable = mkBoolDefault false;
|
||||
_3d.enable = mkBoolDefault false;
|
||||
@ -22,8 +23,13 @@ in {
|
||||
[
|
||||
font-manager # Self-explanatory name is self-explanatory.
|
||||
imagemagick # A command-line tool for manipulating images.
|
||||
graphviz # The biz central for graphical flowcharts.
|
||||
] ++
|
||||
|
||||
(if cfg.programmable.enable then [
|
||||
processing # A visually-oriented language with an energertic train conductor as the mascot.
|
||||
] else []) ++
|
||||
|
||||
(if cfg.raster.enable then [
|
||||
gimp # Adobe Photoshop replacement.
|
||||
krita # A good painting program useful for "pure" digital arts.
|
||||
|
@ -12,13 +12,15 @@ with lib;
|
||||
|
||||
config = mkIf config.modules.dev.android.enable {
|
||||
my.packages = with pkgs; [
|
||||
android-studio # The apartment for Android development.
|
||||
dart # It's JavaScript except saner and slimmer.
|
||||
unstable.android-studio # The apartment for Android development.
|
||||
unstable.dart # It's JavaScript except saner and slimmer.
|
||||
unstable.flutter # It's Electron except saner and slimmer.
|
||||
kotlin # It's Java except saner and slimmer.
|
||||
unstable.kotlin # It's Java except saner and slimmer.
|
||||
];
|
||||
|
||||
# Enable Android Debug Bridge for some device debugging.
|
||||
programs.adb.enable = true;
|
||||
|
||||
my.user.extraGroups = [ "adbusers" ];
|
||||
};
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ with lib;
|
||||
config = mkIf config.modules.dev.base.enable {
|
||||
my.packages = with pkgs; [
|
||||
caddy2 # THE ULTIMATE HTTPS/2 SERVER FOR 'YER GOLFIN' SESSIONS!!!
|
||||
cmake # Yo, I heard you like Makefiles.
|
||||
cookiecutter # A project scaffolding tool.
|
||||
gnumake # Make your life easier with GNU Make.
|
||||
hyperfine # You shouldn't be feel just fine with your programs...
|
||||
|
@ -13,5 +13,6 @@
|
||||
./math.nix
|
||||
./perl.nix
|
||||
./rust.nix
|
||||
./vcs.nix
|
||||
];
|
||||
}
|
||||
|
@ -33,10 +33,13 @@ in
|
||||
hugo # An SSG for your DDD (documentation-driven development) workflow.
|
||||
languagetool # A grammar checker with a HUGE data set.
|
||||
pandoc # The Swiss army knife for document conversion.
|
||||
R # Rated G for accessibility.
|
||||
vale # The customizable linter for your intended writings.
|
||||
|
||||
# TODO: Make Neuron its own package.
|
||||
(let neuronSrc = builtins.fetchTarball "https://github.com/srid/neuron/archive/master.tar.gz";
|
||||
(let
|
||||
neuronRev = "3c46adea8cfa2262ac2d50d3d9b1a96cb13a512d";
|
||||
neuronSrc = builtins.fetchTarball "https://github.com/srid/neuron/archive/${neuronRev}.tar.gz";
|
||||
in import neuronSrc {}) # Neurons and zettels are good for the brain.
|
||||
] ++
|
||||
|
||||
|
@ -13,6 +13,7 @@ in
|
||||
type = types.bool;
|
||||
default = bool;
|
||||
}; in {
|
||||
defold.enable = mkBoolOption false;
|
||||
godot.enable = mkBoolOption false;
|
||||
unity3d.enable = mkBoolOption false;
|
||||
};
|
||||
@ -23,6 +24,10 @@ in
|
||||
godot # The Godot, not to be confused with a certain prosecutor.
|
||||
] else []) ++
|
||||
|
||||
(if cfg.defold.enable then [
|
||||
defold
|
||||
] else []) ++
|
||||
|
||||
(if cfg.unity3d.enable then [
|
||||
unstable.unity3d # The Unity, not to be confused with a certain ideal.
|
||||
unstable.unityhub # The ideal hub for your Unity projects.
|
||||
|
@ -2,7 +2,15 @@
|
||||
{ config, options, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
{
|
||||
let
|
||||
perlWithPackages = pkgs.perl.withPackages (p: with pkgs.perlPackages;
|
||||
[
|
||||
ModernBuild
|
||||
ModuleInfo
|
||||
ModuleInstall
|
||||
ModernPerl
|
||||
]);
|
||||
in {
|
||||
options.modules.dev.perl = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
@ -11,12 +19,6 @@ with lib;
|
||||
};
|
||||
|
||||
config = mkIf config.modules.dev.perl.enable {
|
||||
my.packages = with pkgs; [
|
||||
perl
|
||||
perlPackages.ModernPerl
|
||||
perlPackages.ModuleBuild
|
||||
perlPackages.ModuleInfo
|
||||
perlPackages.ModuleInstall
|
||||
];
|
||||
my.packages = perlWithPackages;
|
||||
};
|
||||
}
|
||||
|
20
modules/dev/vcs.nix
Normal file
20
modules/dev/vcs.nix
Normal file
@ -0,0 +1,20 @@
|
||||
# All of the version control systems are here!
|
||||
{ config, options, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
{
|
||||
options.modules.dev.vcs = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf config.modules.dev.vcs.enable {
|
||||
my.packages = with pkgs; [
|
||||
git
|
||||
mercurial
|
||||
subversion
|
||||
];
|
||||
};
|
||||
}
|
@ -32,8 +32,8 @@ with lib;
|
||||
# Optional depedencies
|
||||
fd # faster projectile
|
||||
imagemagick # image-dired
|
||||
# (lib.mkIf (config.programs.gnupg.agent.enable)
|
||||
# pinentry_emacs) # gnupg-emacs
|
||||
(lib.mkIf (config.programs.gnupg.agent.enable)
|
||||
pinentry_emacs) # gnupg-emacs
|
||||
zstd # for undo-fu-sessions
|
||||
|
||||
# Module dependencies
|
||||
|
@ -15,7 +15,7 @@ with lib;
|
||||
aria2 # The sequel to aria(1).
|
||||
aspell # Hunt down a spelling bee champion to come to your shell.
|
||||
bat # cat(1) with wings.
|
||||
# buku # A developer-oriented browser-independent bookmark manager.
|
||||
buku # A developer-oriented browser-independent bookmark manager.
|
||||
exa # ls(1) after an exodus.
|
||||
fd # find(1) after a cognitive behavioral therapy.
|
||||
fzf # A fuzzy finder that enables fuzzy finding not furry finding, a common misconception.
|
||||
@ -23,6 +23,7 @@ with lib;
|
||||
hledger # Do your accountancy thing ON THE COMMAND LINE, sure why not!
|
||||
httpie # Want a piece of the HTTP pie.
|
||||
gopass # The improved version of Password Store which is a password manager for hipsters.
|
||||
graphviz # The biz central for graphical flowcharts.
|
||||
maim # A command-line interface for parsing screenshots.
|
||||
jq # A command-line interface for parsing JSON.
|
||||
pup # A command-line interface for parsing HTML.
|
||||
|
@ -31,6 +31,21 @@ with lib;
|
||||
RPROMPT=\"[%D %*]\"
|
||||
";
|
||||
|
||||
interactiveShellInit = ''
|
||||
# Use lf to switch directories and bind it to ctrl-o
|
||||
lfcd () {
|
||||
tmp="$(mktemp)"
|
||||
lf -last-dir-path="$tmp" "$@"
|
||||
if [ -f "$tmp" ]; then
|
||||
dir="$(cat "$tmp")"
|
||||
rm -f "$tmp" >/dev/null
|
||||
[ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir"
|
||||
fi
|
||||
}
|
||||
bindkey -s '^o' 'lfcd\n'
|
||||
'';
|
||||
|
||||
ohMyZsh.plugins = [ "history-substring-search" ];
|
||||
syntaxHighlighting.enable = true;
|
||||
};
|
||||
|
||||
|
@ -1,6 +1,9 @@
|
||||
[
|
||||
(self: super: with super; {
|
||||
# defold = (callPackage ./defold.nix {});
|
||||
nur-foo-dogsquared = import (
|
||||
fetchTarball "https://github.com/foo-dogsquared/nix-expressions/archive/master.tar.gz") { };
|
||||
);
|
||||
);
|
||||
|
||||
# Add packages from the unstable channel with `pkgs.unstable.$PKG`.
|
||||
unstable = import <nixpkgs-unstable> { inherit config; };
|
||||
|
@ -1,51 +0,0 @@
|
||||
# https://defold.com/open/
|
||||
# It'sa game engine for cross-platform development.
|
||||
{ stdenv, fetchFromGitHub,
|
||||
autoconf,
|
||||
automake,
|
||||
cmake,
|
||||
curl,
|
||||
freeglut,
|
||||
git,
|
||||
jdk11,
|
||||
libtool,
|
||||
libuuid,
|
||||
mesa_glu,
|
||||
openalSoft,
|
||||
python2,
|
||||
rpm,
|
||||
valgrind,
|
||||
waf,
|
||||
xorgproto,
|
||||
libXi,
|
||||
libXext,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "defold";
|
||||
version = "1.2.171";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "defold";
|
||||
repo = "defold";
|
||||
rev = "v1.2.171";
|
||||
sha256 = "1anpwxgai1qk6c97zslfvj5b6s66fyk459cfnxnqm7d8sq9d0qg2";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
./scripts/build.py shell --platform=${stdenv.system}
|
||||
./scripts/build.py install_ext --platform=${stdenv.system}
|
||||
./scripts/build.py build_engine --platform=${stdenv.system}
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
doCheck = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A free and open-source game engine for cross-platform development.";
|
||||
homepage = "https://defold.com/";
|
||||
license = licenses.free;
|
||||
maintainers = [ maintainers.foo-dogsquared ];
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
};
|
||||
}
|
Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 300 KiB |
Loading…
Reference in New Issue
Block a user