summaryrefslogtreecommitdiff
path: root/software
diff options
context:
space:
mode:
Diffstat (limited to 'software')
-rw-r--r--software/common.nix71
-rw-r--r--software/development.nix52
-rw-r--r--software/entertainment.nix14
-rw-r--r--software/office.nix0
-rw-r--r--software/windowmanager.nix68
5 files changed, 205 insertions, 0 deletions
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
--- /dev/null
+++ b/software/office.nix
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";
+
+}