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 = {
|
devel = {
|
||||||
engineering.enable = true;
|
engineering.enable = true;
|
||||||
notes.enable = true;
|
notes.enable = true;
|
||||||
|
python.enable = true;
|
||||||
|
tooling.enable = true;
|
||||||
};
|
};
|
||||||
gaming = {
|
gaming = {
|
||||||
emulation.enable = true;
|
emulation.enable = true;
|
||||||
@ -47,7 +49,6 @@
|
|||||||
steam.enable = true;
|
steam.enable = true;
|
||||||
};
|
};
|
||||||
programs = {
|
programs = {
|
||||||
beancount.enable = true;
|
|
||||||
chezmoi.apply = true;
|
chezmoi.apply = true;
|
||||||
kitty.enable = true;
|
kitty.enable = true;
|
||||||
syncthing = {
|
syncthing = {
|
||||||
|
@ -34,6 +34,10 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
gnome.enable = true;
|
gnome.enable = true;
|
||||||
};
|
};
|
||||||
|
devel = {
|
||||||
|
python.enable = true;
|
||||||
|
tooling.enable = true;
|
||||||
|
};
|
||||||
programs = {
|
programs = {
|
||||||
chezmoi.apply = true;
|
chezmoi.apply = true;
|
||||||
kitty.enable = true;
|
kitty.enable = true;
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
devel = {
|
devel = {
|
||||||
engineering.enable = true;
|
engineering.enable = true;
|
||||||
notes.enable = true;
|
notes.enable = true;
|
||||||
|
python.enable = true;
|
||||||
|
tooling.enable = true;
|
||||||
};
|
};
|
||||||
programs = {
|
programs = {
|
||||||
kitty.enable = true;
|
kitty.enable = true;
|
||||||
|
@ -96,6 +96,9 @@
|
|||||||
|
|
||||||
# Modules
|
# Modules
|
||||||
modules = {
|
modules = {
|
||||||
|
devel = {
|
||||||
|
tooling.enable = true;
|
||||||
|
};
|
||||||
programs = {
|
programs = {
|
||||||
chezmoi.apply = true;
|
chezmoi.apply = true;
|
||||||
};
|
};
|
||||||
|
@ -52,6 +52,10 @@ in
|
|||||||
|
|
||||||
# Modules
|
# Modules
|
||||||
modules = {
|
modules = {
|
||||||
|
devel = {
|
||||||
|
python.enable = true;
|
||||||
|
tooling.enable = true;
|
||||||
|
};
|
||||||
programs = {
|
programs = {
|
||||||
chezmoi.apply = true;
|
chezmoi.apply = true;
|
||||||
git.keys = false;
|
git.keys = false;
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [ ./notes.nix ./python.nix ./tooling.nix ./engineering.nix ];
|
||||||
./engineering.nix
|
|
||||||
./notes.nix
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,18 @@
|
|||||||
|
# CAD and 3d printing and everything nice
|
||||||
|
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, user, ... }:
|
||||||
|
|
||||||
let cfg = config.modules.devel.engineering;
|
let
|
||||||
|
cfg = config.modules.devel.engineering;
|
||||||
in {
|
in {
|
||||||
options.modules.devel.engineering.enable = lib.mkEnableOption "engineering";
|
options.modules.devel.engineering.enable = lib.mkEnableOption "engineering";
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
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.
|
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, ... }:
|
{ config, lib, pkgs, user, ... }:
|
||||||
|
|
||||||
let cfg = config.modules.devel.notes;
|
let
|
||||||
|
cfg = config.modules.devel.notes;
|
||||||
in {
|
in {
|
||||||
options.modules.devel.notes.enable = lib.mkEnableOption "notes";
|
options.modules.devel.notes.enable = lib.mkEnableOption "notes";
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
obsidian # Note-taking and knowledge management application.
|
|
||||||
pandoc # Universal document converter.
|
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 = [
|
imports = [ ./emulation.nix ./minecraft.nix ./steam.nix ];
|
||||||
./emulation.nix
|
|
||||||
./minecraft.nix
|
|
||||||
./steam.nix
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,8 @@ let cfg = config.modules.gaming.emulation;
|
|||||||
in {
|
in {
|
||||||
options.modules.gaming.emulation.enable = lib.mkEnableOption "emulation";
|
options.modules.gaming.emulation.enable = lib.mkEnableOption "emulation";
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
ryujinx # Fuck Nintendo!
|
ryujinx # Fuck Nintendo!
|
||||||
sudachi # Nintendo Switch emulator written in C++.
|
sudachi # Nintendo Switch emulator written in C++.
|
||||||
@ -22,7 +24,6 @@ in {
|
|||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
# Provide dumped keys for switch emulation
|
|
||||||
age.secrets."emu/switch/prod.keys" = {
|
age.secrets."emu/switch/prod.keys" = {
|
||||||
file = ../../secrets/emu/switch/prod.keys.age;
|
file = ../../secrets/emu/switch/prod.keys.age;
|
||||||
owner = "${user}";
|
owner = "${user}";
|
||||||
|
@ -5,8 +5,8 @@ in {
|
|||||||
options.modules.gaming.minecraft.enable = lib.mkEnableOption "minecraft";
|
options.modules.gaming.minecraft.enable = lib.mkEnableOption "minecraft";
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
jdk17 # Java Development Kit (JDK) version 17.
|
|
||||||
prismlauncher # Launcher for Prism, a web application framework.
|
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 {
|
in {
|
||||||
options.modules.gaming.steam.enable = lib.mkEnableOption "steam";
|
options.modules.gaming.steam.enable = lib.mkEnableOption "steam";
|
||||||
config = lib.mkIf cfg.enable {
|
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; [
|
environment.systemPackages = with pkgs; [
|
||||||
steamtinkerlaunch # Launcher and optimization tool for Steam games.
|
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.
|
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 = [
|
imports = [
|
||||||
./beancount.nix
|
|
||||||
./chrome
|
./chrome
|
||||||
./firefox
|
./firefox
|
||||||
./git.nix
|
./git.nix
|
||||||
./chezmoi.nix
|
./chezmoi.nix
|
||||||
./kitty.nix
|
./kitty.nix
|
||||||
./nvim.nix
|
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
./yt-dlp.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.
|
unzip # Command-line utility for extracting files from ZIP archives.
|
||||||
trash-cli # Command-line interface to the freedesktop.org Trash.
|
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.
|
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.
|
nodejs # JavaScript runtime built on Chrome's V8 JavaScript engine.
|
||||||
ripgrep # Line-oriented search tool that recursively searches directories for a regex pattern.
|
ripgrep # Line-oriented search tool that recursively searches directories for a regex pattern.
|
||||||
cargo # Package manager and build system for Rust.
|
cargo # Package manager and build system for Rust.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user