Summary Files Commits Branches @commit @diff @stats
path: root / modules
diff options
context:
space:
mode:
Commit13ceb5f40cb230f178ac05ca15933fef2e6cc02f (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-12-28 17:48:33 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-12-28 17:58:08 +0200
Files5e1dce541ead9d0e8a93505a968c74f81a8822c2 /modules
nix-13ceb5f40cb230f178ac05ca15933fef2e6cc02f.tar
nix-13ceb5f40cb230f178ac05ca15933fef2e6cc02f.tar.gz
nix-13ceb5f40cb230f178ac05ca15933fef2e6cc02f.zip
Parent56facfa7f5de72f15f409f8d7d5ad522317ef555 (diff)
feat(modules)!: Complete reorganisation and renaming of module groups
42 files changed, 561 insertions, 270 deletions
-rw-r--r--modules/personal/cli-essential.nix21
-rw-r--r--modules/personal/cli-linux.nix90
-rw-r--r--modules/personal/cli-other.nix14
-rw-r--r--modules/personal/cli-posix.nix10
-rw-r--r--modules/personal/cli-powerful.nix19
-rw-r--r--modules/personal/de-openbox-syndamia.nix (renamed from modules/personal/openbox-de.nix)89
-rw-r--r--modules/personal/default.nix6
-rw-r--r--modules/personal/desktop-basics.nix38
-rw-r--r--modules/personal/desktop-media-creation.nix8
-rw-r--r--modules/personal/desktop-x11.nix68
-rw-r--r--modules/personal/dev-android.nix6
-rw-r--r--modules/personal/dev-c.nix27
-rw-r--r--modules/personal/dev-cli.nix25
-rw-r--r--modules/personal/dev-db.nix12
-rw-r--r--modules/personal/dev-gui.nix8
-rw-r--r--modules/personal/dev-kubernetes.nix (renamed from modules/personal/kubernetes.nix)0
-rw-r--r--modules/personal/dev-netsim.nix7
-rw-r--r--modules/personal/dev-oop.nix7
-rw-r--r--modules/personal/dev-other.nix23
-rw-r--r--modules/personal/dev-tex.nix (renamed from modules/personal/tex.nix)3
-rw-r--r--modules/personal/dev.nix11
-rw-r--r--modules/personal/fonts.nix4
-rw-r--r--modules/personal/gui-essential.nix42
-rw-r--r--modules/personal/gui-powerful.nix8
-rw-r--r--modules/personal/hardware-general.nix60
-rw-r--r--modules/personal/hardware-laptop.nix17
-rw-r--r--modules/personal/hw-audio.nix21
-rw-r--r--modules/personal/hw-battery.nix (renamed from modules/personal/battery.nix)5
-rw-r--r--modules/personal/hw-bluetooth.nix7
-rw-r--r--modules/personal/hw-brightness.nix5
-rw-r--r--modules/personal/hw-printers-scanners.nix19
-rw-r--r--modules/personal/hw-rtl-sdr.nix (renamed from modules/personal/rtl-sdr.nix)6
-rw-r--r--modules/personal/hw-touchpad.nix11
-rw-r--r--modules/personal/hw-video-accel.nix15
-rw-r--r--modules/personal/hw-wacom.nix5
-rw-r--r--modules/personal/users-standard.nix3
-rw-r--r--modules/personal/virtualization.nix6
-rw-r--r--modules/personal/work.nix2
-rw-r--r--modules/personal/xserver.nix13
-rw-r--r--modules/server/cli-essential.nix21
-rw-r--r--modules/server/cli-linux.nix59
-rw-r--r--modules/server/cli-posix.nix10
diff --git a/modules/personal/cli-essential.nix b/modules/personal/cli-essential.nix
deleted file mode 100644
index 5491ac3..0000000
--- a/modules/personal/cli-essential.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ pkgs, ... }: {
- environment.systemPackages = with pkgs; [
- dash htop rlwrap bc
- # Hardware
- lm_sensors lshw
- # Network
- wget git rsync inetutils
- # Files
- vim-full nnn
- # Archive formats
- gnutar p7zip zip unzip rar unrar
- ];
-
- programs = {
- gnupg.agent = {
- enable = true;
- enableSSHSupport = true;
- pinentryPackage = pkgs.pinentry-all;
- };
- };
-}
diff --git a/modules/personal/cli-linux.nix b/modules/personal/cli-linux.nix
new file mode 100644
index 0000000..0600bf0
--- /dev/null
+++ b/modules/personal/cli-linux.nix
@@ -0,0 +1,90 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ bash
+ git
+ rlwrap # readline processing in non-readline cli apps
+ chrony # set system time from the internet
+
+ #== Editor/Player/File manager ==#
+ nnn
+ vim-full
+ moc # music on console
+
+ #== Hardware ==#
+ lshw
+ efibootmgr
+ screenfetch # better neofetch
+ lm_sensors # provides sensors, sensors-detects, isadump, ...
+ ddrescue # data recovery tool
+ usbutils # lsusb, ...
+
+ #== Processes ==#
+ htop
+ lsof # lists open files, mostly under /proc
+ iotop # IO utilisation per process
+
+ #== Network ==#
+ dnsutils
+ netcat
+ curl
+ ipfetch # neofetch but for your IP
+ vnstat # network statistics
+ inetutils # ftp, hostname, ifconfig, ping, telnet, traceroute, rexec, rcp, ...
+ wget # download http/https/ftp files
+ rsync # file transfering
+
+ #== CD/DVD/BluRay ==#
+ cdrtools # isodump, isoinfo, readcd, ...
+ libisoburn # disc filesystem editor
+
+ #== HDD/SSD ==#
+ udisks # access and manipulate storage devices; udisksctl, ...
+
+ #== Package manager ==#
+ rpm dpkg
+
+ #== File systems ==#
+ parted # partition editor
+ dosfstools # dosfsck, mkfs.fat, mkfs.dos, ...
+ mtpfs # media transfering file system management
+ ntfs3g # NTFS driver
+ squashfsTools # create and unpack squashfs; used in LiveCDs, AppImages, snaps, ...
+
+ #== Media files ==#
+ img2pdf
+ imagemagick # image editor
+ exiftool # EXIF metadata editor
+ gd # image creation library
+ pngcrush # png optimizer
+ optipng # png optimizer
+ jpegoptim # jpeg optimizer
+ mediainfo # tag info
+ ffmpeg # record, convert, stream audio and video
+ kid3 # audio tag editor
+
+ #== PDF files ==#
+ pdftk # pdf editor
+ poppler-utils # PDF rendering; pdftotext, ...
+
+ #== Archive files ==#
+ gnutar
+ p7zip
+ zip unzip
+ rar unrar
+
+ #== Other files ==#
+ inotify-tools # inotifywait, inotifywatch, ...
+ xmlstarlet # edit and query xml
+ pandoc # document converter
+ aspell # spelling program
+ ];
+
+ programs = {
+ mtr.enable = true;
+ gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ pinentryPackage = pkgs.pinentry-all;
+ };
+ };
+}
diff --git a/modules/personal/cli-other.nix b/modules/personal/cli-other.nix
new file mode 100644
index 0000000..359f579
--- /dev/null
+++ b/modules/personal/cli-other.nix
@@ -0,0 +1,14 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ yt-dlp
+ nixpkgs-2305.exa
+
+ #== POSIX ==#
+ gawk_mpfr mawk nawk
+ dash yash
+
+ #== Markup ==#
+ lowdown
+ highlight
+ ];
+}
diff --git a/modules/personal/cli-posix.nix b/modules/personal/cli-posix.nix
new file mode 100644
index 0000000..7a639b3
--- /dev/null
+++ b/modules/personal/cli-posix.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ # Multi-tool packages
+ busybox util-linux
+ # Specific tools
+ bc dash nawk ed cron tree
+ # (GNU) software development tools
+ gcc gnumake flex bison
+ ];
+}
diff --git a/modules/personal/cli-powerful.nix b/modules/personal/cli-powerful.nix
deleted file mode 100644
index 7b237ff..0000000
--- a/modules/personal/cli-powerful.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ pkgs, ... }: {
- environment.systemPackages = with pkgs; [
- neovim cron
- yash
- # Hardware
- usbutils chrony iotop efibootmgr libva-utils
- # File systems
- parted dosfstools mtpfs ntfs3g squashfsTools
- # Network
- vnstat yt-dlp dnsutils
- # Working with files
- neovim inotify-tools lsof tree xmlstarlet
- # Working with (media) files
- ffmpeg img2pdf pdftk imagemagick pngcrush jpegoptim optipng gd kid3 pandoc libisoburn mediainfo exiftool
- cdrtools rpm dpkg
- # Misc
- neofetch nixpkgs-2305.exa moc lazygit aspell ddrescue
- ];
-}
diff --git a/modules/personal/openbox-de.nix b/modules/personal/de-openbox-syndamia.nix
index aa5163e..6d61ed0 100644
--- a/modules/personal/openbox-de.nix
+++ b/modules/personal/de-openbox-syndamia.nix
@@ -1,28 +1,73 @@
-{ pkgs, ... }: {
+{ pkgs, config, ... }: {
environment.systemPackages = with pkgs; [
- # Essential libs
- dbus cairo libnotify gtk3 yad zenity gnome.gvfs at-spi2-atk
- # Main apps and their config apps
- # window manager, compositor, taskbar, notifications, app menu, lockscreen, session manager
- openbox lxappearance obconf picom nixpkgs-2305.tint2 dunst jgmenu i3lock-color lightdm lightdm-gtk-greeter
- # General X11 tools
- lxqt.lxqt-policykit xorg.xev xfontsel xorg.xmodmap xorg.xwininfo xorg.xprop clipnotify xdotool xautolock xcape xorg.setxkbmap xkbmon xorg.xhost xclip wmctrl
- menu-cache
- # Tray
- libappindicator networkmanagerapplet pnmixer dunst-applet
- # File openers
- mate.atril mate.eom mate.engrampa nemo-with-extensions seahorse
- # System
- nixpkgs-mint.gnome.gnome-system-monitor udisks gnome-disk-utility nixpkgs-mint.gnome.baobab nixpkgs-2305.simple-scan
- # Theme
- nixpkgs-mint.cinnamon.mint-themes nixpkgs-mint.cinnamon.mint-y-icons oreo-black-bordered-cursor
- openbox-theme-collections openbox-blocks-dark
+ #== Essential libraries ==#
+ dbus
+ at-spi2-atk
+ libnotify
+ gtk3
+ yad # GUI dialogs in shell scripts
+ cairo # 2D graphics
+ zenity # display dialogs from cli
+ gnome.gvfs # virtual filesystem
- xdg-desktop-portal-gtk xdg-desktop-portal-xapp
- ];
+ #== Primary applications ==#
+ openbox lxappearance obconf # window manager and tools
+ picom # compositor
+ nixpkgs-2305.tint2 # taskbar
+ dunst dunst-applet # notifications
+ jgmenu # app menu
+ i3lock-color # lockscreen
+ lightdm lightdm-gtk-greeter # session manager
- security.polkit.enable = true;
- security.pam.services.i3lock.enable = true;
+ #== X11 tools ==#
+ lxqt.lxqt-policykit
+ xautolock # lock on inactivity
+ xkbmon # keyboard language/layout monitor
+
+ #== System tools ==#
+ gnome-disk-utility
+ nixpkgs-mint.gnome.gnome-system-monitor # system monitor
+ nixpkgs-mint.gnome.baobab # disk usage analyzer
+ nixpkgs-2305.simple-scan # document scanner
+
+ #== Freedesktop ==#
+ xdg-desktop-portal-gtk
+ xdg-desktop-portal-xapp
+ menu-cache # read menu files
+
+ #== Tray applications ==#
+ libappindicator
+ pnmixer # audio control
+
+ #== File viewers/editors ==#
+ mate.atril # PDF/PostScript/DJVU/...
+ mate.eom # PNG/JPEG/...
+ mate.engrampa # archives
+ nemo-with-extensions # file manager
+ seahorse # GnomeKeyring manager
+
+ #== Themes ==#
+ nixpkgs-mint.cinnamon.mint-themes
+ nixpkgs-mint.cinnamon.mint-y-icons
+ oreo-black-bordered-cursor
+ openbox-theme-collections
+ openbox-blocks-dark
+ ] ++
+ (if config.hardware.bluetooth.enable then
+ [
+ blueberry # bluetooth configuration
+ ]
+ else []) ++
+ (if config.networking.networkmanager.enable then
+ [
+ networkmanagerapplet
+ ]
+ else []);
+
+ security = {
+ polkit.enable = true;
+ pam.services.i3lock.enable = true;
+ };
xdg.portal = {
enable = true;
diff --git a/modules/personal/default.nix b/modules/personal/default.nix
index 9db866c..6093d5a 100644
--- a/modules/personal/default.nix
+++ b/modules/personal/default.nix
@@ -35,19 +35,15 @@
# Timezone and locale
#
- # Set your time zone.
time.timeZone = "Europe/Sofia";
- # Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
#
# Networking
#
- # Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
- networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
-
+ networking.networkmanager.enable = true;
networking.firewall.allowedTCPPorts = [ 20 ];
# zeroconf networking
diff --git a/modules/personal/desktop-basics.nix b/modules/personal/desktop-basics.nix
new file mode 100644
index 0000000..a40338f
--- /dev/null
+++ b/modules/personal/desktop-basics.nix
@@ -0,0 +1,38 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ speedcrunch
+ copyq
+ nixpkgs-2305.barrier
+ redshift
+
+ #== Recording ==#
+ obs-studio
+ flameshot
+
+ #== File viewer/player/editor ==#
+ keepassxc
+ audacious
+ mpv
+ libreoffice
+ gimp
+
+ #== Network-connected ==#
+ firefox
+ ungoogled-chromium
+ wireshark
+ nixpkgs-2305.bitwarden
+ nextcloud-client
+ thunderbird
+ qbittorrent
+ ];
+
+ nixpkgs.config.permittedInsecurePackages = [
+ "qbittorrent-4.6.4"
+ "electron-36.9.5"
+ ];
+
+ programs = {
+ firefox.enable = true;
+ chromium.enable = true;
+ };
+}
diff --git a/modules/personal/desktop-media-creation.nix b/modules/personal/desktop-media-creation.nix
new file mode 100644
index 0000000..0c6c945
--- /dev/null
+++ b/modules/personal/desktop-media-creation.nix
@@ -0,0 +1,8 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ inkscape
+ krita
+ ardour
+ blender-hip
+ ];
+}
diff --git a/modules/personal/desktop-x11.nix b/modules/personal/desktop-x11.nix
new file mode 100644
index 0000000..923e1b9
--- /dev/null
+++ b/modules/personal/desktop-x11.nix
@@ -0,0 +1,68 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ devilspie2
+ find-cursor
+ xed-editor
+ sxhkd # hotkeys
+ peek # simple video recorder
+ birdtray # thunderbird on the tray
+ pdfpc # PDF multi-monitor presenting
+ glava # video visualiser
+
+ #== X11 tools ==#
+ xorg.xev # print events in terminal
+ xorg.xhost # manage host/user names, allowed xserver access
+ xclip # access X11 clipboard from command-line
+ clipnotify # notify on text selection events
+ xdotool # simulate keyboard & mouse activity
+ xorg.xmodmap # modify keymaps
+ xorg.setxkbmap # configure keymaps
+ xcape # configure modifier keys
+ xfontsel # browse and preview fonts
+ xorg.xprop # display and set window and font properties
+ xorg.xwininfo # print information about a window
+ wmctrl # manage windows
+
+ #== Terminal emulators ==#
+ terminator
+ xterm
+
+ #== Configuration ==#
+ feh
+ arandr
+ pavucontrol
+ piper
+
+ #== Files and filesystems ==#
+ gparted
+ qdirstat
+ timeshift
+ ];
+
+ systemd.user.services = {
+ devilspie2 = {
+ description = "devilspie2 runner";
+ wantedBy = [ "graphical-session.target" ];
+ wants = [ "graphical-session.target" ];
+ after = [ "graphical-session.target" ];
+ serviceConfig = {
+ ExecStart = "${pkgs.devilspie2}/bin/devilspie2";
+ Restart = "on-failure";
+ RestartSec = 1;
+ TimeoutStopSec = 10;
+ };
+ };
+ };
+
+ services.xserver = {
+ # xkbmap
+ xkb.layout = "us,bg-custom";
+ xkb.variant = ",phonetic-nonstandard";
+ xkb.options = "grp:rwin_toggle,grp:alt_shift_toggle,lv3:switch,caps:escape";
+ xkb.extraLayouts.bg-custom = {
+ description = "Non-standard variant of the traditional Bulgarian phonetic keyboard, which replaces some characters with their English counterparts";
+ languages = [ "bg" ];
+ symbolsFile = ../../packages/bg-custom;
+ };
+ };
+}
diff --git a/modules/personal/dev-android.nix b/modules/personal/dev-android.nix
new file mode 100644
index 0000000..add8894
--- /dev/null
+++ b/modules/personal/dev-android.nix
@@ -0,0 +1,6 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ android-tools # adb, fastboot, ...
+ heimdall
+ ];
+}
diff --git a/modules/personal/dev-c.nix b/modules/personal/dev-c.nix
new file mode 100644
index 0000000..f20c398
--- /dev/null
+++ b/modules/personal/dev-c.nix
@@ -0,0 +1,27 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ #== Build tools ==#
+ meson
+ cmake # build system generator
+
+ #== clang ==#
+ clang
+ clang-tools # C++ cli tools
+ libclang # clang C library
+
+ #== gcc ==#
+ gcc
+ gdb # GNU debugger
+ valgrind # debugger and (memory) profiler
+ glibc # GNU C library
+
+ #== Code generators ==#
+ flex
+ bison
+
+ #== Libraries ==#
+ libusb1
+ libusb-compat-0_1
+ pugixml # XML parser for C++
+ ];
+}
diff --git a/modules/personal/dev-cli.nix b/modules/personal/dev-cli.nix
deleted file mode 100644
index d13fc8e..0000000
--- a/modules/personal/dev-cli.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ pkgs, ... }: {
- environment.systemPackages = with pkgs; [
- gnumake just
- lowdown wakatime-cli cloc go php fontforge ruby highlight ripgrep
- # C/C++
- clang clang-tools libclang glibc gcc gdb valgrind pugixml cmake libusb1 libusb-compat-0_1 meson
- # .NET
- dotnet-sdk mono
- # Python
- python3Minimal
- # Android
- android-tools heimdall
- # awk
- gawk_mpfr mawk nawk
- # DB
- sqlite sqlitebrowser flyway
- # Functional
- racket ghc sbcl
- # Compilers
- flex bison
- ];
-
- services.mysql.enable = false;
- services.mysql.package = pkgs.mysql;
-}
diff --git a/modules/personal/dev-db.nix b/modules/personal/dev-db.nix
new file mode 100644
index 0000000..776e346
--- /dev/null
+++ b/modules/personal/dev-db.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ sqlite
+ sqlitebrowser
+ flyway
+ ];
+
+ services.mysql = {
+ enable = false;
+ package = pkgs.mysql;
+ };
+}
diff --git a/modules/personal/dev-gui.nix b/modules/personal/dev-gui.nix
deleted file mode 100644
index fd066f3..0000000
--- a/modules/personal/dev-gui.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ pkgs, ... }: {
- environment.systemPackages = with pkgs; [
- # Networking
- gns3-gui gns3-server dynamips
- # Other
- rstudio
- ];
-}
diff --git a/modules/personal/kubernetes.nix b/modules/personal/dev-kubernetes.nix
index dfac020..dfac020 100644
--- a/modules/personal/kubernetes.nix
+++ b/modules/personal/dev-kubernetes.nix
diff --git a/modules/personal/dev-netsim.nix b/modules/personal/dev-netsim.nix
new file mode 100644
index 0000000..36b7b77
--- /dev/null
+++ b/modules/personal/dev-netsim.nix
@@ -0,0 +1,7 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ gns3-gui
+ gns3-server
+ dynamips
+ ];
+}
diff --git a/modules/personal/dev-oop.nix b/modules/personal/dev-oop.nix
new file mode 100644
index 0000000..73f638b
--- /dev/null
+++ b/modules/personal/dev-oop.nix
@@ -0,0 +1,7 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ #== .NET ==#
+ dotnet-sdk
+ mono
+ ];
+}
diff --git a/modules/personal/dev-other.nix b/modules/personal/dev-other.nix
new file mode 100644
index 0000000..44539ce
--- /dev/null
+++ b/modules/personal/dev-other.nix
@@ -0,0 +1,23 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ #== Python ==#
+ python3Minimal
+
+ #== Functional ==#
+ racket
+ sbcl # Steel Bank common lisp
+ ghc # Glasgow haskell compiler
+
+ #== Go ==#
+ go
+
+ #== PHP ==#
+ php
+
+ #== Ruby ==#
+ ruby
+
+ #== R ==#
+ rstudio
+ ];
+}
diff --git a/modules/personal/tex.nix b/modules/personal/dev-tex.nix
index 9e45bb6..9336a14 100644
--- a/modules/personal/tex.nix
+++ b/modules/personal/dev-tex.nix
@@ -6,7 +6,8 @@ let
});
in {
environment.systemPackages = with pkgs; [
- texmaker tex
+ texmaker
+ tex
];
}
diff --git a/modules/personal/dev.nix b/modules/personal/dev.nix
new file mode 100644
index 0000000..587ba93
--- /dev/null
+++ b/modules/personal/dev.nix
@@ -0,0 +1,11 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ neovim
+ git
+ lazygit
+ wakatime-cli
+ cloc
+ ripgrep
+ just
+ ];
+}
diff --git a/modules/personal/fonts.nix b/modules/personal/fonts.nix
index b0790d9..97aa6ad 100644
--- a/modules/personal/fonts.nix
+++ b/modules/personal/fonts.nix
@@ -1,4 +1,8 @@
{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ fontforge
+ ];
+
fonts.packages = with pkgs; [
meslolgs-nerdfont
# Note to self: DO NOT INSTALL ADOBE FONTS!
diff --git a/modules/personal/gui-essential.nix b/modules/personal/gui-essential.nix
deleted file mode 100644
index 6878463..0000000
--- a/modules/personal/gui-essential.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ pkgs, ... }: {
- environment.systemPackages = with pkgs; [
- devilspie2 sxhkd speedcrunch peek wireshark
- obs-studio qbittorrent glava
- keepassxc
- find-cursor
- # Terminals
- terminator xterm
- # Settings and backup tools
- feh arandr pavucontrol blueberry piper
- # Tray
- copyq flameshot nixpkgs-2305.barrier redshift
- # File openers/players
- audacious mpv libreoffice
- # File editors
- gimp xed-editor
- # Web (app) clients
- brave nixpkgs-2305.bitwarden nextcloud-client thunderbird birdtray
- ];
-
- nixpkgs.config.permittedInsecurePackages = [
- "qbittorrent-4.6.4"
- "electron-36.9.5"
- ];
-
- programs.firefox.enable = true;
-
- systemd.user.services = {
- devilspie2 = {
- description = "devilspie2 runner";
- wantedBy = [ "graphical-session.target" ];
- wants = [ "graphical-session.target" ];
- after = [ "graphical-session.target" ];
- serviceConfig = {
- ExecStart = "${pkgs.devilspie2}/bin/devilspie2";
- Restart = "on-failure";
- RestartSec = 1;
- TimeoutStopSec = 10;
- };
- };
- };
-}
diff --git a/modules/personal/gui-powerful.nix b/modules/personal/gui-powerful.nix
deleted file mode 100644
index c913a44..0000000
--- a/modules/personal/gui-powerful.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ pkgs, ... }: {
- environment.systemPackages = with pkgs; [
- # File/image/audio editors
- inkscape krita ardour blender-hip
- # System
- gparted timeshift qdirstat
- ];
-}
diff --git a/modules/personal/hardware-general.nix b/modules/personal/hardware-general.nix
deleted file mode 100644
index 9a5962d..0000000
--- a/modules/personal/hardware-general.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ pkgs, ... }: {
- environment.systemPackages = with pkgs; [
- pipewire bluez
- ];
-
- programs = {
- mtr.enable = true;
- };
-
- #
- # Graphics
- #
-
- # https://nixos.wiki/wiki/Accelerated_Video_Playback
- hardware.graphics = {
- enable = true;
- extraPackages = with pkgs; [
- libva-vdpau-driver
- libvdpau-va-gl
- ];
- };
-
- #
- # Sound
- #
-
- # hardware.pulseaudio.enable = true;
-
- security.rtkit.enable = true;
- services.pipewire = {
- enable = true;
- alsa.enable = true;
- alsa.support32Bit = true;
- pulse.enable = true;
- };
- services.dbus = {
- enable = true;
- packages = [ pkgs.dconf ];
- };
-
- #
- # Bluetooth
- #
-
- hardware.bluetooth.enable = true;
-
- #
- # Printers and scanners
- #
-
- # Enable CUPS to print documents.
- services.printing.enable = true;
- hardware.sane.enable = true;
-
- #
- # Other hardware
- #
-
- hardware.rtl-sdr.enable = true;
-}
diff --git a/modules/personal/hardware-laptop.nix b/modules/personal/hardware-laptop.nix
deleted file mode 100644
index 1e59258..0000000
--- a/modules/personal/hardware-laptop.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ pkgs, ... }: {
- environment.systemPackages = with pkgs; [
- brightnessctl
- libinput libinput-gestures
- epkowa
- (epsonscan2.override { withNonFreePlugins = true; withGui = true; })
- pdfpc
- ];
-
- hardware.sane.extraBackends = [ (pkgs.epsonscan2.override { withNonFreePlugins = true; withGui = true; }) ];
-
- # touchpad support
- services.libinput = {
- enable = true;
- touchpad.naturalScrolling = true;
- };
-}
diff --git a/modules/personal/hw-audio.nix b/modules/personal/hw-audio.nix
new file mode 100644
index 0000000..9fddd9b
--- /dev/null
+++ b/modules/personal/hw-audio.nix
@@ -0,0 +1,21 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ pipewire
+ ];
+
+ security.rtkit.enable = true;
+
+ services = {
+ pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ };
+
+ dbus = {
+ enable = true;
+ packages = [ pkgs.dconf ];
+ };
+ };
+}
diff --git a/modules/personal/battery.nix b/modules/personal/hw-battery.nix
index 8c6af72..7d94f9a 100644
--- a/modules/personal/battery.nix
+++ b/modules/personal/hw-battery.nix
@@ -1,6 +1,9 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
- powertop upower acpid tlp
+ powertop
+ upower
+ acpid
+ tlp
];
services = {
diff --git a/modules/personal/hw-bluetooth.nix b/modules/personal/hw-bluetooth.nix
new file mode 100644
index 0000000..955db94
--- /dev/null
+++ b/modules/personal/hw-bluetooth.nix
@@ -0,0 +1,7 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ bluez
+ ];
+
+ hardware.bluetooth.enable = true;
+}
diff --git a/modules/personal/hw-brightness.nix b/modules/personal/hw-brightness.nix
new file mode 100644
index 0000000..18dc183
--- /dev/null
+++ b/modules/personal/hw-brightness.nix
@@ -0,0 +1,5 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ brightnessctl
+ ];
+}
diff --git a/modules/personal/hw-printers-scanners.nix b/modules/personal/hw-printers-scanners.nix
new file mode 100644
index 0000000..7e88752
--- /dev/null
+++ b/modules/personal/hw-printers-scanners.nix
@@ -0,0 +1,19 @@
+{ pkgs, ... }: let
+ epsonscan2_Unfree = pkgs.epsonscan2.override {
+ withNonFreePlugins = true;
+ withGui = true;
+ };
+in {
+ environment.systemPackages = with pkgs; [
+ epkowa
+ epsonscan2_Unfree
+ ];
+
+ # Enable CUPS to print documents.
+ services.printing.enable = true;
+
+ hardware.sane = {
+ enable = true;
+ extraBackends = [ epsonscan2_Unfree ];
+ };
+}
diff --git a/modules/personal/rtl-sdr.nix b/modules/personal/hw-rtl-sdr.nix
index 4347bf4..1b3b832 100644
--- a/modules/personal/rtl-sdr.nix
+++ b/modules/personal/hw-rtl-sdr.nix
@@ -1,8 +1,12 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
- rtl-sdr gqrx sdrangel
+ rtl-sdr
+ gqrx
+ sdrangel
];
+ hardware.rtl-sdr.enable = true;
+
services.udev.extraRules = ''
#
# Copyright 2012-2013 Osmocom rtl-sdr project
diff --git a/modules/personal/hw-touchpad.nix b/modules/personal/hw-touchpad.nix
new file mode 100644
index 0000000..20af569
--- /dev/null
+++ b/modules/personal/hw-touchpad.nix
@@ -0,0 +1,11 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ libinput
+ libinput-gestures
+ ];
+
+ services.libinput = {
+ enable = true;
+ touchpad.naturalScrolling = true;
+ };
+}
diff --git a/modules/personal/hw-video-accel.nix b/modules/personal/hw-video-accel.nix
new file mode 100644
index 0000000..53a937a
--- /dev/null
+++ b/modules/personal/hw-video-accel.nix
@@ -0,0 +1,15 @@
+{ pkgs, ... }: {
+ # https://nixos.wiki/wiki/Accelerated_Video_Playback
+
+ environment.systemPackages = with pkgs; [
+ libva-utils
+ ];
+
+ hardware.graphics = {
+ enable = true;
+ extraPackages = with pkgs; [
+ libva-vdpau-driver
+ libvdpau-va-gl
+ ];
+ };
+}
diff --git a/modules/personal/hw-wacom.nix b/modules/personal/hw-wacom.nix
new file mode 100644
index 0000000..8bb7949
--- /dev/null
+++ b/modules/personal/hw-wacom.nix
@@ -0,0 +1,5 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ xf86_input_wacom
+ ];
+}
diff --git a/modules/personal/users-standard.nix b/modules/personal/users-standard.nix
index 368f6f8..51a0be6 100644
--- a/modules/personal/users-standard.nix
+++ b/modules/personal/users-standard.nix
@@ -1,7 +1,4 @@
{ config, pkgs, ... }: {
- # zsh
- programs.zsh.enable = true;
- environment.shells = with pkgs; [ zsh ];
# Thanks https://discourse.nixos.org/t/gns3-setcap-and-ubridge-gns3-unable-to-execute-setcap-command/13485/3
users = {
groups.ubridge = {};
diff --git a/modules/personal/virtualization.nix b/modules/personal/virtualization.nix
index 38c7536..ca162a4 100644
--- a/modules/personal/virtualization.nix
+++ b/modules/personal/virtualization.nix
@@ -1,6 +1,10 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
- virt-manager libvirt qemu_kvm kvmtool qemu_full
+ virt-manager
+ libvirt
+ qemu_kvm
+ kvmtool
+ qemu_full
];
virtualisation = {
diff --git a/modules/personal/work.nix b/modules/personal/work.nix
deleted file mode 100644
index 0222734..0000000
--- a/modules/personal/work.nix
+++ /dev/null
@@ -1,2 +0,0 @@
-{ pkgs, ... }: {
-}
diff --git a/modules/personal/xserver.nix b/modules/personal/xserver.nix
deleted file mode 100644
index 810122a..0000000
--- a/modules/personal/xserver.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ pkgs, ... }: {
- services.xserver = {
- # xkbmap
- xkb.layout = "us,bg-custom";
- xkb.variant = ",phonetic-nonstandard";
- xkb.options = "grp:rwin_toggle,grp:alt_shift_toggle,lv3:switch,caps:escape";
- xkb.extraLayouts.bg-custom = {
- description = "Non-standard variant of the traditional Bulgarian phonetic keyboard, which replaces some characters with their English counterparts";
- languages = [ "bg" ];
- symbolsFile = ../../packages/bg-custom;
- };
- };
-}
diff --git a/modules/server/cli-essential.nix b/modules/server/cli-essential.nix
deleted file mode 100644
index 3f5c6e7..0000000
--- a/modules/server/cli-essential.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ pkgs, ... }: {
- environment.systemPackages = with pkgs; [
- dash htop rlwrap bc
- # Hardware
- lm_sensors lshw
- # Network
- curl wget git rsync inetutils netcat
- # Files
- vim-full nnn
- # Archive formats
- gnutar p7zip zip unzip rar unrar
- ];
-
- programs = {
- gnupg.agent = {
- enable = true;
- enableSSHSupport = true;
- pinentryPackage = pkgs.pinentry-tty;
- };
- };
-}
diff --git a/modules/server/cli-linux.nix b/modules/server/cli-linux.nix
new file mode 100644
index 0000000..46c9c04
--- /dev/null
+++ b/modules/server/cli-linux.nix
@@ -0,0 +1,59 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ bash
+ git
+ rlwrap # readline processing in non-readline cli apps
+ chrony # set system time from the internet
+
+ #== Editor/Player/File manager ==#
+ nnn
+ vim-full
+ moc # music on console
+
+ #== Hardware ==#
+ lshw
+ efibootmgr
+ screenfetch # better neofetch
+ lm_sensors # provides sensors, sensors-detects, isadump, ...
+ ddrescue # data recovery tool
+ usbutils # lsusb, ...
+
+ #== Processes ==#
+ htop
+ lsof # lists open files, mostly under /proc
+ iotop # IO utilisation per process
+
+ #== Network ==#
+ dnsutils
+ netcat
+ curl
+ ipfetch # neofetch but for your IP
+ vnstat # network statistics
+ inetutils # ftp, hostname, ifconfig, ping, telnet, traceroute, rexec, rcp, ...
+ wget # download http/https/ftp files
+ rsync # file transfering
+
+ #== HDD/SSD ==#
+ udisks # access and manipulate storage devices; udisksctl, ...
+
+ #== File systems ==#
+ parted # partition editor
+ dosfstools # dosfsck, mkfs.fat, mkfs.dos, ...
+ ntfs3g # NTFS driver
+
+ #== Archive files ==#
+ gnutar
+ p7zip
+ zip unzip
+ rar unrar
+ ];
+
+ programs = {
+ mtr.enable = true;
+ gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ pinentryPackage = pkgs.pinentry-tty;
+ };
+ };
+}
diff --git a/modules/server/cli-posix.nix b/modules/server/cli-posix.nix
new file mode 100644
index 0000000..7a639b3
--- /dev/null
+++ b/modules/server/cli-posix.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ # Multi-tool packages
+ busybox util-linux
+ # Specific tools
+ bc dash nawk ed cron tree
+ # (GNU) software development tools
+ gcc gnumake flex bison
+ ];
+}