summaryrefslogtreecommitdiff
path: root/nixos/modules/features
diff options
context:
space:
mode:
authorseraphim <18ycm9tx@anonaddy.me>2026-07-29 22:09:05 +0700
committerseraphim <18ycm9tx@anonaddy.me>2026-07-29 22:09:05 +0700
commit73ddb338cd7542f9569a9ab5cb0481b4f0636710 (patch)
tree559d8c542d6e965e674a46c9451efc1cb80f203a /nixos/modules/features
parentabd12d161f0aaac458abeb139556ea5ccc1fcae8 (diff)
.
Diffstat (limited to 'nixos/modules/features')
-rw-r--r--nixos/modules/features/appimage/default.nix13
-rw-r--r--nixos/modules/features/audio-tools/default.nix12
-rw-r--r--nixos/modules/features/binary-compat/default.nix23
-rw-r--r--nixos/modules/features/cli-tools/default.nix18
-rw-r--r--nixos/modules/features/desktop-apps/default.nix18
-rw-r--r--nixos/modules/features/dev-tools/default.nix20
-rw-r--r--nixos/modules/features/editors/default.nix10
-rw-r--r--nixos/modules/features/file-managers/default.nix13
-rw-r--r--nixos/modules/features/fonts/default.nix13
-rw-r--r--nixos/modules/features/gst-codecs/default.nix10
-rw-r--r--nixos/modules/features/monitoring/default.nix11
-rw-r--r--nixos/modules/features/mpd/default.nix39
-rw-r--r--nixos/modules/features/niri/default.nix13
-rw-r--r--nixos/modules/features/noctalia-greeter/default.nix18
-rw-r--r--nixos/modules/features/noctalia-shell/default.nix10
-rw-r--r--nixos/modules/features/nvidia/default.nix21
-rw-r--r--nixos/modules/features/starship/default.nix5
-rw-r--r--nixos/modules/features/swingmusic/default.nix19
-rw-r--r--nixos/modules/features/terminals/default.nix8
-rw-r--r--nixos/modules/features/wayland-tools/default.nix13
20 files changed, 307 insertions, 0 deletions
diff --git a/nixos/modules/features/appimage/default.nix b/nixos/modules/features/appimage/default.nix
new file mode 100644
index 0000000..b291735
--- /dev/null
+++ b/nixos/modules/features/appimage/default.nix
@@ -0,0 +1,13 @@
+{ pkgs, ... }:
+
+{
+ programs.appimage = {
+ enable = true;
+ binfmt = true;
+ package = pkgs.appimage-run.override {
+ extraPkgs = pkgs: [
+ pkgs.webkitgtk_4_1
+ ];
+ };
+ };
+} \ No newline at end of file
diff --git a/nixos/modules/features/audio-tools/default.nix b/nixos/modules/features/audio-tools/default.nix
new file mode 100644
index 0000000..b3013b0
--- /dev/null
+++ b/nixos/modules/features/audio-tools/default.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }:
+
+{
+ environment.systemPackages = with pkgs; [
+ mpc
+ mpd
+ mpd-mpris
+ mpv
+ rmpc
+ pavucontrol
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/binary-compat/default.nix b/nixos/modules/features/binary-compat/default.nix
new file mode 100644
index 0000000..f2ad751
--- /dev/null
+++ b/nixos/modules/features/binary-compat/default.nix
@@ -0,0 +1,23 @@
+{ pkgs, ... }:
+
+{
+ # Libraries shipped so non-Nix binaries (AppImages, dynamically linked
+ # programs via nix-ld) can resolve their runtime deps.
+ environment.systemPackages = with pkgs; [
+ cacert
+ libGL
+ nss
+ cups
+ libdrm
+ glib
+ pango
+ gtk3
+ zlib
+ expat
+ alsa-lib
+ libxkbcommon
+ atk
+ pkg-config
+ cmake
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/cli-tools/default.nix b/nixos/modules/features/cli-tools/default.nix
new file mode 100644
index 0000000..2cb6f25
--- /dev/null
+++ b/nixos/modules/features/cli-tools/default.nix
@@ -0,0 +1,18 @@
+{ pkgs, ... }:
+
+{
+ environment.systemPackages = with pkgs; [
+ tree
+ pkgs.libsixel
+ fd
+ fzf
+ eza
+ stow
+ util-linux
+ nftables
+ pkgs.rsync
+ cryptsetup
+ yt-dlp
+ caligula
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/desktop-apps/default.nix b/nixos/modules/features/desktop-apps/default.nix
new file mode 100644
index 0000000..59dda45
--- /dev/null
+++ b/nixos/modules/features/desktop-apps/default.nix
@@ -0,0 +1,18 @@
+{ pkgs, inputs, ... }:
+
+{
+ environment.systemPackages = with pkgs; [
+ inputs.helium-browser.packages.${pkgs.stdenv.hostPlatform.system}.helium
+ secretspec
+ claude-code
+ keepassxc
+ libreoffice
+ hunspellDicts.ru_RU
+ opencode
+ pkgs.ayugram-desktop
+ pkgs.legcord
+ pkgs.amnezia-vpn
+ obsidian
+ pkgs.qbittorrent
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/dev-tools/default.nix b/nixos/modules/features/dev-tools/default.nix
new file mode 100644
index 0000000..2215b49
--- /dev/null
+++ b/nixos/modules/features/dev-tools/default.nix
@@ -0,0 +1,20 @@
+{ pkgs, ... }:
+
+{
+ environment.systemPackages = with pkgs; [
+ black
+ cargo
+ clang
+ clippy
+ gcc
+ git
+ gnumake
+ nodejs
+ pyright
+ python3
+ rust-analyzer
+ rustc
+ tree-sitter
+ pkgs.wireshark
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/editors/default.nix b/nixos/modules/features/editors/default.nix
new file mode 100644
index 0000000..1570aa3
--- /dev/null
+++ b/nixos/modules/features/editors/default.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }:
+
+{
+ environment.systemPackages = with pkgs; [
+ micro
+ neovim
+ (emacs.override { withNativeCompilation = true; })
+ pkgs.vimPlugins.im-select-nvim
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/file-managers/default.nix b/nixos/modules/features/file-managers/default.nix
new file mode 100644
index 0000000..03bd41d
--- /dev/null
+++ b/nixos/modules/features/file-managers/default.nix
@@ -0,0 +1,13 @@
+{ pkgs, ... }:
+
+{
+ environment.systemPackages = with pkgs; [
+ file-roller
+ kdePackages.ark
+ kdePackages.qt6ct
+ loupe
+ nautilus
+ sushi
+ yazi
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/fonts/default.nix b/nixos/modules/features/fonts/default.nix
new file mode 100644
index 0000000..8ac4785
--- /dev/null
+++ b/nixos/modules/features/fonts/default.nix
@@ -0,0 +1,13 @@
+{ pkgs, ... }:
+
+{
+ fonts.fontconfig.enable = true;
+
+ environment.systemPackages = with pkgs; [
+ font-awesome
+ nerd-fonts.jetbrains-mono
+ nerd-fonts.symbols-only
+ jetbrains-mono
+ noto-fonts-color-emoji
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/gst-codecs/default.nix b/nixos/modules/features/gst-codecs/default.nix
new file mode 100644
index 0000000..7a85bf2
--- /dev/null
+++ b/nixos/modules/features/gst-codecs/default.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }:
+
+{
+ environment.systemPackages = with pkgs; [
+ gst_all_1.gst-plugins-bad
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ gst_all_1.gst-plugins-ugly
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/monitoring/default.nix b/nixos/modules/features/monitoring/default.nix
new file mode 100644
index 0000000..df0a937
--- /dev/null
+++ b/nixos/modules/features/monitoring/default.nix
@@ -0,0 +1,11 @@
+{ pkgs, ... }:
+
+{
+ environment.systemPackages = with pkgs; [
+ (btop.override { cudaSupport = true; })
+ duf
+ fastfetch
+ ghfetch
+ hyfetch
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/mpd/default.nix b/nixos/modules/features/mpd/default.nix
new file mode 100644
index 0000000..383180d
--- /dev/null
+++ b/nixos/modules/features/mpd/default.nix
@@ -0,0 +1,39 @@
+{ pkgs, ... }:
+
+{
+ # MPD server
+ services.mpd = {
+ enable = true;
+ user = "seraphim";
+ openFirewall = false;
+ settings = {
+ music_directory = "/mnt/giga/music";
+ bind_to_address = "any";
+ port = 6600;
+ auto_update = "yes";
+ audio_output = [
+ {
+ type = "pulse";
+ name = "PipeWire Output";
+ mixer_type = "hardware";
+ }
+ ];
+ };
+ };
+
+ systemd.services.mpd.environment = {
+ XDG_RUNTIME_DIR = "/run/user/1000";
+ };
+
+ # mpd-mpris is the MPRIS bridge for MPD — only useful when MPD is on,
+ # so it lives in the same feature. Disable by removing this block.
+ systemd.user.services.mpd-mpris = {
+ description = "MPD MPRIS Service for Waybar";
+ wantedBy = [ "default.target" ];
+ after = [ "graphical-session.target" ];
+ serviceConfig = {
+ ExecStart = "${pkgs.mpd-mpris}/bin/mpd-mpris -network tcp -host 127.0.0.1 -port 6600";
+ Restart = "on-failure";
+ };
+ };
+} \ No newline at end of file
diff --git a/nixos/modules/features/niri/default.nix b/nixos/modules/features/niri/default.nix
new file mode 100644
index 0000000..84f1d15
--- /dev/null
+++ b/nixos/modules/features/niri/default.nix
@@ -0,0 +1,13 @@
+{ pkgs, ... }:
+
+{
+ programs.niri.enable = true;
+ systemd.user.services.niri.enableDefaultPath = false;
+
+ environment.systemPackages = with pkgs; [
+ adwaita-icon-theme
+ bibata-cursors
+ hicolor-icon-theme
+ hyprpolkitagent
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/noctalia-greeter/default.nix b/nixos/modules/features/noctalia-greeter/default.nix
new file mode 100644
index 0000000..b80465c
--- /dev/null
+++ b/nixos/modules/features/noctalia-greeter/default.nix
@@ -0,0 +1,18 @@
+{ pkgs, inputs, ... }:
+
+{
+ imports = [
+ inputs.noctalia-greeter.nixosModules.default
+ ];
+
+ programs.noctalia-greeter = {
+ enable = true;
+ settings = {
+ cursor = {
+ theme = "Bibata-Modern-Ice";
+ size = 24;
+ path = "${pkgs.bibata-cursors}/share/icons";
+ };
+ };
+ };
+}
diff --git a/nixos/modules/features/noctalia-shell/default.nix b/nixos/modules/features/noctalia-shell/default.nix
new file mode 100644
index 0000000..a137d32
--- /dev/null
+++ b/nixos/modules/features/noctalia-shell/default.nix
@@ -0,0 +1,10 @@
+{ pkgs, inputs, ... }:
+
+{
+ environment.systemPackages = with pkgs; [
+ # v5 from the flake input
+ inputs.noctalia.packages.${stdenv.hostPlatform.system}.default
+ # packaged copy from nixpkgs (also installed in the original config)
+ noctalia-shell
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/nvidia/default.nix b/nixos/modules/features/nvidia/default.nix
new file mode 100644
index 0000000..30a8c28
--- /dev/null
+++ b/nixos/modules/features/nvidia/default.nix
@@ -0,0 +1,21 @@
+{ config, pkgs, ... }:
+
+{
+ hardware.nvidia = {
+ modesetting.enable = true;
+ powerManagement.enable = false;
+ open = false;
+ nvidiaSettings = true;
+ package = config.boot.kernelPackages.nvidiaPackages.latest;
+ };
+
+ environment.systemPackages = with pkgs; [
+ nvidia-vaapi-driver
+ ];
+
+ environment.sessionVariables = {
+ LIBVA_DRIVER_NAME = "nvidia";
+ __GLX_VENDOR_LIBRARY_NAME = "nvidia";
+ NIXOS_OZONE_WL = "1";
+ };
+} \ No newline at end of file
diff --git a/nixos/modules/features/starship/default.nix b/nixos/modules/features/starship/default.nix
new file mode 100644
index 0000000..b364c5d
--- /dev/null
+++ b/nixos/modules/features/starship/default.nix
@@ -0,0 +1,5 @@
+{ ... }:
+
+{
+ programs.starship.enable = true;
+} \ No newline at end of file
diff --git a/nixos/modules/features/swingmusic/default.nix b/nixos/modules/features/swingmusic/default.nix
new file mode 100644
index 0000000..6c3bc90
--- /dev/null
+++ b/nixos/modules/features/swingmusic/default.nix
@@ -0,0 +1,19 @@
+{ ... }:
+
+{
+ systemd.user.services.swingmusic = {
+ description = "Swing Music Local Server";
+ wantedBy = [ "graphical-session.target" ];
+ after = [ "graphical-session.target" ];
+ serviceConfig = {
+ ExecStart = "/home/seraphim/.swingmusic/swingmusic";
+ Restart = "on-failure";
+ WorkingDirectory = "/home/seraphim";
+ NoNewPrivileges = true;
+ PrivateTmp = true;
+ ProtectSystem = "strict";
+ ProtectHome = "false";
+ RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
+ };
+ };
+} \ No newline at end of file
diff --git a/nixos/modules/features/terminals/default.nix b/nixos/modules/features/terminals/default.nix
new file mode 100644
index 0000000..22c5662
--- /dev/null
+++ b/nixos/modules/features/terminals/default.nix
@@ -0,0 +1,8 @@
+{ pkgs, ... }:
+
+{
+ environment.systemPackages = with pkgs; [
+ foot
+ ghostty
+ ];
+} \ No newline at end of file
diff --git a/nixos/modules/features/wayland-tools/default.nix b/nixos/modules/features/wayland-tools/default.nix
new file mode 100644
index 0000000..19111c1
--- /dev/null
+++ b/nixos/modules/features/wayland-tools/default.nix
@@ -0,0 +1,13 @@
+{ pkgs, ... }:
+
+{
+ environment.systemPackages = with pkgs; [
+ cliphist
+ fuzzel
+ grim
+ slurp
+ wl-clipboard
+ wtype
+ xwayland-satellite
+ ];
+} \ No newline at end of file