massive lsp evaluated rewrite

This commit is contained in:
2024-06-08 23:54:40 -06:00
parent 6ec6eb239a
commit fd340effd9
46 changed files with 227 additions and 242 deletions

View File

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

View File

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

View File

@@ -12,7 +12,7 @@ in {
dedicatedServer.openFirewall = true;
};
};
users.users.jawz.packages = with pkgs; [
users.users.jawz.packages = (with pkgs; [
mangohud # fps & stats overlay
lutris # games launcher & emulator hub
cartridges # games launcher
@@ -20,7 +20,6 @@ in {
heroic # install epic games
protonup-qt # update proton-ge
#minecraft # minecraft official launcher
polymc # minecraft launcher with mod support
ns-usbloader # load games into my switch
# grapejuice # roblox manager
@@ -32,6 +31,8 @@ in {
#citra-nightly # 3Ds emulator
snes9x-gtk # snes emulator
ryujinx # switch emulator
]) ++ [
polymc # minecraft launcher with mod support
];
};
}

View File

@@ -11,8 +11,7 @@ in {
};
};
services.psd.enable = true;
users.users.jawz.packages = with pkgs; [
vdhcoapp # video download helper assistant
users.users.jawz.packages = (with pkgs; [
nextcloud-client # self-hosted google-drive alternative
fragments # beautiful torrent client
protonmail-bridge # bridge for protonmail
@@ -23,6 +22,8 @@ in {
vesktop # screen share with audio discord
discord # :3
# hugo # website engine
]) ++ [
vdhcoapp # video download helper assistant
];
};
}

View File

@@ -1,6 +1,7 @@
{ config, lib, pkgs, ... }: {
options.my.apps.office.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.apps.office.enable {
environment.variables.CALIBRE_USE_SYSTEM_THEME = "1";
users.users.jawz.packages = with pkgs; [
libreoffice # office, but based
calibre # ugly af eBook library manager
@@ -11,6 +12,5 @@
# wike # gtk wikipedia wow!
# denaro # manage your finances
];
environment.variables = { CALIBRE_USE_SYSTEM_THEME = "1"; };
};
}

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ lib, ... }: {
imports = [
./dev/sh.nix
./dev/nix.nix

View File

@@ -1,8 +1,10 @@
{ 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 ]);
environment.variables.DOCKER_CONFIG = "\${XDG_CONFIG_HOME}/docker";
users.users.jawz.packages = with pkgs; [
dockfmt
nodePackages.dockerfile-language-server-nodejs
];
};
}

View File

@@ -1,10 +1,10 @@
{ 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; ([
users.users.jawz.packages = with pkgs; [
ghc # compiler
haskell-language-server # lsp
]);
];
environment.variables = {
CABAL_DIR = "\${XDG_CACHE_HOME}/cabal";
STACK_ROOT = "\${XDG_DATA_HOME}/stack";

View File

@@ -1,13 +1,12 @@
{ config, lib, pkgs, ... }: {
options.my.dev.javascript.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.dev.javascript.enable {
home-manager.users.jawz.programs.xdg.configFile = {
"npm/npmrc".source = ../dotfiles/npm/npmrc;
home-manager.users.jawz.xdg.configFile = {
"npm/npmrc".source = ../../dotfiles/npm/npmrc;
"configstore/update-notifier-npm-check.json".source =
../dotfiles/npm/update-notifier-npm-check.json;
../../dotfiles/npm/update-notifier-npm-check.json;
};
users.users.jawz.packages = (with pkgs; [ nodejs ])
++ (with pkgs.nodePackages; [ pnpm ]);
users.users.jawz.packages = with pkgs; [ nodejs nodePackages.pnpm ];
environment.variables = {
NPM_CONFIG_USERCONFIG = "\${XDG_CONFIG_HOME}/npm/npmrc";
PNPM_HOME = "\${XDG_DATA_HOME}/pnpm";

View File

@@ -1,13 +1,13 @@
{ 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; ([
users.users.jawz.packages = with pkgs; [
expect # keep color when nom'ing
nix-output-monitor # autistic nix builds
nixfmt-classic # linting
nixfmt-rfc-style # linting
cachix # why spend time compiling?
nixd # language server
]);
];
};
}

View File

@@ -1,11 +1,13 @@
{ config, lib, pkgs, ... }: {
options.my.dev.python.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.dev.python.enable {
home-manager.users.jawz.programs.xdg.configFile = {
"python/pythonrc".source = ../dotfiles/pythonrc;
home-manager.users.jawz.xdg.configFile = {
"python/pythonrc".source = ../../dotfiles/pythonrc;
};
users.users.jawz.packages = (with pkgs; ([
environment.variables.PYTHONSTARTUP = "\${XDG_CONFIG_HOME}/python/pythonrc";
users.users.jawz.packages = with pkgs; [
pipenv # python development workflow for humans
nodePackages.pyright # LSP
(python3.withPackages (ps:
with ps; [
black # Python code formatter
@@ -19,10 +21,6 @@
# poetry # dependency management made easy
# pytest # framework for writing tests
]))
])) ++ (with pkgs.nodePackages;
[
pyright # LSP
]);
environment.variables.PYTHONSTARTUP = "\${XDG_CONFIG_HOME}/python/pythonrc";
];
};
}

View File

@@ -1,10 +1,11 @@
{ 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 ]);
nodePackages.bash-language-server # LSP
];
};
}

View File

@@ -2,13 +2,23 @@
options.my.emacs.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.emacs.enable {
home-manager.users.jawz = {
programs.bash.shellAliases = {
edit = "emacsclient -t";
e = "edit";
};
services.lorri.enable = true;
programs.bash = {
initExtra = ''
emacs-sqlite-fix () {
nix-shell -p cmake sqlite --command "doom sync &&
sc restart emacs &&
emacsclient -e '(org-roam-db-sync)'" &&
doom sync
}
'';
shellAliases = {
edit = "emacsclient -t";
e = "edit";
};
};
};
users.users.jawz.packages = (with pkgs; ([
users.users.jawz.packages = (with pkgs; [
fd # modern find, faster searches
fzf # fuzzy finder! super cool and useful
ripgrep # modern grep
@@ -25,7 +35,7 @@
# lsps
yaml-language-server
markdownlint-cli
])) ++ (with pkgs.nodePackages; [
]) ++ (with pkgs.nodePackages; [
vscode-json-languageserver
# linters
prettier
@@ -34,16 +44,8 @@
enable = true;
package = with pkgs;
((emacsPackagesFor emacs-gtk).emacsWithPackages
(epkgs: with epkgs; ([ vterm ])));
(epkgs: with epkgs; [ vterm ]));
defaultEditor = true;
};
home-manager.users.jawz.programs.bash.initExtra = ''
emacs-sqlite-fix () {
nix-shell -p cmake sqlite --command "doom sync &&
sc restart emacs &&
emacsclient -e '(org-roam-db-sync)'" &&
doom sync
}
'';
};
}

View File

@@ -1,20 +1,29 @@
{ config, lib, pkgs, ... }: {
{ lib, ... }: {
imports = [
./scripts/run.nix
./scripts/tasks.nix
./scripts/split-dir.nix
./scripts/pika-list.nix
./scripts/download.nix
./scripts/ffmpreg.nix
./scripts/ffmpeg4discord.nix
./scripts/ffmpreg.nix
./scripts/find-dup-episode.nix
./scripts/manage-library.nix
./scripts/nextcloud-cronjob.nix
./scripts/pika-list.nix
./scripts/run.nix
./scripts/split-dir.nix
./scripts/sub-sync.nix
./scripts/tasks.nix
./scripts/update-dns.nix
];
my.scripts = {
run.enable = lib.mkDefault false;
tasks.enable = lib.mkDefault false;
split-dir.enable = lib.mkDefault false;
pika-list.enable = lib.mkDefault false;
download.enable = lib.mkDefault false;
ffmpreg.enable = lib.mkDefault false;
ffmpeg4discord.enable = lib.mkDefault false;
ffmpreg.enable = lib.mkDefault false;
find-dup-episodes.enable = lib.mkDefault false;
manage-library.enable = lib.mkDefault false;
pika-list.enable = lib.mkDefault false;
run.enable = lib.mkDefault false;
split-dir.enable = lib.mkDefault false;
sub-sync.enable = lib.mkDefault false;
tasks.enable = lib.mkDefault false;
update-dns.enable = lib.mkDefault false;
};
}

View File

@@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }: {
options.my.scripts = lib.mkOption {
type = lib.types.attrsOf (lib.types.submodule ({
type = lib.types.attrsOf (lib.types.submodule {
options = {
enable = lib.mkEnableOption "Whether to enable this script";
install = lib.mkEnableOption "Whether to install the script package";
@@ -23,7 +23,7 @@
description = "Package containing the executable script.";
};
};
}));
});
default = { };
description = "Configuration for multiple scripts.";
};

View File

@@ -1,11 +1,11 @@
{ config, lib, pkgs, ... }: {
{ pkgs, ... }: {
imports = [ ./base.nix ];
config = {
home-manager.users.jawz = {
xdg.configFile."gallery-dl/config.json".source =
../../dotfiles/gallery-dl/config.json;
services.lorri.enable = true;
programs = {
xdg.configFile = {
"gallery-dl/config.json".source = ../dotfiles/gallery-dl/config.json;
};
bash = {
shellAliases = {
comic =
@@ -15,27 +15,25 @@
dl = "download -u jawz -i";
};
initExtra = ''
list_root="${config.xdg.configHome}"/jawz/lists/jawz
list_root=$XDG_CONFIG_HOME/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 ]);
users.users.jawz.packages = [ pkgs.gallery-dl ];
my.scripts.download = {
enable = true;
install = true;
service = false;
name = "download";
package = with pkgs.python3Packages;
(buildPythonApplication rec {
(buildPythonApplication {
pname = "download";
version = "2.5";
src = ../../scripts/download/.;
doCheck = false;
buildInputs = [ setuptools ];
propagatedBuildInputs = [ pyyaml types-pyyaml yt-dlp ];
});

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ pkgs, ... }: {
imports = [ ./base.nix ];
config.my.scripts.ffmpeg4discord = {
enable = true;

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ pkgs, ... }: {
imports = [ ./base.nix ];
config.my.scripts.ffmpreg = {
enable = true;

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ pkgs, ... }: {
imports = [ ./base.nix ];
config.my.scripts.find-dup-episodes = {
enable = true;

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ pkgs, ... }: {
imports = [ ./base.nix ];
config.my.scripts.manage-library = {
enable = true;

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ pkgs, ... }: {
imports = [ ./base.nix ];
config.my.scripts.nextcloud-cronjob = {
enable = true;

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ pkgs, ... }: {
imports = [ ./base.nix ];
config.my.scripts.pika-list = {
enable = true;

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ pkgs, ... }: {
imports = [ ./base.nix ];
config.my.scripts.run = {
enable = true;

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ pkgs, ... }: {
imports = [ ./base.nix ];
config.my.scripts.split-dir = {
enable = true;

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ pkgs, ... }: {
imports = [ ./base.nix ];
config.my.scripts.sub-sync = {
enable = true;

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ pkgs, ... }: {
imports = [ ./base.nix ];
config.my.scripts.tasks = {
enable = true;

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ pkgs, ... }: {
imports = [ ./base.nix ];
config.my.scripts.update-dns = {
enable = true;

View File

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

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ config, lib, ... }: {
options.my.services.network.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.services.network.enable {
networking = {

View File

@@ -3,6 +3,7 @@ let printingDrivers = [ pkgs.hplip pkgs.hplipWithPlugin ];
in {
options.my.services.printing.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.services.printing.enable {
users.users.jawz.packages = [ pkgs.gnome.simple-scan ];
services.printing = {
enable = true;
drivers = printingDrivers;
@@ -11,6 +12,5 @@ in {
enable = true;
extraBackends = printingDrivers;
};
users.users.jawz.packages = [ pkgs.gnome.simple-scan ];
};
}

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ config, lib, ... }: {
imports = [
# nixGaming.nixosModules.pipewireLowLatency
];

View File

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

View File

@@ -1,9 +1,9 @@
{ config, lib, pkgs, ... }: {
options.my.shell.exercism.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.shell.exercism.enable {
users.users.jawz.packages = with pkgs; ([
users.users.jawz.packages = with pkgs; [
exercism # learn to code
bats # testing system, required by Exercism
]);
];
};
}

View File

@@ -1,25 +1,23 @@
{ config, lib, pkgs, ... }: {
options.my.shell.multimedia.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.shell.multimedia.enable {
users.users.jawz.packages = with pkgs;
[
gallery-dl # similar to yt-dlp but for most image gallery websites
yt-dlp # downloads videos from most video websites
ffmpeg # not ffmpreg, the coolest video conversion tool!
imagemagick # photoshop what??
] ++ (with pkgs.python3Packages;
[
(buildPythonApplication rec {
pname = "ffpb";
version = "0.4.1";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-7eVqbLpMHS1sBw2vYS4cTtyVdnnknGtEI8190VlXflk=";
};
doCheck = false;
buildInputs = [ setuptools ];
propagatedBuildInputs = [ tqdm ];
})
]);
users.users.jawz.packages = (with pkgs; [
gallery-dl # similar to yt-dlp but for most image gallery websites
yt-dlp # downloads videos from most video websites
ffmpeg # not ffmpreg, the coolest video conversion tool!
imagemagick # photoshop what??
]) ++ [
(pkgs.python3Packages.buildPythonApplication rec {
pname = "ffpb";
version = "0.4.1";
src = pkgs.python3Packages.fetchPypi {
inherit pname version;
sha256 = "sha256-7eVqbLpMHS1sBw2vYS4cTtyVdnnknGtEI8190VlXflk=";
};
doCheck = false;
buildInputs = [ pkgs.python3Packages.setuptools ];
propagatedBuildInputs = [ pkgs.python3Packages.tqdm ];
})
];
};
}

View File

@@ -1,51 +1,53 @@
{ 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'';
home-manager.users.jawz = {
xdg.configFile."htop/htoprc".source = ../../dotfiles/htop/htoprc;
programs = {
hstr.enable = true;
htop = {
enable = true;
package = pkgs.htop-vim;
};
};
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";
zoxide = {
enable = true;
enableBashIntegration = true;
};
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'';
};
};
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!
];
};
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 = {