diff options
author | Soispha <soispha@vhack.eu> | 2023-08-01 15:31:42 +0200 |
---|---|---|
committer | Soispha <soispha@vhack.eu> | 2023-08-01 15:42:54 +0200 |
commit | 0a608bd781dcda40144097b007fac0a0c60a8ee1 (patch) | |
tree | e69fbc1fd0e15e3b86f31f47b776df21f6f0170d /home-manager/soispha/packages/default.nix | |
parent | Fix(hm/conf/gammastep): Use lighter settings on laptops (diff) | |
download | nixos-config-0a608bd781dcda40144097b007fac0a0c60a8ee1.zip |
Refactor(treewide): Move module configuration in separate files
Diffstat (limited to 'home-manager/soispha/packages/default.nix')
-rw-r--r-- | home-manager/soispha/packages/default.nix | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/home-manager/soispha/packages/default.nix b/home-manager/soispha/packages/default.nix new file mode 100644 index 00000000..0d6528dd --- /dev/null +++ b/home-manager/soispha/packages/default.nix @@ -0,0 +1,160 @@ +{ + pkgs, + sysLib, + grades, + snap-sync, + system, + flake_update, + ... +}: +with pkgs; let + snap-sync-pkgs = pkgs.writeShellScriptBin "snap-sync" (builtins.readFile "${snap-sync}/bin/snap-sync"); + shell-scripts = (import ./scripts.nix) {inherit pkgs sysLib;}; + + Gui = { + Terminals = [ + # foot # wayland native terminal + alacritty # default terminal + ]; + Browsers = [ + #ungoogled-chromium # web browser (only for web programming) + #brave + ]; + + ImageManipulation = [ + #krita # new, and better (KDE) + #gimp # conservative, and old (GNOME) + ]; + + Social = [ + mumble # voice chat software (client) + lutris # multiple game store clients + + nheko # best matrix client (as of today) + # element-desktop # nheko didn't work + signal-desktop # to avoid encryption problems with signal-bridge + ]; + + Misc = [ + #kalzium # Periodic Table of Elements (`element` is [sort of] better) + keepassxc # password manager + #onlykey # OnlyKey Chrome Desktop App + anki-bin # spaced repetition + ]; + }; + + TuiCli = { + EyeCandy = [ + #banner # Print large banners to ASCII terminals + cmatrix # A curses-based scrolling 'Matrix'-like screen + hyfetch # Neofetch with LGBTQ pride flags. + ]; + + Misc = [ + android-file-transfer # Android MTP client with minimalistic UI + #xdg-ninja # A shell script which checks your $HOME for unwanted files and directories. + xdg-utils # open urls and such things + yokadi # Command line oriented, sqlite powered, todo list + killall # kill a application by name + ]; + + WM = { + river = [river]; # A dynamic tiling wayland compositor + + CLITools = [ + lswt # List Wayland toplevels + wl-clipboard # Command-line copy/paste utilities + swaylock # lockscreen + ]; + + Media = [ + wf-recorder # Screen recorder + ]; + }; + + Media = { + View = [ + imv # Image viewer + ]; + + Listen = [ + pulseaudio # set the volume with pactl + ncmpc # mpd player client + mpc-cli # a cli mpd client + ]; + }; + + Hardware = { + Storage = [ + #compsize # Calculate compression ratio of a set of files on Btrfs + # TODO smartmontools # Control and monitor S.M.A.R.T. enabled ATA and SCSI Hard Drives + ]; + + Input = [ + #piper # GTK application to configure gaming mice + ]; + + Printer = [ + # TODO sane-airscan # SANE - SANE backend for AirScan (eSCL) and WSD document scanners + ]; + }; + + FileListers = [ + tree # A directory listing program displaying a depth indented list of files + fd # Simple, fast and user-friendly alternative to find + ripgrep # A search tool that combines the usability of ag with the raw speed of grep + fzf # used to quickly move around with its keybindings + ]; + + Editors = [ + ed # A POSIX-compliant line-oriented text editor + #sed # GNU stream editor + vim # The original ex/vi text editor (this is `vim` and not `vi`, as `vi` is unfree) + neovim # Fork of Vim aiming to improve user experience, plugins, and GUIs + ]; + + Programming = { + GeneralTools = [ + git # the fast distributed version control system + git-crypt # mostly here to avoid problems in repositories, where the flake can't be loaded + glow # Command-line markdown renderer + ]; + }; + }; + # TODO unmaintained, find sth else: + # handlr # Powerful alternative to xdg-utils written in Rust + mapFun = x: + if builtins.isAttrs x + then + if lib.isDerivation x + then [x] + else builtins.attrValues x + else [x]; +in { + home.packages = + [ + snap-sync-pkgs + flake_update.outputs.packages.${system}.default + grades.outputs.packages.${system}.default + ] + ++ shell-scripts + ++ (with builtins; + concatLists + (concatLists [ + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (attrValues Gui))))))) + + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (attrValues TuiCli))))))) + ])); +} |