diff --git a/hosts/workstation/configuration.nix b/hosts/workstation/configuration.nix index 2d096f6..71bcfa9 100644 --- a/hosts/workstation/configuration.nix +++ b/hosts/workstation/configuration.nix @@ -22,6 +22,7 @@ in { internet.enable = true; multimedia.enable = true; office.enable = true; + # misc.enable = true; }; dev = { haskell.enable = true; @@ -29,7 +30,11 @@ in { python.enable = true; gameDev.enable = true; }; - shell = { exercism.enable = true; }; + shell = { + exercism.enable = true; + # multimedia.enable = true; + # tools.enable = true; + }; services = { network.enable = true; nvidia.enable = true; @@ -42,7 +47,6 @@ in { hostName = "workstation"; firewall = let openPorts = [ - 7860 # chatgpt 6674 # ns-usbloader ]; openPortRanges = [{ @@ -75,11 +79,9 @@ in { }; }; - nixpkgs = { - config = { - allowUnfree = true; - permittedInsecurePackages = [ ]; - }; + nixpkgs.config = { + allowUnfree = true; + permittedInsecurePackages = [ ]; }; users = { @@ -97,32 +99,8 @@ in { }; jawz = { packages = (with pkgs; [ - obs-studio # screen recorder & streamer - pitivi # video editor gocryptfs # encrypted filesystem! shhh!!! - # celeste # sync tool for any cloud provider - # czkawka # duplicate finder - # sequeler # friendly SQL client - blanket # background noise - metadata-cleaner # remove any metadata and geolocation from files - pika-backup # backups - gnome-obfuscate # censor private information - - ripgrep # modern grep - du-dust # rusty du similar to gdu - eza # like ls but with colors - fd # modern find, faster searches - ffmpeg # not ffmpreg, the coolest video conversion tool! - fzf # fuzzy finder! super cool and useful - gallery-dl # similar to yt-dlp but for most image gallery websites - gdu # disk-space utility checker, somewhat useful - imagemagick # photoshop what?? - rmlint # probably my favourite app, amazing dupe finder that integrates well with BTRFS - tldr # man for retards - trash-cli # oop! did not meant to delete that - yt-dlp # downloads videos from most video websites - torrenttools # create torrent files from the terminal! vcsi # video thumbnails for torrents, can I replace it with ^? @@ -137,16 +115,6 @@ in { (writeScriptBin "pika-list" (builtins.readFile ../../scripts/pika-list.sh)) - # required (optionally) by doom emacs, but still are rather useful - tree-sitter # code parsing based on symbols and shit, I do not get it - graphviz # graphs - tetex - languagetool # proofreader for English - # these two are for doom everywhere - xorg.xwininfo - xdotool - xclip - # SH bashdb # autocomplete shellcheck # linting @@ -159,39 +127,29 @@ in { nodejs # not as bad as I thought jq # linting - ]) ++ (with pkgs.python3Packages; [ - (buildPythonApplication rec { - pname = "download"; - version = "1.5"; - src = ../../scripts/download/.; - doCheck = false; - buildInputs = [ setuptools ]; - propagatedBuildInputs = [ pyyaml types-pyyaml ]; - }) - (buildPythonApplication rec { - pname = "ffpb"; - version = "0.4.1"; - src = fetchPypi { - inherit pname version; - sha256 = "sha256-7eVqbLpMHS1sBw2vYS4cTtyVdnnknGtEI8190VlXflk="; - }; - doCheck = false; - buildInputs = [ setuptools ]; - propagatedBuildInputs = [ tqdm ]; - }) + ]) ++ (with pkgs.python3Packages; + [ + (buildPythonApplication rec { + pname = "download"; + version = "1.5"; + src = ../../scripts/download/.; + doCheck = false; + buildInputs = [ setuptools ]; + propagatedBuildInputs = [ pyyaml types-pyyaml ]; + }) - ]) ++ (with pkgs.nodePackages; [ - # Language servers - dockerfile-language-server-nodejs - yaml-language-server - bash-language-server - vscode-json-languageserver - pyright + ]) ++ (with pkgs.nodePackages; [ + # Language servers + dockerfile-language-server-nodejs + yaml-language-server + bash-language-server + vscode-json-languageserver + pyright - markdownlint-cli # Linter - prettier # Linter - pnpm # Package manager - ]); + markdownlint-cli # Linter + prettier # Linter + pnpm # Package manager + ]); }; # <--- end of package list }; }; @@ -207,17 +165,18 @@ in { ''; }; - programs.kdeconnect = { - enable = true; - package = pkgs.gnomeExtensions.gsconnect; + programs = { + kdeconnect = { + enable = true; + package = pkgs.gnomeExtensions.gsconnect; + }; + # nh = { + # enable = true; + # clean.enable = true; + # clean.extraArgs = "--keep-since 4d --keep 3"; + # }; }; - # programs.nh = { - # enable = true; - # clean.enable = true; - # clean.extraArgs = "--keep-since 4d --keep 3"; - # }; - services.resilio = { deviceName = "chichis"; enable = true; diff --git a/modules/apps.nix b/modules/apps.nix index 82c23d0..b8c8ebc 100644 --- a/modules/apps.nix +++ b/modules/apps.nix @@ -7,6 +7,7 @@ ./apps/internet.nix ./apps/multimedia.nix ./apps/office.nix + ./apps/misc.nix ]; my = { dev.gameDev.enable = lib.mkDefault false; @@ -18,6 +19,7 @@ internet.enable = lib.mkDefault false; multimedia.enable = lib.mkDefault false; office.enable = lib.mkDefault false; + misx.enable = lib.mkDefault false; }; }; } diff --git a/modules/apps/misc.nix b/modules/apps/misc.nix new file mode 100644 index 0000000..d271de9 --- /dev/null +++ b/modules/apps/misc.nix @@ -0,0 +1,14 @@ +{ config, lib, pkgs, ... }: { + options.my.apps.misc.enable = lib.mkEnableOption "enable"; + config = lib.mkIf config.my.apps.misc.enable { + users.users.jawz.packages = with pkgs; [ + # celeste # sync tool for any cloud provider + # czkawka # duplicate finder + # sequeler # friendly SQL client + blanket # background noise + metadata-cleaner # remove any metadata and geolocation from files + pika-backup # backups + gnome-obfuscate # censor private information + ]; + }; +} diff --git a/modules/apps/multimedia.nix b/modules/apps/multimedia.nix index e0f7f65..5d506a3 100644 --- a/modules/apps/multimedia.nix +++ b/modules/apps/multimedia.nix @@ -2,6 +2,8 @@ options.my.apps.multimedia.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.apps.multimedia.enable { users.users.jawz.packages = with pkgs; [ + obs-studio # screen recorder & streamer + pitivi # video editor celluloid # video player curtail # image compressor easyeffects # equalizer diff --git a/modules/dev/nix.nix b/modules/dev/nix.nix index f639d80..ed8384e 100644 --- a/modules/dev/nix.nix +++ b/modules/dev/nix.nix @@ -6,6 +6,7 @@ nix-output-monitor # autistic nix builds nixfmt # linting cachix # why spend time compiling? + nixd # language server ]); }; } diff --git a/modules/emacs.nix b/modules/emacs.nix index 316fb56..fc6128f 100644 --- a/modules/emacs.nix +++ b/modules/emacs.nix @@ -3,7 +3,17 @@ config = lib.mkIf config.my.emacs.enable { users.users.jawz.packages = with pkgs; ([ fd # modern find, faster searches + fzf # fuzzy finder! super cool and useful ripgrep # modern grep + tree-sitter # code parsing based on symbols and shit, I do not get it + graphviz # graphs + tetex # export pdf + languagetool # proofreader for English + + # doom everywhere + xorg.xwininfo + xdotool + xclip ]); services.emacs = { enable = true; @@ -17,8 +27,8 @@ nix-shell -p cmake sqlite --command "doom sync && sc restart emacs && emacsclient -e '(org-roam-db-sync)'" && - doom sync - } + doom sync + } ''; }; } diff --git a/modules/shell.nix b/modules/shell.nix index bd8e5bb..0000d1c 100644 --- a/modules/shell.nix +++ b/modules/shell.nix @@ -1,10 +1,10 @@ { config, lib, pkgs, ... }: { - imports = [ ./shell/exercism.nix ./dev/python.nix ./dev/haskell.nix ]; + imports = [ ./shell/exercism.nix ./shell/multimedia.nix ./shell/tools.nix ]; my = { - shell = { exercism.enable = lib.mkDefault false; }; - dev = { - haskell.enable = lib.mkDefault false; - python.enable = lib.mkDefault false; + shell = { + exercism.enable = lib.mkDefault false; + multimedia.enable = lib.mkDefault false; + tools.enable = lib.mkDefault false; }; }; } diff --git a/modules/shell/multimedia.nix b/modules/shell/multimedia.nix new file mode 100644 index 0000000..d1ea4fa --- /dev/null +++ b/modules/shell/multimedia.nix @@ -0,0 +1,22 @@ +{ 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?? + (buildPythonApplication rec { + pname = "ffpb"; + version = "0.4.1"; + src = fetchPypi { + inherit pname version; + sha256 = "sha256-7eVqbLpMHS1sBw2vYS4cTtyVdnnknGtEI8190VlXflk="; + }; + doCheck = false; + buildInputs = [ setuptools ]; + propagatedBuildInputs = [ tqdm ]; + }) + ]; + }; +} diff --git a/modules/shell/tools.nix b/modules/shell/tools.nix new file mode 100644 index 0000000..8bbb56b --- /dev/null +++ b/modules/shell/tools.nix @@ -0,0 +1,16 @@ +{ config, lib, pkgs, ... }: { + options.my.shell.tools.enable = lib.mkEnableOption "enable"; + config = lib.mkIf config.my.shell.tools.enable { + users.users.jawz.packages = with pkgs; [ + ripgrep # modern grep + du-dust # rusty du similar to gdu + eza # like ls but with colors + fd # modern find, faster searches + fzf # fuzzy finder! super cool and useful + gdu # disk-space utility checker, somewhat useful + rmlint # amazing dupe finder that integrates well with BTRFS + tldr # man for retards + trash-cli # oop! did not meant to delete that + ]; + }; +}