diff options
| Commit | d0caf89ffc06104cb9c077c299a96b778d5db79b (patch) | |
|---|---|---|
| Author | 2023-11-29 19:44:57 +0200 | |
| Committer | 2023-11-29 19:44:57 +0200 | |
| Files | 1f4850021bc37dd9a0531206e60fcf795b343461 /packages | |
| nix-d0caf89ffc06104cb9c077c299a96b778d5db79b.tar nix-d0caf89ffc06104cb9c077c299a96b778d5db79b.tar.gz nix-d0caf89ffc06104cb9c077c299a96b778d5db79b.zip | ||
| Parent | 3c2f7173c7620e14ef349ab36df14bf07f109d66 (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.nix | 271 |
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 ]; }; } |
