This commit is contained in:
Danilo Reyes 2024-04-28 15:11:56 -06:00
parent 39d2219bb1
commit 39157db0da
20 changed files with 62 additions and 139 deletions

View File

@ -33,6 +33,18 @@
(self: super: { (self: super: {
planify = pkgsU.planify; planify = pkgsU.planify;
gdtoolkit = pkgsU.gdtoolkit; gdtoolkit = pkgsU.gdtoolkit;
lutris = super.lutris.override {
extraPkgs = pkgs: [
pkgs.winetricks
pkgs.wine64Packages.stable
pkgs.wineWowPackages.stable
];
};
nerdfonts = super.nerdfonts.override {
fonts = [ "CascadiaCode" "ComicShannsMono" "Iosevka" ];
};
handbrake = super.handbrake.override { useGtk = true; };
discord = super.discord.override { withOpenASAR = true; };
}) })
]; ];
}) })

View File

@ -1,6 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
imports = [ imports = [
./apps/art.nix ./apps/art.nix
./apps/dictionaries.nix ./apps/dictionaries.nix

View File

@ -5,16 +5,16 @@
}; };
config = lib.mkIf config.my.apps.art.enable { config = lib.mkIf config.my.apps.art.enable {
users.users.jawz.packages = with pkgs; users.users.jawz.packages = with pkgs;
([ [
gimp # the coolest bestest art program to never exist gimp # the coolest bestest art program to never exist
krita # art to your heart desire! krita # art to your heart desire!
mypaint # not the best art program mypaint # not the best art program
mypaint-brushes # but it's got some mypaint-brushes # but it's got some
mypaint-brushes1 # nice damn brushes mypaint-brushes1 # nice damn brushes
# drawpile # arty party with friends!!
pureref # create inspiration/reference boards pureref # create inspiration/reference boards
blender # cgi animation and sculpting blender # cgi animation and sculpting
]) ++ (if config.my.dev.gameDev.enable then [ # drawpile # arty party with friends!!
] ++ (if config.my.dev.gameDev.enable then [
godot_4 # game development godot_4 # game development
gdtoolkit # gdscript language server gdtoolkit # gdscript language server
] else ] else

View File

@ -1,14 +1,11 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
options.my.apps.dictionaries.enable = lib.mkEnableOption "enable"; options.my.apps.dictionaries.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.apps.dictionaries.enable { config = lib.mkIf config.my.apps.dictionaries.enable {
users.users.jawz.packages = with pkgs; ([ users.users.jawz.packages = with pkgs; [
hunspell hunspell
hunspellDicts.it_IT hunspellDicts.it_IT
hunspellDicts.es_MX hunspellDicts.es_MX
hunspellDicts.es_ES
hunspellDicts.en_CA-large hunspellDicts.en_CA-large
]); ];
}; };
} }

View File

@ -1,13 +1,6 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
options.my.apps.fonts.enable = lib.mkEnableOption "enable"; options.my.apps.fonts.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.apps.fonts.enable { config = lib.mkIf config.my.apps.fonts.enable {
users.users.jawz.packages = with pkgs; ([ users.users.jawz.packages = with pkgs; [ nerdfonts symbola ];
(nerdfonts.override {
fonts = [ "CascadiaCode" "ComicShannsMono" "Iosevka" ];
})
symbola
]);
}; };
} }

View File

@ -1,25 +1,22 @@
{ config, lib, pkgs, ... }: { { config, lib, pkgs, ... }: {
options.my.apps.gaming.enable = lib.mkEnableOption "enable"; options.my.apps.gaming.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.apps.gaming.enable { config = lib.mkIf config.my.apps.gaming.enable {
programs.steam = { programs = {
enable = true; gamemode.enable = true;
remotePlay.openFirewall = true; steam = {
dedicatedServer.openFirewall = true; enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
}; };
users.users.jawz.packages = with pkgs; ([ users.users.jawz.packages = with pkgs; [
(lutris.override { lutris # games launcher & emulator hub
extraPkgs = pkgs: [
winetricks
wine64Packages.stable
wineWowPackages.stable
];
})
cartridges # games launcher cartridges # games launcher
heroic # install epic games
gamemode # optimizes linux to have better gaming performance gamemode # optimizes linux to have better gaming performance
heroic # install epic games
protonup-qt # update proton-ge
# grapejuice # roblox manager # grapejuice # roblox manager
# minecraft # minecraft official launcher # minecraft # minecraft official launcher
protonup-qt # update proton-ge
# ns-usbloader # load games into my switch # ns-usbloader # load games into my switch
# emulators # emulators
@ -29,6 +26,6 @@
dolphin-emu # wii emulator dolphin-emu # wii emulator
citra-nightly # 3Ds emulator citra-nightly # 3Ds emulator
snes9x-gtk # snes emulator snes9x-gtk # snes emulator
]); ];
}; };
} }

View File

@ -1,6 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
options.my.apps.internet.enable = lib.mkEnableOption "enable"; options.my.apps.internet.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.apps.internet.enable { config = lib.mkIf config.my.apps.internet.enable {
programs = { programs = {
@ -10,8 +8,8 @@
languagePacks = [ "en-CA" "es-MX" "it" ]; languagePacks = [ "en-CA" "es-MX" "it" ];
}; };
}; };
services = { psd.enable = true; }; services.psd.enable = true;
users.users.jawz.packages = with pkgs; ([ users.users.jawz.packages = with pkgs; [
nextcloud-client # self-hosted google-drive alternative nextcloud-client # self-hosted google-drive alternative
fragments # beautiful torrent client fragments # beautiful torrent client
protonmail-bridge # bridge for protonmail protonmail-bridge # bridge for protonmail
@ -19,12 +17,9 @@
chromium # web browser with spyware included chromium # web browser with spyware included
telegram-desktop # furry chat telegram-desktop # furry chat
nicotine-plus # remember Ares? nicotine-plus # remember Ares?
vesktop vesktop # screen share with audio discord
(pkgs.discord.override { discord # :3
withOpenASAR = true;
# withVencord = true;
})
# hugo # website engine # hugo # website engine
]); ];
}; };
} }

View File

@ -1,22 +1,18 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
options.my.apps.multimedia.enable = lib.mkEnableOption "enable"; options.my.apps.multimedia.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.apps.multimedia.enable { config = lib.mkIf config.my.apps.multimedia.enable {
users.users.jawz.packages = with pkgs; ([ users.users.jawz.packages = with pkgs; [
# cozy # audiobooks player
# gnome-podcasts # podcast player
# hakuneko # manga & comic GUI downloader
celluloid # video player celluloid # video player
curtail # image compressor curtail # image compressor
easyeffects # equalizer easyeffects # equalizer
# (handbrake.override { handbrake # video converter, may be unnecessary
# useGtk = true;
# }) # video converter, may be unnecessary
identity # compare images or videos identity # compare images or videos
mousai # poor man shazam mousai # poor man shazam
shortwave # listen to world radio shortwave # listen to world radio
tagger # tag music files tagger # tag music files
]); # cozy # audiobooks player
# gnome-podcasts # podcast player
# hakuneko # manga & comic GUI downloader
];
}; };
} }

View File

@ -1,7 +1,7 @@
{ config, lib, pkgs, ... }: { { config, lib, pkgs, ... }: {
options.my.apps.office.enable = lib.mkEnableOption "enable"; options.my.apps.office.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.apps.office.enable { config = lib.mkIf config.my.apps.office.enable {
users.users.jawz.packages = with pkgs; ([ users.users.jawz.packages = with pkgs; [
libreoffice # office, but based libreoffice # office, but based
calibre # ugly af eBook library manager calibre # ugly af eBook library manager
newsflash # feed reader, syncs with nextcloud newsflash # feed reader, syncs with nextcloud
@ -10,6 +10,6 @@
# foliate # gtk eBook reader # foliate # gtk eBook reader
# wike # gtk wikipedia wow! # wike # gtk wikipedia wow!
# denaro # manage your finances # denaro # manage your finances
]); ];
}; };
} }

View File

@ -1,40 +0,0 @@
{ pkgs, config, lib, inputs, outputs, myLib, ... }:
let
cfg = config.myNixOS;
features = myLib.extendModules (name: {
extraOptions = {
myNixOS.${name}.enable =
lib.mkEnableOption "enable my ${name} configuration";
};
configExtension = config: (lib.mkIf cfg.${name}.enable config);
}) (myLib.filesIn ./features);
bundles = myLib.extendModules (name: {
extraOptions = {
myNixOS.bundles.${name}.enable =
lib.mkEnableOption "enable ${name} module bundle";
};
configExtension = config: (lib.mkIf cfg.bundles.${name}.enable config);
}) (myLib.filesIn ./bundles);
services = myLib.extendModules (name: {
extraOptions = {
myNixOS.services.${name}.enable =
lib.mkEnableOption "enable ${name} service";
};
configExtension = config: (lib.mkIf cfg.services.${name}.enable config);
}) (myLib.filesIn ./services);
in {
imports = [ inputs.home-manager.nixosModules.home-manager ] ++ features
++ bundles ++ services;
options.myNixOS = { sharedSettings = { }; };
config = {
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nixpkgs = {
hostPlatform = lib.mkDefault "x86_64-linux";
config.allowUnfree = true;
};
};
}

View File

@ -1,6 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
options.my.dev.haskell.enable = lib.mkEnableOption "enable"; options.my.dev.haskell.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.dev.haskell.enable { config = lib.mkIf config.my.dev.haskell.enable {
users.users.jawz.packages = with pkgs; ([ users.users.jawz.packages = with pkgs; ([

View File

@ -1,6 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
options.my.dev.nix.enable = lib.mkEnableOption "enable"; options.my.dev.nix.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.dev.nix.enable { config = lib.mkIf config.my.dev.nix.enable {
users.users.jawz.packages = with pkgs; ([ users.users.jawz.packages = with pkgs; ([

View File

@ -1,15 +1,10 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
options.my.dev.python.enable = lib.mkEnableOption "enable"; options.my.dev.python.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.dev.python.enable { config = lib.mkIf config.my.dev.python.enable {
users.users.jawz.packages = with pkgs; ([ users.users.jawz.packages = with pkgs; ([
pipenv # python development workflow for humans pipenv # python development workflow for humans
(python3.withPackages (ps: (python3.withPackages (ps:
with ps; [ with ps; [
# nose # testing and running python scripts
# poetry # dependency management made easy
# pytest # framework for writing tests
black # Python code formatter black # Python code formatter
editorconfig # follow rules of contributin editorconfig # follow rules of contributin
flake8 # wraper for pyflakes, pycodestyle and mccabe flake8 # wraper for pyflakes, pycodestyle and mccabe
@ -17,6 +12,9 @@
pyflakes # checks source code for errors pyflakes # checks source code for errors
pylint # bug and style checker for python pylint # bug and style checker for python
speedtest-cli # check internet speed from the comand line speedtest-cli # check internet speed from the comand line
# nose # testing and running python scripts
# poetry # dependency management made easy
# pytest # framework for writing tests
])) ]))
]); ]);
}; };

View File

@ -1,6 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
imports = [ imports = [
./services/network.nix ./services/network.nix
./services/nvidia.nix ./services/nvidia.nix

View File

@ -1,6 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
options.my.services.network.enable = lib.mkEnableOption "enable"; options.my.services.network.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.services.network.enable { config = lib.mkIf config.my.services.network.enable {
networking = { networking = {
@ -12,7 +10,7 @@
192.168.1.69 server 192.168.1.69 server
192.168.1.100 miniserver 192.168.1.100 miniserver
''; '';
firewall = { enable = true; }; firewall.enable = true;
}; };
}; };
} }

View File

@ -1,6 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
options.my.services.nvidia.enable = lib.mkEnableOption "enable"; options.my.services.nvidia.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.services.nvidia.enable { config = lib.mkIf config.my.services.nvidia.enable {
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = [ "nvidia" ];

View File

@ -1,9 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
# let
# nixGaming = import (builtins.fetchTarball
# "https://github.com/fufexan/nix-gaming/archive/master.tar.gz");
# in
{
imports = [ imports = [
# nixGaming.nixosModules.pipewireLowLatency # nixGaming.nixosModules.pipewireLowLatency
]; ];

View File

@ -1,6 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
imports = [ ./shell/exercism.nix ./dev/python.nix ./dev/haskell.nix ]; imports = [ ./shell/exercism.nix ./dev/python.nix ./dev/haskell.nix ];
my = { my = {
shell = { exercism.enable = lib.mkDefault false; }; shell = { exercism.enable = lib.mkDefault false; };

View File

@ -1,6 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: {
{
options.my.shell.exercism.enable = lib.mkEnableOption "enable"; options.my.shell.exercism.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.shell.exercism.enable { config = lib.mkIf config.my.shell.exercism.enable {
users.users.jawz.packages = with pkgs; ([ users.users.jawz.packages = with pkgs; ([

View File

@ -1,5 +1 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }: { users.users.jawz.packages = with pkgs; ([ ]); }
{
users.users.jawz.packages = with pkgs; ([ ]);
}