mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-04-24 18: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:
|
rollback:
|
||||||
@sudo nix-env --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.
|
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.
|
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].
|
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.
|
See the <<Packages>> section for more information.
|
||||||
|
|
||||||
|
@ -98,6 +98,7 @@
|
|||||||
racket.enable = true;
|
racket.enable = true;
|
||||||
};
|
};
|
||||||
rust.enable = true;
|
rust.enable = true;
|
||||||
|
vcs.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
editors = {
|
editors = {
|
||||||
@ -155,10 +156,16 @@
|
|||||||
maim
|
maim
|
||||||
(tesseract.override { enableLanguages = [ "eng" ]; })
|
(tesseract.override { enableLanguages = [ "eng" ]; })
|
||||||
slop
|
slop
|
||||||
|
virt-manager
|
||||||
xclip
|
xclip
|
||||||
xdg-user-dirs
|
xdg-user-dirs
|
||||||
xorg.xwininfo
|
xorg.xwininfo
|
||||||
zbar
|
zbar
|
||||||
|
|
||||||
|
# My custom packages.
|
||||||
|
# fds-nur.brl-cad
|
||||||
|
# fds-nur.hypermail
|
||||||
|
# fds-nur.wikiman
|
||||||
];
|
];
|
||||||
|
|
||||||
# Setting up the shell environment.
|
# Setting up the shell environment.
|
||||||
@ -168,7 +175,15 @@
|
|||||||
READ = "zathura";
|
READ = "zathura";
|
||||||
SUDO_ASKPASS = <config/bin/askpass>;
|
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.
|
# Set your time zone.
|
||||||
time.timeZone = "Asia/Manila";
|
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!
|
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.
|
kicad # The CAD for ki which is a form of energy found everywhere.
|
||||||
leocad # A CAD for leos, a well-known brand of toys.
|
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.
|
udiskie # An automounter for external devices with authentication.
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Enable peer-to-peer synchro summoning service.
|
||||||
|
my.home.services = {
|
||||||
|
syncthing.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
# Clean 'yer home!
|
# Clean 'yer home!
|
||||||
my.env = {
|
my.env = {
|
||||||
RECOLL_CONFDIR = "$XDG_DATA_HOME/recoll";
|
RECOLL_CONFDIR = "$XDG_DATA_HOME/recoll";
|
||||||
|
@ -12,6 +12,7 @@ in {
|
|||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = bool;
|
default = bool;
|
||||||
}; in {
|
}; in {
|
||||||
|
programmable.enable = mkBoolDefault false;
|
||||||
raster.enable = mkBoolDefault false;
|
raster.enable = mkBoolDefault false;
|
||||||
vector.enable = mkBoolDefault false;
|
vector.enable = mkBoolDefault false;
|
||||||
_3d.enable = mkBoolDefault false;
|
_3d.enable = mkBoolDefault false;
|
||||||
@ -22,8 +23,13 @@ in {
|
|||||||
[
|
[
|
||||||
font-manager # Self-explanatory name is self-explanatory.
|
font-manager # Self-explanatory name is self-explanatory.
|
||||||
imagemagick # A command-line tool for manipulating images.
|
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 [
|
(if cfg.raster.enable then [
|
||||||
gimp # Adobe Photoshop replacement.
|
gimp # Adobe Photoshop replacement.
|
||||||
krita # A good painting program useful for "pure" digital arts.
|
krita # A good painting program useful for "pure" digital arts.
|
||||||
|
@ -12,13 +12,15 @@ with lib;
|
|||||||
|
|
||||||
config = mkIf config.modules.dev.android.enable {
|
config = mkIf config.modules.dev.android.enable {
|
||||||
my.packages = with pkgs; [
|
my.packages = with pkgs; [
|
||||||
android-studio # The apartment for Android development.
|
unstable.android-studio # The apartment for Android development.
|
||||||
dart # It's JavaScript except saner and slimmer.
|
unstable.dart # It's JavaScript except saner and slimmer.
|
||||||
unstable.flutter # It's Electron 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.
|
# Enable Android Debug Bridge for some device debugging.
|
||||||
programs.adb.enable = true;
|
programs.adb.enable = true;
|
||||||
|
|
||||||
|
my.user.extraGroups = [ "adbusers" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ with lib;
|
|||||||
config = mkIf config.modules.dev.base.enable {
|
config = mkIf config.modules.dev.base.enable {
|
||||||
my.packages = with pkgs; [
|
my.packages = with pkgs; [
|
||||||
caddy2 # THE ULTIMATE HTTPS/2 SERVER FOR 'YER GOLFIN' SESSIONS!!!
|
caddy2 # THE ULTIMATE HTTPS/2 SERVER FOR 'YER GOLFIN' SESSIONS!!!
|
||||||
|
cmake # Yo, I heard you like Makefiles.
|
||||||
cookiecutter # A project scaffolding tool.
|
cookiecutter # A project scaffolding tool.
|
||||||
gnumake # Make your life easier with GNU Make.
|
gnumake # Make your life easier with GNU Make.
|
||||||
hyperfine # You shouldn't be feel just fine with your programs...
|
hyperfine # You shouldn't be feel just fine with your programs...
|
||||||
|
@ -13,5 +13,6 @@
|
|||||||
./math.nix
|
./math.nix
|
||||||
./perl.nix
|
./perl.nix
|
||||||
./rust.nix
|
./rust.nix
|
||||||
|
./vcs.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -33,10 +33,13 @@ in
|
|||||||
hugo # An SSG for your DDD (documentation-driven development) workflow.
|
hugo # An SSG for your DDD (documentation-driven development) workflow.
|
||||||
languagetool # A grammar checker with a HUGE data set.
|
languagetool # A grammar checker with a HUGE data set.
|
||||||
pandoc # The Swiss army knife for document conversion.
|
pandoc # The Swiss army knife for document conversion.
|
||||||
|
R # Rated G for accessibility.
|
||||||
vale # The customizable linter for your intended writings.
|
vale # The customizable linter for your intended writings.
|
||||||
|
|
||||||
# TODO: Make Neuron its own package.
|
# 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.
|
in import neuronSrc {}) # Neurons and zettels are good for the brain.
|
||||||
] ++
|
] ++
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ in
|
|||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = bool;
|
default = bool;
|
||||||
}; in {
|
}; in {
|
||||||
|
defold.enable = mkBoolOption false;
|
||||||
godot.enable = mkBoolOption false;
|
godot.enable = mkBoolOption false;
|
||||||
unity3d.enable = mkBoolOption false;
|
unity3d.enable = mkBoolOption false;
|
||||||
};
|
};
|
||||||
@ -23,6 +24,10 @@ in
|
|||||||
godot # The Godot, not to be confused with a certain prosecutor.
|
godot # The Godot, not to be confused with a certain prosecutor.
|
||||||
] else []) ++
|
] else []) ++
|
||||||
|
|
||||||
|
(if cfg.defold.enable then [
|
||||||
|
defold
|
||||||
|
] else []) ++
|
||||||
|
|
||||||
(if cfg.unity3d.enable then [
|
(if cfg.unity3d.enable then [
|
||||||
unstable.unity3d # The Unity, not to be confused with a certain ideal.
|
unstable.unity3d # The Unity, not to be confused with a certain ideal.
|
||||||
unstable.unityhub # The ideal hub for your Unity projects.
|
unstable.unityhub # The ideal hub for your Unity projects.
|
||||||
|
@ -2,7 +2,15 @@
|
|||||||
{ config, options, lib, pkgs, ... }:
|
{ config, options, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
{
|
let
|
||||||
|
perlWithPackages = pkgs.perl.withPackages (p: with pkgs.perlPackages;
|
||||||
|
[
|
||||||
|
ModernBuild
|
||||||
|
ModuleInfo
|
||||||
|
ModuleInstall
|
||||||
|
ModernPerl
|
||||||
|
]);
|
||||||
|
in {
|
||||||
options.modules.dev.perl = {
|
options.modules.dev.perl = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
@ -11,12 +19,6 @@ with lib;
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf config.modules.dev.perl.enable {
|
config = mkIf config.modules.dev.perl.enable {
|
||||||
my.packages = with pkgs; [
|
my.packages = perlWithPackages;
|
||||||
perl
|
|
||||||
perlPackages.ModernPerl
|
|
||||||
perlPackages.ModuleBuild
|
|
||||||
perlPackages.ModuleInfo
|
|
||||||
perlPackages.ModuleInstall
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
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
|
# Optional depedencies
|
||||||
fd # faster projectile
|
fd # faster projectile
|
||||||
imagemagick # image-dired
|
imagemagick # image-dired
|
||||||
# (lib.mkIf (config.programs.gnupg.agent.enable)
|
(lib.mkIf (config.programs.gnupg.agent.enable)
|
||||||
# pinentry_emacs) # gnupg-emacs
|
pinentry_emacs) # gnupg-emacs
|
||||||
zstd # for undo-fu-sessions
|
zstd # for undo-fu-sessions
|
||||||
|
|
||||||
# Module dependencies
|
# Module dependencies
|
||||||
|
@ -15,7 +15,7 @@ with lib;
|
|||||||
aria2 # The sequel to aria(1).
|
aria2 # The sequel to aria(1).
|
||||||
aspell # Hunt down a spelling bee champion to come to your shell.
|
aspell # Hunt down a spelling bee champion to come to your shell.
|
||||||
bat # cat(1) with wings.
|
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.
|
exa # ls(1) after an exodus.
|
||||||
fd # find(1) after a cognitive behavioral therapy.
|
fd # find(1) after a cognitive behavioral therapy.
|
||||||
fzf # A fuzzy finder that enables fuzzy finding not furry finding, a common misconception.
|
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!
|
hledger # Do your accountancy thing ON THE COMMAND LINE, sure why not!
|
||||||
httpie # Want a piece of the HTTP pie.
|
httpie # Want a piece of the HTTP pie.
|
||||||
gopass # The improved version of Password Store which is a password manager for hipsters.
|
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.
|
maim # A command-line interface for parsing screenshots.
|
||||||
jq # A command-line interface for parsing JSON.
|
jq # A command-line interface for parsing JSON.
|
||||||
pup # A command-line interface for parsing HTML.
|
pup # A command-line interface for parsing HTML.
|
||||||
|
@ -31,6 +31,21 @@ with lib;
|
|||||||
RPROMPT=\"[%D %*]\"
|
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;
|
syntaxHighlighting.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
[
|
[
|
||||||
(self: super: with super; {
|
(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`.
|
# Add packages from the unstable channel with `pkgs.unstable.$PKG`.
|
||||||
unstable = import <nixpkgs-unstable> { inherit config; };
|
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