probably broken, car ride modularizing
This commit is contained in:
parent
f9a7f9d8de
commit
46cdbd8a09
62
base.nix
62
base.nix
@ -1,4 +1,12 @@
|
||||
{ config, lib, pkgs, inputs, outputs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
outputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
./modules/apps.nix
|
||||
@ -11,8 +19,10 @@
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
useGlobalPkgs = true;
|
||||
extraSpecialArgs = { inherit inputs outputs; };
|
||||
users.jawz = import ./home-manager/default.nix;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
users.jawz = import ./home-manager.nix;
|
||||
};
|
||||
system.stateVersion = "24.05";
|
||||
time = {
|
||||
@ -21,7 +31,9 @@
|
||||
};
|
||||
i18n = {
|
||||
defaultLocale = "en_CA.UTF-8";
|
||||
extraLocaleSettings = { LC_MONETARY = "es_MX.UTF-8"; };
|
||||
extraLocaleSettings = {
|
||||
LC_MONETARY = "es_MX.UTF-8";
|
||||
};
|
||||
};
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
@ -34,12 +46,14 @@
|
||||
enable = true;
|
||||
wheelNeedsPassword = false;
|
||||
};
|
||||
pam.loginLimits = [{
|
||||
pam.loginLimits = [
|
||||
{
|
||||
domain = "*";
|
||||
type = "soft";
|
||||
item = "nofile";
|
||||
value = "8192";
|
||||
}];
|
||||
}
|
||||
];
|
||||
};
|
||||
nix = {
|
||||
optimise.automatic = true;
|
||||
@ -49,7 +63,10 @@
|
||||
};
|
||||
settings = {
|
||||
auto-optimise-store = true;
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
substituters = [
|
||||
"https://nix-gaming.cachix.org"
|
||||
"https://nixpkgs-python.cachix.org"
|
||||
@ -68,7 +85,9 @@
|
||||
];
|
||||
};
|
||||
};
|
||||
documentation = { enable = false; };
|
||||
documentation = {
|
||||
enable = false;
|
||||
};
|
||||
users.groups.piracy.gid = 985;
|
||||
environment = {
|
||||
systemPackages = with pkgs; [ wget ];
|
||||
@ -81,56 +100,31 @@
|
||||
XDG_STATE_HOME = "\${HOME}/.local/state";
|
||||
|
||||
# DEV PATH
|
||||
CABAL_DIR = "${XDG_CACHE_HOME}/cabal";
|
||||
CARGO_HOME = "${XDG_DATA_HOME}/cargo";
|
||||
GEM_HOME = "${XDG_DATA_HOME}/ruby/gems";
|
||||
GEM_PATH = "${XDG_DATA_HOME}/ruby/gems";
|
||||
GEM_SPEC_CACHE = "${XDG_DATA_HOME}/ruby/specs";
|
||||
GOPATH = "${XDG_DATA_HOME}/go";
|
||||
NPM_CONFIG_USERCONFIG = "${XDG_CONFIG_HOME}/npm/npmrc";
|
||||
PNPM_HOME = "${XDG_DATA_HOME}/pnpm";
|
||||
PSQL_HISTORY = "${XDG_DATA_HOME}/psql_history";
|
||||
REDISCLI_HISTFILE = "${XDG_DATA_HOME}/redis/rediscli_history";
|
||||
WINEPREFIX = "${XDG_DATA_HOME}/wine";
|
||||
PYTHONSTARTUP = "${XDG_CONFIG_HOME}/python/pythonrc";
|
||||
STACK_ROOT = "${XDG_DATA_HOME}/stack";
|
||||
|
||||
# OPTIONS
|
||||
HISTFILE = "${XDG_STATE_HOME}/bash/history";
|
||||
LESSHISTFILE = "-";
|
||||
GHCUP_USE_XDG_DIRS = "true";
|
||||
RIPGREP_CONFIG_PATH = "${XDG_CONFIG_HOME}/ripgrep/ripgreprc";
|
||||
ELECTRUMDIR = "${XDG_DATA_HOME}/electrum";
|
||||
VISUAL = "emacsclient -ca emacs";
|
||||
WGETRC = "${XDG_CONFIG_HOME}/wgetrc";
|
||||
XCOMPOSECACHE = "${XDG_CACHE_HOME}/X11/xcompose";
|
||||
"_JAVA_OPTIONS" = "-Djava.util.prefs.userRoot=${XDG_CONFIG_HOME}/java";
|
||||
DOCKER_CONFIG = "${XDG_CONFIG_HOME}/docker";
|
||||
|
||||
# NVIDIA
|
||||
CUDA_CACHE_PATH = "${XDG_CACHE_HOME}/nv";
|
||||
|
||||
# Themes
|
||||
# WEBKIT_DISABLE_COMPOSITING_MODE = "1";
|
||||
CALIBRE_USE_SYSTEM_THEME = "1";
|
||||
|
||||
PATH = [
|
||||
"\${HOME}/.local/bin"
|
||||
"${XDG_CONFIG_HOME}/emacs/bin"
|
||||
"${XDG_DATA_HOME}/npm/bin"
|
||||
"${XDG_DATA_HOME}/pnpm"
|
||||
];
|
||||
PATH = [ "\${HOME}/.local/bin" ];
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
nh.enable = true;
|
||||
starship.enable = true;
|
||||
tmux.enable = true;
|
||||
fzf.fuzzyCompletion = true;
|
||||
neovim = {
|
||||
enable = true;
|
||||
vimAlias = true;
|
||||
};
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
|
||||
22
gnome.nix
22
gnome.nix
@ -9,22 +9,24 @@
|
||||
displayManager.gdm.enable = true;
|
||||
desktopManager.gnome = {
|
||||
enable = true;
|
||||
# extraGSettingsOverridePackages = [ pkgs.gnome.mutter ];
|
||||
# extraGSettingsOverrides = ''
|
||||
# [org.gnome.mutter]
|
||||
# experimental-features=['variable-refresh-rate', 'scale-monitor-framebuffer']
|
||||
# '';
|
||||
extraGSettingsOverridePackages = [ pkgs.gnome.mutter ];
|
||||
extraGSettingsOverrides = ''
|
||||
[org.gnome.mutter]
|
||||
experimental-features=['variable-refresh-rate', 'scale-monitor-framebuffer']
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
environment.gnome.excludePackages = (with pkgs; [
|
||||
environment.gnome.excludePackages =
|
||||
(with pkgs; [
|
||||
gnome-photos
|
||||
gnome-tour
|
||||
gnome-text-editor
|
||||
gnome-connections
|
||||
# gnome-shell-extensions
|
||||
baobab
|
||||
]) ++ (with pkgs.gnome; [
|
||||
])
|
||||
++ (with pkgs.gnome; [
|
||||
# totem
|
||||
gnome-music
|
||||
epiphany
|
||||
@ -37,7 +39,8 @@
|
||||
enable = true;
|
||||
style = "adwaita";
|
||||
};
|
||||
users.users.jawz.packages = with pkgs;
|
||||
users.users.jawz.packages =
|
||||
with pkgs;
|
||||
([
|
||||
# ffmpegthumbnailer # generate thumbnails
|
||||
adw-gtk3 # theme legacy applications
|
||||
@ -46,7 +49,8 @@
|
||||
# gradience # theme customizer, allows you to modify adw-gtk3 themes
|
||||
# lm_sensors # for extension, displays cpu temp
|
||||
libgda # for pano shell extension
|
||||
]) ++ (with pkgs.gnomeExtensions; [
|
||||
])
|
||||
++ (with pkgs.gnomeExtensions; [
|
||||
appindicator # applets for open applications
|
||||
reading-strip # like putting a finger on every line I read
|
||||
tactile # window manager
|
||||
|
||||
83
home-manager.nix
Normal file
83
home-manager.nix
Normal file
@ -0,0 +1,83 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
outputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.stateVersion = "24.05";
|
||||
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
historyFile = "\${XDG_STATE_HOME}/bash/history";
|
||||
historyControl = [
|
||||
"erasedups"
|
||||
"ignorespace"
|
||||
"ignoredups"
|
||||
];
|
||||
shellAliases = {
|
||||
cp = "cp -i";
|
||||
mv = "mv -i";
|
||||
mkdir = "mkdir -p";
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../..";
|
||||
".3" = "cd ../../..";
|
||||
".4" = "cd ../../../..";
|
||||
".5" = "cd ../../../../..";
|
||||
c = "cat";
|
||||
sc = "systemctl --user";
|
||||
jc = "journalctl --user -xefu";
|
||||
open-gallery = ''
|
||||
cd /mnt/pool/scrapping/JawZ/gallery-dl &&
|
||||
xdg-open "$(fd . ./ Husbands -tdirectory -d 1 | fzf -i)"'';
|
||||
};
|
||||
enableVteIntegration = true;
|
||||
initExtra = ''
|
||||
$HOME/.local/bin/pokemon-colorscripts -r --no-title
|
||||
|
||||
export command_timeout=60
|
||||
|
||||
nixos-reload () {
|
||||
NIXOSDIR=/home/jawz/Development/NixOS
|
||||
# nix-store --add-fixed sha256 \
|
||||
# $NIXOSDIR/PureRef-1.11.1_x64.Appimage
|
||||
fd --full-path $NIXOSDIR -e nix -x nixfmt \;
|
||||
sudo nixos-rebuild switch \
|
||||
--flake "$NIXOSDIR/#$HOSTNAME" \
|
||||
| nom
|
||||
}
|
||||
'';
|
||||
};
|
||||
xdg = {
|
||||
enable = true;
|
||||
userDirs = {
|
||||
enable = true;
|
||||
createDirectories = false;
|
||||
desktop = "${config.home.homeDirectory}";
|
||||
documents = "${config.home.homeDirectory}/Documents";
|
||||
download = "${config.home.homeDirectory}/Downloads";
|
||||
music = "${config.home.homeDirectory}/Music";
|
||||
pictures = "${config.home.homeDirectory}/Pictures";
|
||||
templates = "${config.xdg.dataHome}/Templates";
|
||||
videos = "${config.home.homeDirectory}/Videos";
|
||||
};
|
||||
configFile = {
|
||||
"wgetrc".source = ../dotfiles/wget/wgetrc;
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
helix.enable = true;
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Danilo Reyes";
|
||||
userEmail = "CaptainJawZ@protonmail.com";
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -1,125 +0,0 @@
|
||||
{ config, lib, pkgs, inputs, outputs, ... }: {
|
||||
home.stateVersion = "24.05";
|
||||
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
historyFile = "\${XDG_STATE_HOME}/bash/history";
|
||||
historyControl = [ "erasedups" "ignorespace" "ignoredups" ];
|
||||
shellAliases = {
|
||||
hh = "hstr";
|
||||
ls = "eza --icons --group-directories-first";
|
||||
edit = "emacsclient -t";
|
||||
comic = ''download -u jawz -i "$(cat $LC | fzf --multi --exact -i)"'';
|
||||
gallery = ''download -u jawz -i "$(cat $LW | fzf --multi --exact -i)"'';
|
||||
cp = "cp -i";
|
||||
mv = "mv -i";
|
||||
mkdir = "mkdir -p";
|
||||
rm = "trash";
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../..";
|
||||
".3" = "cd ../../..";
|
||||
".4" = "cd ../../../..";
|
||||
".5" = "cd ../../../../..";
|
||||
dl = "download -u jawz -i";
|
||||
e = "edit";
|
||||
c = "cat";
|
||||
b = "bat";
|
||||
f = "fzf --multi --exact -i";
|
||||
sc = "systemctl --user";
|
||||
jc = "journalctl --user -xefu";
|
||||
open-gallery = ''
|
||||
cd /mnt/pool/scrapping/JawZ/gallery-dl &&
|
||||
xdg-open "$(fd . ./ Husbands -tdirectory -d 1 | fzf -i)"'';
|
||||
unique-extensions = ''
|
||||
fd -tf | rev | cut -d. -f1 | rev |
|
||||
tr '[:upper:]' '[:lower:]' | sort |
|
||||
uniq --count | sort -rn'';
|
||||
};
|
||||
enableVteIntegration = true;
|
||||
initExtra = ''
|
||||
$HOME/.local/bin/pokemon-colorscripts -r --no-title
|
||||
|
||||
list_root="${config.xdg.configHome}"/jawz/lists/jawz
|
||||
export LW=$list_root/watch.txt
|
||||
export LI=$list_root/instant.txt
|
||||
export LC=$list_root/comic.txt
|
||||
export command_timeout=60
|
||||
|
||||
if command -v fzf-share >/dev/null; then
|
||||
source "$(fzf-share)/key-bindings.bash"
|
||||
source "$(fzf-share)/completion.bash"
|
||||
fi
|
||||
|
||||
nixos-reload () {
|
||||
NIXOSDIR=/home/jawz/Development/NixOS
|
||||
# nix-store --add-fixed sha256 \
|
||||
# $NIXOSDIR/PureRef-1.11.1_x64.Appimage
|
||||
fd --full-path $NIXOSDIR -e nix -x nixfmt \;
|
||||
sudo nixos-rebuild switch \
|
||||
--flake "$NIXOSDIR/#$HOSTNAME" \
|
||||
| nom
|
||||
}
|
||||
'';
|
||||
};
|
||||
xdg = {
|
||||
enable = true;
|
||||
userDirs = {
|
||||
enable = true;
|
||||
createDirectories = false;
|
||||
desktop = "${config.home.homeDirectory}";
|
||||
documents = "${config.home.homeDirectory}/Documents";
|
||||
download = "${config.home.homeDirectory}/Downloads";
|
||||
music = "${config.home.homeDirectory}/Music";
|
||||
pictures = "${config.home.homeDirectory}/Pictures";
|
||||
templates = "${config.xdg.dataHome}/Templates";
|
||||
videos = "${config.home.homeDirectory}/Videos";
|
||||
};
|
||||
configFile = {
|
||||
"wgetrc".source = ../dotfiles/wget/wgetrc;
|
||||
"configstore/update-notifier-npm-check.json".source =
|
||||
../dotfiles/npm/update-notifier-npm-check.json;
|
||||
"npm/npmrc".source = ../dotfiles/npm/npmrc;
|
||||
"gallery-dl/config.json".source = ../dotfiles/gallery-dl/config.json;
|
||||
"htop/htoprc".source = ../dotfiles/htop/htoprc;
|
||||
"python/pythonrc".source = ../dotfiles/pythonrc;
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
helix = { enable = true; };
|
||||
hstr.enable = true;
|
||||
zoxide = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
pager = "less -FR";
|
||||
theme = "base16";
|
||||
};
|
||||
extraPackages = with pkgs.bat-extras; [
|
||||
batman # man pages
|
||||
batpipe # piping
|
||||
batgrep # ripgrep
|
||||
batdiff # this is getting crazy!
|
||||
batwatch # probably my next best friend
|
||||
prettybat # trans your sourcecode!
|
||||
];
|
||||
};
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Danilo Reyes";
|
||||
userEmail = "CaptainJawZ@protonmail.com";
|
||||
};
|
||||
htop = {
|
||||
enable = true;
|
||||
package = pkgs.htop-vim;
|
||||
};
|
||||
};
|
||||
services = { lorri.enable = true; };
|
||||
}
|
||||
@ -1,15 +1,17 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
# <agenix/modules/age.nix>
|
||||
./hardware-configuration.nix
|
||||
../../base.nix
|
||||
../../gnome.nix
|
||||
./obs-studio.nix
|
||||
../../pkgs/obs-studio.nix
|
||||
];
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
enableVirtualCamera = true;
|
||||
};
|
||||
my = {
|
||||
emacs.enable = true;
|
||||
apps = {
|
||||
@ -53,15 +55,19 @@
|
||||
|
||||
networking = {
|
||||
hostName = "workstation";
|
||||
firewall = let
|
||||
firewall =
|
||||
let
|
||||
openPorts = [
|
||||
6674 # ns-usbloader
|
||||
];
|
||||
openPortRanges = [{
|
||||
openPortRanges = [
|
||||
{
|
||||
from = 1714; # kdeconnect
|
||||
to = 1764; # kdeconnect
|
||||
}];
|
||||
in {
|
||||
}
|
||||
];
|
||||
in
|
||||
{
|
||||
allowedTCPPorts = openPorts;
|
||||
allowedUDPPorts = openPorts;
|
||||
allowedTCPPortRanges = openPortRanges;
|
||||
@ -69,7 +75,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
nix = let
|
||||
nix =
|
||||
let
|
||||
featuresList = [
|
||||
"nixos-test"
|
||||
"benchmark"
|
||||
@ -79,7 +86,8 @@
|
||||
"gccarch-skylake"
|
||||
"gccarch-alderlake"
|
||||
];
|
||||
in {
|
||||
in
|
||||
{
|
||||
distributedBuilds = true;
|
||||
settings = {
|
||||
cores = 16;
|
||||
@ -96,11 +104,14 @@
|
||||
users = {
|
||||
groups.nixremote.gid = 555;
|
||||
users = {
|
||||
jawz.packages = (with pkgs; [
|
||||
jawz.packages = (
|
||||
with pkgs;
|
||||
[
|
||||
gocryptfs # encrypted filesystem! shhh!!!
|
||||
torrenttools # create torrent files from the terminal!
|
||||
vcsi # video thumbnails for torrents, can I replace it with ^?
|
||||
]);
|
||||
]
|
||||
);
|
||||
nixremote = {
|
||||
isNormalUser = true;
|
||||
createHome = true;
|
||||
@ -130,11 +141,10 @@
|
||||
enable = true;
|
||||
package = pkgs.gnomeExtensions.gsconnect;
|
||||
};
|
||||
# nh = {
|
||||
# enable = true;
|
||||
# clean.enable = true;
|
||||
# clean.extraArgs = "--keep-since 4d --keep 3";
|
||||
# };
|
||||
obs-studio = {
|
||||
enable = true;
|
||||
enableVirtualCamera = true;
|
||||
};
|
||||
};
|
||||
|
||||
services.resilio = {
|
||||
@ -151,11 +161,7 @@
|
||||
virtualisation = {
|
||||
podman = {
|
||||
enable = true;
|
||||
|
||||
# Create a `docker` alias for podman, to use it as a drop-in replacement
|
||||
dockerCompat = true;
|
||||
|
||||
# Required for containers under podman-compose to be able to talk to each other.
|
||||
defaultNetwork.settings.dns_enabled = true;
|
||||
};
|
||||
};
|
||||
|
||||
@ -1,9 +1,15 @@
|
||||
{ config, pkgs, modulesPath, lib, ... }: {
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
nixpkgs.hostPlatform = "x86_64-linux";
|
||||
hardware = {
|
||||
cpu.amd.updateMicrocode =
|
||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
settings.General = {
|
||||
@ -48,23 +54,32 @@
|
||||
device = "/dev/disk/by-uuid/e9618e85-a631-4374-b2a4-22c376d6e41b";
|
||||
preLVM = true;
|
||||
};
|
||||
# extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
|
||||
# extraModprobeConfig = ''
|
||||
# options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||
# '';
|
||||
initrd = {
|
||||
availableKernelModules =
|
||||
[ "xhci_pci" "ahci" "usbhid" "nvme" "usb_storage" "sd_mod" ];
|
||||
availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"usbhid"
|
||||
"nvme"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
kernelModules = [ ];
|
||||
};
|
||||
};
|
||||
|
||||
fileSystems = let
|
||||
nfsMount = (server: nfsDisk: {
|
||||
fileSystems =
|
||||
let
|
||||
nfsMount = (
|
||||
server: nfsDisk: {
|
||||
device = "${server}:/${nfsDisk}";
|
||||
fsType = "nfs";
|
||||
options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ];
|
||||
});
|
||||
options = [
|
||||
"x-systemd.automount"
|
||||
"noauto"
|
||||
"x-systemd.idle-timeout=600"
|
||||
];
|
||||
}
|
||||
);
|
||||
btrfsMount = subvol: {
|
||||
device = "/dev/mapper/nvme";
|
||||
fsType = "btrfs";
|
||||
@ -78,7 +93,8 @@
|
||||
"datacow"
|
||||
] ++ (if subvol == "nixos" then [ "noatime" ] else [ ]);
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
"/" = btrfsMount "nixos" // { };
|
||||
"/home" = btrfsMount "home" // { };
|
||||
"/mnt/games" = btrfsMount "games" // { };
|
||||
@ -97,7 +113,8 @@
|
||||
};
|
||||
|
||||
};
|
||||
swapDevices = [{
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/dev/disk/by-partuuid/c1bd22d7-e62c-440a-88d1-6464be1aa1b0";
|
||||
randomEncryption = {
|
||||
enable = true;
|
||||
@ -105,5 +122,6 @@
|
||||
keySize = 512;
|
||||
sectorSize = 4096;
|
||||
};
|
||||
}];
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
@ -1,4 +1,10 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.my.apps.office.enable = lib.mkEnableOption "enable";
|
||||
config = lib.mkIf config.my.apps.office.enable {
|
||||
users.users.jawz.packages = with pkgs; [
|
||||
@ -11,5 +17,8 @@
|
||||
# wike # gtk wikipedia wow!
|
||||
# denaro # manage your finances
|
||||
];
|
||||
environment.variables = {
|
||||
CALIBRE_USE_SYSTEM_THEME = "1";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@ -1,7 +1,16 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.my.dev.docker.enable = lib.mkEnableOption "enable";
|
||||
config = lib.mkIf config.my.dev.docker.enable {
|
||||
users.users.jawz.packages = (with pkgs; [ dockfmt ])
|
||||
++ (with pkgs.nodePackages; [ dockerfile-language-server-nodejs ]);
|
||||
users.users.jawz.packages =
|
||||
(with pkgs; [ dockfmt ]) ++ (with pkgs.nodePackages; [ dockerfile-language-server-nodejs ]);
|
||||
};
|
||||
environment.variables = {
|
||||
DOCKER_CONFIG = "${XDG_CONFIG_HOME}/docker";
|
||||
};
|
||||
}
|
||||
|
||||
@ -1,9 +1,21 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.my.dev.haskell.enable = lib.mkEnableOption "enable";
|
||||
config = lib.mkIf config.my.dev.haskell.enable {
|
||||
users.users.jawz.packages = with pkgs; ([
|
||||
ghc # compiler
|
||||
haskell-language-server # lsp
|
||||
]);
|
||||
environment.variables = {
|
||||
CABAL_DIR = "${XDG_CACHE_HOME}/cabal";
|
||||
CARGO_HOME = "${XDG_DATA_HOME}/cargo";
|
||||
STACK_ROOT = "${XDG_DATA_HOME}/stack";
|
||||
GHCUP_USE_XDG_DIRS = "true";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@ -1,7 +1,28 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.my.dev.javascript.enable = lib.mkEnableOption "enable";
|
||||
config = lib.mkIf config.my.dev.javascript.enable {
|
||||
users.users.jawz.packages = (with pkgs; [ nodejs ])
|
||||
++ (with pkgs.nodePackages; [ pnpm ]);
|
||||
home-manager.users.jawz.programs.xdg.configFile = {
|
||||
"npm/npmrc".source = ../dotfiles/npm/npmrc;
|
||||
"configstore/update-notifier-npm-check.json".source = ../dotfiles/npm/update-notifier-npm-check.json;
|
||||
};
|
||||
users.users.jawz.packages = (with pkgs; [ nodejs ]) ++ (with pkgs.nodePackages; [ pnpm ]);
|
||||
environment.variables = {
|
||||
NPM_CONFIG_USERCONFIG = "${XDG_CONFIG_HOME}/npm/npmrc";
|
||||
PNPM_HOME = "${XDG_DATA_HOME}/pnpm";
|
||||
PATH = [
|
||||
"${XDG_DATA_HOME}/npm/bin"
|
||||
"${XDG_DATA_HOME}/pnpm"
|
||||
];
|
||||
};
|
||||
environment.variables = {
|
||||
VISUAL = "emacsclient -ca emacs";
|
||||
PATH = [ "${XDG_CONFIG_HOME}/emacs/bin" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@ -1,4 +1,10 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.my.dev.nix.enable = lib.mkEnableOption "enable";
|
||||
config = lib.mkIf config.my.dev.nix.enable {
|
||||
users.users.jawz.packages = with pkgs; ([
|
||||
|
||||
@ -1,10 +1,20 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.my.dev.python.enable = lib.mkEnableOption "enable";
|
||||
config = lib.mkIf config.my.dev.python.enable {
|
||||
users.users.jawz.packages = (with pkgs; ([
|
||||
home-manager.users.jawz.programs.xdg.configFile = {
|
||||
"python/pythonrc".source = ../dotfiles/pythonrc;
|
||||
};
|
||||
users.users.jawz.packages =
|
||||
(with pkgs; ([
|
||||
pipenv # python development workflow for humans
|
||||
(python3.withPackages (ps:
|
||||
with ps; [
|
||||
(python3.withPackages (
|
||||
ps: with ps; [
|
||||
black # Python code formatter
|
||||
editorconfig # follow rules of contributin
|
||||
flake8 # wraper for pyflakes, pycodestyle and mccabe
|
||||
@ -15,10 +25,14 @@
|
||||
# nose # testing and running python scripts
|
||||
# poetry # dependency management made easy
|
||||
# pytest # framework for writing tests
|
||||
]
|
||||
))
|
||||
]))
|
||||
])) ++ (with pkgs.nodePackages;
|
||||
[
|
||||
++ (with pkgs.nodePackages; [
|
||||
pyright # LSP
|
||||
]);
|
||||
environment.variables = {
|
||||
PYTHONSTARTUP = "${XDG_CONFIG_HOME}/python/pythonrc";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@ -1,10 +1,18 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.my.dev.sh.enable = lib.mkEnableOption "enable";
|
||||
config = lib.mkIf config.my.dev.sh.enable {
|
||||
users.users.jawz.packages = (with pkgs; [
|
||||
users.users.jawz.packages =
|
||||
(with pkgs; [
|
||||
bashdb # autocomplete
|
||||
shellcheck # linting
|
||||
shfmt # a shell parser and formatter
|
||||
]) ++ (with pkgs.nodePackages; [ bash-language-server ]);
|
||||
])
|
||||
++ (with pkgs.nodePackages; [ bash-language-server ]);
|
||||
};
|
||||
}
|
||||
|
||||
@ -1,7 +1,21 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.my.emacs.enable = lib.mkEnableOption "enable";
|
||||
config = lib.mkIf config.my.emacs.enable {
|
||||
users.users.jawz.packages = (with pkgs; ([
|
||||
home-manager.users.jawz = {
|
||||
programs.bash.shellAliases = {
|
||||
edit = "emacsclient -t";
|
||||
e = "edit";
|
||||
};
|
||||
services.lorri.enable = true;
|
||||
};
|
||||
users.users.jawz.packages =
|
||||
(with pkgs; ([
|
||||
fd # modern find, faster searches
|
||||
fzf # fuzzy finder! super cool and useful
|
||||
ripgrep # modern grep
|
||||
@ -18,16 +32,17 @@
|
||||
# lsps
|
||||
yaml-language-server
|
||||
markdownlint-cli
|
||||
])) ++ (with pkgs.nodePackages; [
|
||||
]))
|
||||
++ (with pkgs.nodePackages; [
|
||||
vscode-json-languageserver
|
||||
# linters
|
||||
prettier
|
||||
]);
|
||||
services.emacs = {
|
||||
enable = true;
|
||||
package = with pkgs;
|
||||
((emacsPackagesFor emacs-gtk).emacsWithPackages
|
||||
(epkgs: with epkgs; ([ vterm ])));
|
||||
package =
|
||||
with pkgs;
|
||||
((emacsPackagesFor emacs-gtk).emacsWithPackages (epkgs: with epkgs; ([ vterm ])));
|
||||
defaultEditor = true;
|
||||
};
|
||||
home-manager.users.jawz.programs.bash.initExtra = ''
|
||||
|
||||
@ -1,20 +1,52 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./base.nix ];
|
||||
config = {
|
||||
users.users.jawz.packages = (with pkgs; [ gallery-dl yt-dlp ]);
|
||||
home-manager.users.jawz = {
|
||||
programs = {
|
||||
xdg.configFile = {
|
||||
"gallery-dl/config.json".source = ../dotfiles/gallery-dl/config.json;
|
||||
};
|
||||
bash = {
|
||||
shellAliases = {
|
||||
comic = ''download -u jawz -i "$(cat $LC | fzf --multi --exact -i)"'';
|
||||
gallery = ''download -u jawz -i "$(cat $LW | fzf --multi --exact -i)"'';
|
||||
dl = "download -u jawz -i";
|
||||
};
|
||||
initExtra = ''
|
||||
list_root="${config.xdg.configHome}"/jawz/lists/jawz
|
||||
export LW=$list_root/watch.txt
|
||||
export LI=$list_root/instant.txt
|
||||
export LC=$list_root/comic.txt
|
||||
'';
|
||||
};
|
||||
};
|
||||
services.lorri.enable = true;
|
||||
};
|
||||
users.users.jawz.packages = (with pkgs; [ gallery-dl ]);
|
||||
my.scripts.download = {
|
||||
enable = true;
|
||||
install = true;
|
||||
service = false;
|
||||
name = "download";
|
||||
package = with pkgs.python3Packages;
|
||||
package =
|
||||
with pkgs.python3Packages;
|
||||
(buildPythonApplication rec {
|
||||
pname = "download";
|
||||
version = "2.0";
|
||||
version = "2.5";
|
||||
src = ../../scripts/download/.;
|
||||
doCheck = false;
|
||||
buildInputs = [ setuptools ];
|
||||
propagatedBuildInputs = [ pyyaml types-pyyaml ];
|
||||
propagatedBuildInputs = [
|
||||
pyyaml
|
||||
types-pyyaml
|
||||
yt-dlp
|
||||
];
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
18
modules/scripts/find-dup-episode.nix
Normal file
18
modules/scripts/find-dup-episode.nix
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./base.nix ];
|
||||
config.my.scripts.find-dup-episodes = {
|
||||
enable = true;
|
||||
install = true;
|
||||
service = false;
|
||||
name = "find-dup-episodes";
|
||||
package = pkgs.writeScriptBin "find-dup-episodes" (
|
||||
builtins.readFile ../../scripts/find-dup-episodes.sh
|
||||
);
|
||||
};
|
||||
}
|
||||
18
modules/scripts/manage-library.nix
Normal file
18
modules/scripts/manage-library.nix
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./base.nix ];
|
||||
config.my.scripts.manage-library = {
|
||||
enable = true;
|
||||
install = true;
|
||||
service = true;
|
||||
name = "manage-library";
|
||||
timer = "00:30";
|
||||
description = "scans the library directory and sorts files";
|
||||
package = pkgs.writeScriptBin "manage-library" (builtins.readFile ../../scripts/manage-library.sh);
|
||||
};
|
||||
}
|
||||
20
modules/scripts/nextcloud-cronjob.nix
Normal file
20
modules/scripts/nextcloud-cronjob.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./base.nix ];
|
||||
config.my.scripts.nextcloud-cronjob = {
|
||||
enable = true;
|
||||
install = false;
|
||||
service = true;
|
||||
timer = "*:0/10";
|
||||
name = "nextcloud-cronjob";
|
||||
description = "runs tasks for nextcloud";
|
||||
package = pkgs.writeScriptBin "nextcloud-cronjob" (
|
||||
builtins.readFile ../../scripts/nextcloud-cronjob.sh
|
||||
);
|
||||
};
|
||||
}
|
||||
@ -1,11 +1,16 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./base.nix ];
|
||||
config.my.scripts.run = {
|
||||
enable = true;
|
||||
install = true;
|
||||
service = false;
|
||||
name = "run";
|
||||
package =
|
||||
pkgs.writeScriptBin "run" (builtins.readFile ../../scripts/run.sh);
|
||||
package = pkgs.writeScriptBin "run" (builtins.readFile ../../scripts/run.sh);
|
||||
};
|
||||
}
|
||||
|
||||
18
modules/scripts/sub-sync.nix
Normal file
18
modules/scripts/sub-sync.nix
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./base.nix ];
|
||||
config.my.scripts.sub-sync = {
|
||||
enable = true;
|
||||
install = true;
|
||||
service = true;
|
||||
name = "sub-sync";
|
||||
timer = "22:00";
|
||||
description = "Syncronixes subtitles downloaded and modified the last day";
|
||||
package = pkgs.writeScriptBin "sub-sync" (builtins.readFile ../../scripts/sub-sync.sh);
|
||||
};
|
||||
}
|
||||
18
modules/scripts/update-dns.nix
Normal file
18
modules/scripts/update-dns.nix
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./base.nix ];
|
||||
config.my.scripts.update-dns = {
|
||||
enable = true;
|
||||
install = true;
|
||||
service = true;
|
||||
name = "update-dns";
|
||||
timer = "*:0/30";
|
||||
description = "Updates the IP of all my domains";
|
||||
package = pkgs.writeScriptBin "update-dns" (builtins.readFile ../../scripts/update-dns.sh);
|
||||
};
|
||||
}
|
||||
@ -1,6 +1,70 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.my.shell.tools.enable = lib.mkEnableOption "enable";
|
||||
config = lib.mkIf config.my.shell.tools.enable {
|
||||
home-manager.users.jawz.programs = {
|
||||
bash = {
|
||||
initExtra = ''
|
||||
if command -v fzf-share >/dev/null; then
|
||||
source "$(fzf-share)/key-bindings.bash"
|
||||
source "$(fzf-share)/completion.bash"
|
||||
fi
|
||||
'';
|
||||
shellAliases = {
|
||||
cd = "z";
|
||||
hh = "hstr";
|
||||
ls = "eza --icons --group-directories-first";
|
||||
rm = "trash";
|
||||
b = "bat";
|
||||
f = "fzf --multi --exact -i";
|
||||
unique-extensions = ''
|
||||
fd -tf | rev | cut -d. -f1 | rev |
|
||||
tr '[:upper:]' '[:lower:]' | sort |
|
||||
uniq --count | sort -rn'';
|
||||
};
|
||||
};
|
||||
xdg.configFile = {
|
||||
"htop/htoprc".source = ../dotfiles/htop/htoprc;
|
||||
};
|
||||
hstr.enable = true;
|
||||
htop = {
|
||||
enable = true;
|
||||
package = pkgs.htop-vim;
|
||||
};
|
||||
zoxide = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
pager = "less -FR";
|
||||
theme = "base16";
|
||||
};
|
||||
extraPackages = with pkgs.bat-extras; [
|
||||
batman # man pages
|
||||
batpipe # piping
|
||||
batgrep # ripgrep
|
||||
batdiff # this is getting crazy!
|
||||
batwatch # probably my next best friend
|
||||
prettybat # trans your sourcecode!
|
||||
];
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
starship.enable = true;
|
||||
tmux.enable = true;
|
||||
fzf.fuzzyCompletion = true;
|
||||
neovim = {
|
||||
enable = true;
|
||||
vimAlias = true;
|
||||
};
|
||||
};
|
||||
users.users.jawz.packages = with pkgs; [
|
||||
ripgrep # modern grep
|
||||
du-dust # rusty du similar to gdu
|
||||
@ -14,4 +78,9 @@
|
||||
jq # linting
|
||||
];
|
||||
};
|
||||
environment.variables = {
|
||||
HISTFILE = "${XDG_STATE_HOME}/bash/history";
|
||||
LESSHISTFILE = "-";
|
||||
RIPGREP_CONFIG_PATH = "${XDG_CONFIG_HOME}/ripgrep/ripgreprc";
|
||||
};
|
||||
}
|
||||
|
||||
@ -1,9 +1,16 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let cfg = config.programs.obs-studio;
|
||||
in {
|
||||
let
|
||||
cfg = config.programs.obs-studio;
|
||||
in
|
||||
{
|
||||
options.programs.obs-studio = {
|
||||
enable = mkEnableOption "OBS Studio program";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user