mirror of
https://github.com/starr-dusT/dotfiles.git
synced 2025-05-19 10:56:05 -07:00
Compare commits
No commits in common. "996c2d8ed7f76bf4c7b22c16b88f3905bc97c554" and "9399b584f8538141d77aa3f6edc83d8111b7b57d" have entirely different histories.
996c2d8ed7
...
9399b584f8
2
TODO.md
2
TODO.md
@ -1,2 +0,0 @@
|
||||
- Add Nix formatting and linting that works with neovim.
|
||||
- Change system to configs and migrate files to programs, desktop, or services as appropriate. configs will include optional system configuration that don't require additional programs installed (aliases for example)
|
@ -40,6 +40,8 @@
|
||||
devel = {
|
||||
engineering.enable = true;
|
||||
notes.enable = true;
|
||||
python.enable = true;
|
||||
tooling.enable = true;
|
||||
};
|
||||
gaming = {
|
||||
emulation.enable = true;
|
||||
@ -47,7 +49,6 @@
|
||||
steam.enable = true;
|
||||
};
|
||||
programs = {
|
||||
beancount.enable = true;
|
||||
chezmoi.apply = true;
|
||||
kitty.enable = true;
|
||||
syncthing = {
|
||||
|
@ -34,6 +34,10 @@
|
||||
enable = true;
|
||||
gnome.enable = true;
|
||||
};
|
||||
devel = {
|
||||
python.enable = true;
|
||||
tooling.enable = true;
|
||||
};
|
||||
programs = {
|
||||
chezmoi.apply = true;
|
||||
kitty.enable = true;
|
||||
|
@ -27,6 +27,8 @@
|
||||
devel = {
|
||||
engineering.enable = true;
|
||||
notes.enable = true;
|
||||
python.enable = true;
|
||||
tooling.enable = true;
|
||||
};
|
||||
programs = {
|
||||
kitty.enable = true;
|
||||
|
@ -96,6 +96,9 @@
|
||||
|
||||
# Modules
|
||||
modules = {
|
||||
devel = {
|
||||
tooling.enable = true;
|
||||
};
|
||||
programs = {
|
||||
chezmoi.apply = true;
|
||||
};
|
||||
|
@ -52,6 +52,10 @@ in
|
||||
|
||||
# Modules
|
||||
modules = {
|
||||
devel = {
|
||||
python.enable = true;
|
||||
tooling.enable = true;
|
||||
};
|
||||
programs = {
|
||||
chezmoi.apply = true;
|
||||
git.keys = false;
|
||||
|
@ -1,7 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./engineering.nix
|
||||
./notes.nix
|
||||
];
|
||||
imports = [ ./notes.nix ./python.nix ./tooling.nix ./engineering.nix ];
|
||||
}
|
||||
|
@ -1,14 +1,18 @@
|
||||
# CAD and 3d printing and everything nice
|
||||
|
||||
{ config, lib, pkgs, user, ... }:
|
||||
|
||||
let cfg = config.modules.devel.engineering;
|
||||
let
|
||||
cfg = config.modules.devel.engineering;
|
||||
in {
|
||||
options.modules.devel.engineering.enable = lib.mkEnableOption "engineering";
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
blender # Open-source 3D creation suite for modeling, animation, rendering, and more.
|
||||
freecad # Open-source parametric 3D CAD modeler.
|
||||
openscad # Open-source script-only based modeller.
|
||||
prusa-slicer # Slicing software optimized for Prusa 3D printers, offering user-friendly interface and settings.
|
||||
freecad # Open-source parametric 3D CAD modeler.
|
||||
blender # Open-source 3D creation suite for modeling, animation, rendering, and more.
|
||||
openscad
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -1,12 +1,17 @@
|
||||
{ config, lib, pkgs, user, ... }:
|
||||
|
||||
let cfg = config.modules.devel.notes;
|
||||
let
|
||||
cfg = config.modules.devel.notes;
|
||||
in {
|
||||
options.modules.devel.notes.enable = lib.mkEnableOption "notes";
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
obsidian # Note-taking and knowledge management application.
|
||||
pandoc # Universal document converter.
|
||||
gollum # Wiki software that provides a simple, Git-based wiki engine.
|
||||
obsidian # Note-taking and knowledge management application.
|
||||
zk # Command-line tool for interacting with Apache ZooKeeper, a centralized service for distributed systems.
|
||||
bat # Cat clone with syntax highlighting and Git integration.
|
||||
fzf # Command-line fuzzy finder for Unix-like operating systems.
|
||||
];
|
||||
};
|
||||
}
|
||||
|
25
provision/modules/devel/python.nix
Normal file
25
provision/modules/devel/python.nix
Normal file
@ -0,0 +1,25 @@
|
||||
# python with all the venom
|
||||
|
||||
{ config, lib, pkgs, user, ... }:
|
||||
|
||||
let
|
||||
cfg = config.modules.devel.python;
|
||||
my-python-packages = ps: with ps; [
|
||||
virtualenv # Tool for creating isolated Python environments.
|
||||
i3ipc # Python library for controlling i3 window manager via its IPC interface.
|
||||
ipython # Interactive computing environment for Python.
|
||||
pip # Package installer for Python.
|
||||
];
|
||||
|
||||
in {
|
||||
options.modules.devel.python.enable = lib.mkEnableOption "python";
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
(python3.withPackages my-python-packages)
|
||||
fava # Web interface for the double-entry bookkeeping software Beancount.
|
||||
beancount # Double-entry bookkeeping software for tracking financial transactions.
|
||||
pyright # Latest version of the Pyright package, a static type checker for Python.
|
||||
];
|
||||
};
|
||||
}
|
21
provision/modules/devel/tooling.nix
Normal file
21
provision/modules/devel/tooling.nix
Normal file
@ -0,0 +1,21 @@
|
||||
# coding stuff for all the languages
|
||||
|
||||
{ config, lib, pkgs, user, ... }:
|
||||
|
||||
let
|
||||
cfg = config.modules.devel.tooling;
|
||||
in {
|
||||
options.modules.devel.tooling.enable = lib.mkEnableOption "tooling";
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
cmake # Cross-platform build system generator.
|
||||
gcc # GNU Compiler Collection, a compiler system for programming languages.
|
||||
coreutils # Collection of basic file, shell, and text manipulation utilities.
|
||||
gnumake # GNU Make, a build automation tool.
|
||||
go # Programming language developed by Google, known for its simplicity and efficiency.
|
||||
nixpkgs-lint
|
||||
nixpkgs-fmt
|
||||
];
|
||||
};
|
||||
}
|
@ -1,8 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./emulation.nix
|
||||
./minecraft.nix
|
||||
./steam.nix
|
||||
];
|
||||
imports = [ ./emulation.nix ./minecraft.nix ./steam.nix ];
|
||||
}
|
||||
|
@ -4,6 +4,8 @@ let cfg = config.modules.gaming.emulation;
|
||||
in {
|
||||
options.modules.gaming.emulation.enable = lib.mkEnableOption "emulation";
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
ryujinx # Fuck Nintendo!
|
||||
sudachi # Nintendo Switch emulator written in C++.
|
||||
@ -22,7 +24,6 @@ in {
|
||||
})
|
||||
];
|
||||
|
||||
# Provide dumped keys for switch emulation
|
||||
age.secrets."emu/switch/prod.keys" = {
|
||||
file = ../../secrets/emu/switch/prod.keys.age;
|
||||
owner = "${user}";
|
||||
|
@ -5,8 +5,8 @@ in {
|
||||
options.modules.gaming.minecraft.enable = lib.mkEnableOption "minecraft";
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
jdk17 # Java Development Kit (JDK) version 17.
|
||||
prismlauncher # Launcher for Prism, a web application framework.
|
||||
jdk17 # Java Development Kit (JDK) version 17.
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -4,19 +4,22 @@ let cfg = config.modules.gaming.steam;
|
||||
in {
|
||||
options.modules.gaming.steam.enable = lib.mkEnableOption "steam";
|
||||
config = lib.mkIf cfg.enable {
|
||||
hardware.graphics.enable = true; # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932
|
||||
|
||||
# optionally enable 32bit pulseaudio support if pulseaudio is enabled
|
||||
hardware.pulseaudio.support32Bit = config.hardware.pulseaudio.enable;
|
||||
|
||||
hardware.steam-hardware.enable = true;
|
||||
# Digital distribution platform for purchasing and playing video games.
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
# Workaround from: https://github.com/NixOS/nixpkgs/issues/236561
|
||||
package = with pkgs; steam.override { extraPkgs = pkgs: [ attr ]; };
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
steamtinkerlaunch # Launcher and optimization tool for Steam games.
|
||||
gamescope # Utility for running games using Valve's Steam Play compatibility layer with improved performance and compatibility.
|
||||
mangohud # Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more.
|
||||
mangohud
|
||||
];
|
||||
|
||||
hardware.graphics.enable = true; # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932
|
||||
hardware.pulseaudio.support32Bit = config.hardware.pulseaudio.enable; # Enable 32bit pulseaudio support if pulseaudio is enabled
|
||||
hardware.steam-hardware.enable = true;
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
package = with pkgs; steam.override { extraPkgs = pkgs: [ attr ]; }; # Workaround from: https://github.com/NixOS/nixpkgs/issues/236561
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -1,12 +0,0 @@
|
||||
{ config, lib, pkgs, user, ... }:
|
||||
|
||||
let cfg = config.modules.programs.beancount;
|
||||
in {
|
||||
options.modules.programs.beancount.enable = lib.mkEnableOption "beancount";
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
fava # Web interface for the double-entry bookkeeping software Beancount.
|
||||
beancount # Double-entry bookkeeping software for tracking financial transactions.
|
||||
];
|
||||
};
|
||||
}
|
@ -1,13 +1,11 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./beancount.nix
|
||||
./chrome
|
||||
./firefox
|
||||
./git.nix
|
||||
./chezmoi.nix
|
||||
./kitty.nix
|
||||
./nvim.nix
|
||||
./syncthing.nix
|
||||
./yt-dlp.nix
|
||||
];
|
||||
|
@ -1,29 +0,0 @@
|
||||
{ config, lib, pkgs, user, home-manager, ... }:
|
||||
|
||||
let cfg = config.modules.programs.nvim;
|
||||
in {
|
||||
options.modules.programs.nvim = with lib; {
|
||||
enable = lib.mkOption {
|
||||
type = with types; bool;
|
||||
default = true;
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
neovim # Fork of Vim aiming to improve extensibility and usability.
|
||||
pyright # Latest version of the Pyright package, a static type checker for Python.
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -21,6 +21,7 @@ in {
|
||||
unzip # Command-line utility for extracting files from ZIP archives.
|
||||
trash-cli # Command-line interface to the freedesktop.org Trash.
|
||||
vim # Text editor that is highly configurable and widely used, especially in the Unix environment.
|
||||
neovim # Fork of Vim aiming to improve extensibility and usability.
|
||||
nodejs # JavaScript runtime built on Chrome's V8 JavaScript engine.
|
||||
ripgrep # Line-oriented search tool that recursively searches directories for a regex pattern.
|
||||
cargo # Package manager and build system for Rust.
|
||||
|
Loading…
x
Reference in New Issue
Block a user