From 3727e7bd79fe75ff18b1dc6af494dbda940e0971 Mon Sep 17 00:00:00 2001 From: Benjamin Chausse Date: Thu, 14 Nov 2024 12:05:09 -0500 Subject: Batman --- software/common.nix | 71 ++++++++++++++++++++++++++++++++++++++++++++++ software/development.nix | 52 +++++++++++++++++++++++++++++++++ software/entertainment.nix | 14 +++++++++ software/office.nix | 0 software/windowmanager.nix | 68 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 205 insertions(+) create mode 100644 software/common.nix create mode 100644 software/development.nix create mode 100644 software/entertainment.nix create mode 100644 software/office.nix create mode 100644 software/windowmanager.nix (limited to 'software') diff --git a/software/common.nix b/software/common.nix new file mode 100644 index 0000000..bec9424 --- /dev/null +++ b/software/common.nix @@ -0,0 +1,71 @@ +{environment, pkgs, services, programs, ...}: + +{ + environment.systemPackages = with pkgs; [ + bluetuith + zathura + firefox + mpv + imv + btop + mlocate + + # File Manager and it's preview stuff + lf + file + poppler_utils # for pdftocairo + chafa # for sixels + lynx # for html + imagemagick # for convert + ffmpegthumbnailer # for video thumbnails + atool # for archives + odt2txt # for libreoffice previews + xlsx2csv # for excel + libwebp # for webp images + djvulibre # for dejaVu + mediainfo # audio file info + bat # cute cat + + # compression/decompression tools + zip + unzip + p7zip + + vesktop # wayland friendly discord client + + obsidian + ripgrep + + # Run windows apps with linux + winetricks + wineWowPackages.staging + + ]; + + programs.nix-ld = { + enable = true; + libraries = with pkgs; [ + + # Needed for scarlett-mixer + pango + cairo + glib + gtk4 + gtk3 + dbus-glib + gobject-introspection + harfbuzz + libGL + libGLU + alsa-lib + xorg.libX11 + + ]; + }; + services.pcscd.enable = true; + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + +} diff --git a/software/development.nix b/software/development.nix new file mode 100644 index 0000000..3a47e26 --- /dev/null +++ b/software/development.nix @@ -0,0 +1,52 @@ +{environment, xdg, pkgs, programs, ...}: + +{ + environment.systemPackages = with pkgs; [ + git + git-lfs + gnumake + cmake + zig + go + dig + ]; + + programs.nix-ld = { + enable = true; + libraries = with pkgs; [ + gopls + gofumpt + golangci-lint-langserver + + lua + + libclang + clang-tools + bear + glibc + gcc + + nodejs + + # Tools + ripgrep + fzf + entr + tmux + openssh + rsync + python3 + unzip + p7zip + + icu # unicode globalization for marksman lsp + + docker + docker-compose + nvidia-container-toolkit + + hugo + ]; + }; + +} diff --git a/software/entertainment.nix b/software/entertainment.nix new file mode 100644 index 0000000..b64747b --- /dev/null +++ b/software/entertainment.nix @@ -0,0 +1,14 @@ +{programs, environment, pkgs, ...}: + +{ + # Main packages + environment.systemPackages = with pkgs; []; + + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + }; + +} diff --git a/software/office.nix b/software/office.nix new file mode 100644 index 0000000..e69de29 diff --git a/software/windowmanager.nix b/software/windowmanager.nix new file mode 100644 index 0000000..d43b9fe --- /dev/null +++ b/software/windowmanager.nix @@ -0,0 +1,68 @@ +{environment, xdg, pkgs, services, ...}: + +{ + # Main packages + environment.systemPackages = with pkgs; [ + # Fonts + fontconfig + fira-code-nerdfont + libertinus + + kanshi # auto-configure monitors on connect/disconnect + + river # wm + lua # river config + luajitPackages.luaposix + + foot # terminal + tofi # launcher (dmenu-like) + swaybg # wallpaper + waybar # bar + wev # detect inputs + + cronie + + tmux # for my homemade dropdowns + + # Screenshots + grim + slurp + + dunst # notifications + libnotify + wl-clipboard # copy/paste + + wlr-randr # detect monitors + wdisplays # arrange monitors + jq # parse wlr-randr json output + + pulsemixer # adjust audio + playerctl # control next/previous song + glib # for gdbus needed by volumectl + ]; + + # Screen capture/sharing: + xdg.portal = { + enable = true; + xdgOpenUsePortal = true; + config = { + common = { + default = ["wlr"]; + }; + }; + wlr = { + enable = true; + settings = { + screencast = { + max_fps = 30; + chooser_type = "simple"; + chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or"; + }; + }; + }; + }; + + # Force wayland on electron + environment.sessionVariables.NIXOS_OZONE_WL = "1"; + +} -- cgit v1.2.3