diff options
| Commit | 13ceb5f40cb230f178ac05ca15933fef2e6cc02f (patch) | |
|---|---|---|
| Author | 2025-12-28 17:48:33 +0200 | |
| Committer | 2025-12-28 17:58:08 +0200 | |
| Files | 5e1dce541ead9d0e8a93505a968c74f81a8822c2 /modules | |
| nix-13ceb5f40cb230f178ac05ca15933fef2e6cc02f.tar nix-13ceb5f40cb230f178ac05ca15933fef2e6cc02f.tar.gz nix-13ceb5f40cb230f178ac05ca15933fef2e6cc02f.zip | ||
| Parent | 56facfa7f5de72f15f409f8d7d5ad522317ef555 (diff) | |
feat(modules)!: Complete reorganisation and renaming of module groups
42 files changed, 561 insertions, 270 deletions
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 + ]; +} |
