Summary Files Commits Branches @commit @diff @stats
path: root / packages
diff options
context:
space:
mode:
Commitd0caf89ffc06104cb9c077c299a96b778d5db79b (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-11-29 19:44:57 +0200
Committer
 Syndamia <kamen@syndamia.com>
2023-11-29 19:44:57 +0200
Files1f4850021bc37dd9a0531206e60fcf795b343461 /packages
nix-d0caf89ffc06104cb9c077c299a96b778d5db79b.tar
nix-d0caf89ffc06104cb9c077c299a96b778d5db79b.tar.gz
nix-d0caf89ffc06104cb9c077c299a96b778d5db79b.zip
Parent3c2f7173c7620e14ef349ab36df14bf07f109d66 (diff)
(all) Overhaul, moved all package and their configs into packages/default.nix, reordered configuration.nix
1 files changed, 253 insertions, 18 deletions
-rw-r--r--packages/default.nix271
diff --git a/packages/default.nix b/packages/default.nix
index 2ee094f..5a307e1 100644
--- a/packages/default.nix
+++ b/packages/default.nix
@@ -1,6 +1,6 @@
-{ pkgs, ... }: {
- cli-core = {
- list = with pkgs; [
+{
+ cli-apps = { pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
# Hardware managing apps
pipewire libinput lm_sensors lshw usbutils chrony iotop bluez
parted dosfstools mtpfs ntfs3g squashfsTools
@@ -9,34 +9,269 @@
# Working with files
vim-full inotify-tools lsof tree
# General usage
- htop rlwrap bc ddrescue cron
+ zsh htop rlwrap bc ddrescue cron
+ # Working with files
+ ffmpeg img2pdf pdftk imagemagick pngcrush jpegoptim optipng gd kid3 pandoc libisoburn
+ # Archive formats
+ p7zip dpkg cdrtools zip unzip rar unrar rpm
+ # Misc
+ neofetch exa moc lazygit aspell
];
- zsh = {
- ref = pkgs.zsh;
- programs.zsh.enable = true;
- environment.shells = with pkgs; [ zsh ];
+ # zsh
+ programs.zsh.enable = true;
+ environment.shells = with pkgs; [ zsh ];
+
+ # bluez
+
+ programs = {
+ mtr.enable = true;
+ gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
};
+ };
+
+
+
+ gui-apps = { pkgs, ... }:
+ let
+ tex = (pkgs.texlive.combine {
+ inherit (pkgs.texlive) scheme-medium
+ babel-bulgarian cyrillic cancel enumitem;
+ });
+ in {
+ environment.systemPackages = with pkgs; [
+ terminator
+ obs-studio qbittorrent speedcrunch
+ rtl-sdr gqrx sdrangel xed-editor
+ devilspie2 sxhkd
+ # Settings and backup tools
+ feh xterm arandr pavucontrol blueberry piper
+ # Tray
+ copyq flameshot barrier redshift
+ # File openers/players
+ audacious mpv libreoffice
+ # File/image/audio editors
+ gimp inkscape texmaker tex krita ardour
+ # Web (app) clients
+ brave firefox bitwarden nextcloud-client thunderbird birdtray
+ # System
+ peek gparted
+ # Virtualization
+ virt-manager libvirt qemu_kvm kvmtool qemu_full
+ ];
+
+ programs.firefox.enable = true;
+
+ # libvirt
+ virtualisation.libvirtd.enable = true;
+
+ # docker
+ virtualisation.docker.enable = true;
+
+ # rtl-sdr
+ security.rtkit.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;
+ };
+ };
+ };
+ };
- bluez = {
- ref = pkgs.bluez;
- hardware.bluetooth.enable = true;
+
+
+ dev = { pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ gnumake
+ lowdown wakatime cloc go php fontforge
+ # C/C++
+ clang glibc gcc gdb valgrind pugixml cmake libusb libusb-compat-0_1
+ # .NET
+ dotnet-sdk mono
+ # Python
+ python3Minimal
+ # Android
+ android-tools heimdall
+ # Networking
+ wireshark gns3-gui gns3-server dynamips
+ # awk
+ gawk mawk nawk
+ # DB
+ mysql sqlitebrowser flyway
+ # Functional
+ racket ghc sbcl
+ # Compilers
+ flex bison
+ ];
+ };
+
+
+
+ web-server = { pkgs, ... }: {
+ environment.systemPackages = with pkgs; [ apacheHttpd ];
+
+ services.httpd = {
+ enable = true;
+
+ virtualHosts = {
+ syndamiadotcom-local = {
+ hostName = "synd.local";
+ listen = [ { port = 80; } ];
+ documentRoot = "/home/kamen/Programming/GitLab-repos/syndamiadotcom/website";
+ };
+ };
};
};
- power-control = {
- for.type = [ "laptop" ];
- list = with pkgs; [
+
+ laptop_control = { pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ # Power
powertop upower acpid tlp
+ # Other
+ brightnessctl libinput-gestures epkowa
+ ];
+
+ services = {
+ upower.enable = true;
+ tlp.enable = true;
+ };
+ };
+
+
+
+ desktop_archiving = { pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ timeshift
+ ];
+ };
+
+
+
+ openbox-de = { pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ # Essential libs
+ dbus cairo libnotify gtk3 yad gnome.zenity gnome.gvfs gmtp at-spi2-atk
+ # Main apps and their config apps
+ # window manager, compositor, taskbar, notifications, app menu, lockscreen, session manager
+ openbox lxappearance obconf picom 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
+ # Tray
+ libappindicator networkmanagerapplet pnmixer
+ # File openers
+ evince gnome.eog gnome.file-roller cinnamon.nemo-with-extensions gnome.seahorse
+ # System
+ gnome.gnome-system-monitor udisks gnome.gnome-disk-utility baobab gnome.simple-scan
];
+
+ security.polkit.enable = true;
+
+ programs = {
+ dconf.enable = true;
+ gnome-disks.enable = true;
+ };
+
+ services = {
+ dbus.packages = with pkgs; [ gnome2.GConf ];
+ udev.packages = with pkgs; [ gnome.gnome-settings-daemon ];
+
+ udisks2.enable = true; # gnome-disks disk access
+ gnome.gnome-keyring.enable = true;
+ gvfs.enable = true; # MTP (for nemo)
+
+ logind.extraConfig = ''
+ InhibitDelayMaxSec=1
+ HoldoffTimeoutSec=1s
+ HandlePowerKey=poweroff'';
+ };
+
+ services.xserver = {
+ enable = true;
+ # Window manager
+ windowManager.openbox.enable = true;
+
+ xautolock = {
+ enable = true;
+ time = 15;
+ locker = "/home/kamen/.a/sys/lock.sh";
+ extraOptions = [ "-detectsleep" "-secure" ];
+ };
+ };
+
+ systemd.services = {
+ lockscreen = {
+ wantedBy = [ "sleep.target" ];
+ before = [ "suspend.target" ];
+ serviceConfig = {
+ User = "kamen";
+ Environment = [ "DISPLAY=:0" "PATH=/run/current-system/sw/bin" "DBUS_SESSION_BUS_ADDRESS=\"unix:path=/run/user/1000/bus\"" ];
+ ExecStart = "/home/kamen/.a/sys/lock.sh";
+ };
+ };
+ };
+
+ systemd.user.services = {
+ lxqt-policykit = {
+ description = "lxqt-policykit runner";
+ wantedBy = [ "graphical-session.target" ];
+ wants = [ "graphical-session.target" ];
+ after = [ "graphical-session.target" ];
+ serviceConfig = {
+ Type = "simple";
+ ExecStart = "${pkgs.lxqt.lxqt-policykit}/bin/lxqt-policykit-agent";
+ Restart = "on-failure";
+ RestartSec = 1;
+ TimeoutStopSec = 10;
+ };
+ };
+
+ # This is kinda gross, because the xautolock service is already defined and configured
+ # inside services.xserver.xautolock, but it's the only way I know
+ xautolock.serviceConfig.Environment = [ "DISPLAY=:0" "PATH=/run/current-system/sw/bin" ];
+ };
};
- thinkpad = {
- for.name = [ "juno" ];
- list = with pkgs; [
- thinkfan xorg.xf86inputsynaptics
+
+ general-settings = { pkgs, ... }: {
+ nixpkgs.config.allowUnfree = true;
+
+ services.xserver = {
+ # xkbmap
+ layout = "us,bg"; # TODO us,bg-custom
+ xkbVariant = ",phonetic";
+ xkbOptions = "grp:alt_shift_toggle,lv3:switch,caps:escape";
+
+ # touchpad support
+ libinput = {
+ enable = true;
+ touchpad.naturalScrolling = true;
+ };
+ };
+ };
+
+
+
+ fonts = { pkgs, ... }: {
+ fonts.fonts = with pkgs; [
+ # Note to self: DO NOT INSTALL ADOBE FONTS!
+ corefonts vistafonts liberation_ttf helvetica-neue-lt-std noto-fonts noto-fonts-emoji cm_unicode symbola
+ # CJK
+ noto-fonts-cjk arphic-ukai arphic-uming takao wqy_microhei wqy_zenhei
];
};
}