393 lines
8.6 KiB
Nix
393 lines
8.6 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}:
|
|
let
|
|
inherit (config.mj) username;
|
|
firefox =
|
|
if (pkgs.stdenv.hostPlatform.system == "x86_64-linux") then pkgs.firefox-bin else pkgs.firefox;
|
|
brightness = pkgs.writeShellApplication {
|
|
name = "brightness";
|
|
text = builtins.readFile ./brightness;
|
|
};
|
|
open = pkgs.writeShellApplication {
|
|
name = "open";
|
|
text = ''exec ${pkgs.xdg-utils}/bin/xdg-open "$@"'';
|
|
};
|
|
in
|
|
{
|
|
imports = [
|
|
../physical
|
|
];
|
|
config = {
|
|
boot = {
|
|
kernelModules = [ "kvm-intel" ];
|
|
};
|
|
|
|
hardware = {
|
|
bluetooth = {
|
|
enable = true;
|
|
powerOnBoot = true;
|
|
};
|
|
};
|
|
|
|
systemd.slices."docker-low" = {
|
|
sliceConfig = {
|
|
CPUWeight = 1;
|
|
IOWeight = 1;
|
|
};
|
|
};
|
|
|
|
programs = {
|
|
firefox = {
|
|
enable = true;
|
|
package = firefox;
|
|
};
|
|
wireshark = {
|
|
enable = true;
|
|
package = pkgs.wireshark-qt;
|
|
};
|
|
};
|
|
|
|
mj.services.printing.enable = true;
|
|
|
|
mj.base.users.user.extraGroups = [
|
|
"adbusers"
|
|
"networkmanager"
|
|
"wireshark"
|
|
"docker"
|
|
];
|
|
|
|
services = {
|
|
blueman.enable = true;
|
|
udev.packages = [ pkgs.yubikey-personalization ];
|
|
gnome.gnome-keyring.enable = true;
|
|
openssh.settings.X11Forwarding = true;
|
|
|
|
pulseaudio = {
|
|
enable = true;
|
|
package = pkgs.pulseaudioFull;
|
|
};
|
|
|
|
logind = {
|
|
powerKey = "suspend";
|
|
powerKeyLongPress = "poweroff";
|
|
lidSwitchExternalPower = "ignore";
|
|
};
|
|
|
|
avahi = {
|
|
enable = true;
|
|
nssmdns4 = true;
|
|
openFirewall = true;
|
|
};
|
|
|
|
xserver = {
|
|
enable = true;
|
|
xkb = {
|
|
layout = "us,lt";
|
|
options = "grp:alt_shift_toggle";
|
|
};
|
|
|
|
desktopManager.xfce.enable = true;
|
|
windowManager.awesome.enable = true;
|
|
displayManager.lightdm.enable = true;
|
|
};
|
|
|
|
displayManager = {
|
|
defaultSession = lib.mkDefault "none+awesome";
|
|
autoLogin = {
|
|
enable = true;
|
|
user = username;
|
|
};
|
|
};
|
|
|
|
pipewire.enable = false;
|
|
|
|
};
|
|
|
|
programs = {
|
|
adb.enable = true;
|
|
slock.enable = true;
|
|
nm-applet.enable = true;
|
|
command-not-found.enable = false;
|
|
};
|
|
|
|
security.rtkit.enable = true;
|
|
|
|
networking.networkmanager.enable = true;
|
|
|
|
# wip put clight-gui to nixpkgs
|
|
#services.geoclue2 = {
|
|
# enable = true;
|
|
# enableWifi = true;
|
|
#};
|
|
#location.provider = "geoclue2";
|
|
|
|
virtualisation.docker = {
|
|
enable = true;
|
|
# https://github.com/docker/buildx/issues/1459
|
|
#daemon.settings.dns = [ "100.100.100.100" ];
|
|
daemon.settings = {
|
|
storage-driver = "btrfs";
|
|
registry-mirrors = [ "https://mirror.gcr.io" ];
|
|
|
|
exec-opts = [ "native.cgroupdriver=systemd" ];
|
|
cgroup-parent = "docker-low.slice";
|
|
};
|
|
};
|
|
|
|
fonts.packages = with pkgs; [
|
|
xkcd-font
|
|
];
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
# packages defined here
|
|
open
|
|
nicer
|
|
tmuxbash
|
|
brightness
|
|
|
|
f3 # flight-flash-fraud
|
|
gdb
|
|
ntp
|
|
vlc
|
|
sox
|
|
mpv
|
|
imv # image viewer
|
|
gimp
|
|
qemu
|
|
zlib
|
|
xclip
|
|
pdftk
|
|
scrot
|
|
tracy
|
|
mb2md # mailbox2maildir
|
|
cmake
|
|
typst
|
|
sioyek
|
|
(kazam.override {
|
|
python3Packages = pkgs.python311Packages;
|
|
}) # alternative to gtk-recordMyDesktop
|
|
x11vnc
|
|
yt-dlp
|
|
ffmpeg
|
|
tinycc
|
|
scrcpy
|
|
cheese
|
|
arandr
|
|
pandoc
|
|
evince
|
|
ioping
|
|
motion
|
|
gthumb
|
|
calibre
|
|
gparted
|
|
glabels-qt
|
|
scribus
|
|
gnumake
|
|
libwebp
|
|
librsvg
|
|
picocom
|
|
libheif
|
|
csvkit
|
|
mplayer
|
|
tcpflow
|
|
nautilus
|
|
smplayer
|
|
inkscape
|
|
hunspell
|
|
tigervnc
|
|
bsdgames
|
|
pstoedit
|
|
xss-lock
|
|
audacity
|
|
colordiff
|
|
trayscale
|
|
espeak-ng
|
|
man-pages
|
|
rox-filer
|
|
miniupnpc
|
|
v4l-utils
|
|
#nerdfonts
|
|
winetricks
|
|
shellcheck
|
|
virtualenv
|
|
imagemagick
|
|
#ventoy-full
|
|
ghostscript
|
|
pavucontrol
|
|
photocollage
|
|
libqalculate # qalc
|
|
qalculate-qt # qalculate
|
|
google-chrome
|
|
wirelesstools
|
|
poppler_utils
|
|
squashfsTools
|
|
joplin-desktop
|
|
aspellDicts.en
|
|
aspellDicts.lt
|
|
libreoffice-qt
|
|
graphicsmagick
|
|
magic-wormhole
|
|
signal-desktop
|
|
gnome-calendar
|
|
element-desktop
|
|
netsurf-browser
|
|
man-pages-posix
|
|
gnome-calculator
|
|
libsForQt5.okular
|
|
nvtopPackages.amd
|
|
age-plugin-yubikey
|
|
nvtopPackages.intel
|
|
hunspellDicts.en_US
|
|
samsung-unified-linux-driver
|
|
|
|
xdotool
|
|
xorg.xev
|
|
xorg.xeyes
|
|
xorg.lndir
|
|
xorg.xinit
|
|
|
|
(python3.withPackages (
|
|
ps: with ps; [
|
|
numpy
|
|
pyyaml
|
|
ipython
|
|
matplotlib
|
|
]
|
|
))
|
|
|
|
];
|
|
|
|
# https://discourse.nixos.org/t/nixos-rebuild-switch-upgrade-networkmanager-wait-online-service-failure/30746
|
|
systemd.services.NetworkManager-wait-online.enable = false;
|
|
|
|
home-manager.users.${username} =
|
|
{ pkgs, config, ... }:
|
|
{
|
|
imports = [ ./plasma.nix ];
|
|
xdg.configFile = {
|
|
"gdb/gdbinit".text = ''
|
|
set style address foreground yellow
|
|
set style function foreground cyan
|
|
set style string foreground magenta
|
|
'';
|
|
};
|
|
|
|
programs = {
|
|
ghostty = {
|
|
enable = true;
|
|
installVimSyntax = true;
|
|
enableBashIntegration = true;
|
|
settings = {
|
|
theme = "iTerm2 Default";
|
|
command = lib.getExe pkgs.tmuxbash;
|
|
window-decoration = false;
|
|
gtk-single-instance = true;
|
|
font-feature = [
|
|
"-calt"
|
|
"-liga"
|
|
"-dlig"
|
|
];
|
|
};
|
|
};
|
|
|
|
};
|
|
|
|
services = {
|
|
cbatticon.enable = true;
|
|
blueman-applet.enable = true;
|
|
|
|
syncthing.tray = {
|
|
enable = true;
|
|
#extraOptions = ["--wait"];
|
|
};
|
|
|
|
pasystray = {
|
|
enable = true;
|
|
extraOptions = [
|
|
"--key-grabbing"
|
|
"--notify=all"
|
|
];
|
|
};
|
|
|
|
gpg-agent = {
|
|
enable = true;
|
|
enableSshSupport = true;
|
|
pinentry.package = pkgs.pinentry-gtk2;
|
|
};
|
|
|
|
screen-locker = {
|
|
enable = true;
|
|
xautolock.enable = false;
|
|
lockCmd = ''${pkgs.bash}/bin/bash -c "${pkgs.coreutils}/bin/sleep 0.2; ${pkgs.xorg.xset}/bin/xset dpms force off; /run/wrappers/bin/slock"'';
|
|
};
|
|
};
|
|
|
|
# https://github.com/nix-community/home-manager/issues/2064
|
|
systemd.user.targets.tray = {
|
|
Unit = {
|
|
Description = "Home Manager System Tray";
|
|
Requires = [ "graphical-session-pre.target" ];
|
|
};
|
|
};
|
|
|
|
# thanks K900
|
|
gtk = {
|
|
enable = true;
|
|
theme = {
|
|
package = pkgs.plasma5Packages.breeze-gtk;
|
|
name = "Breeze";
|
|
};
|
|
cursorTheme = {
|
|
package = pkgs.plasma5Packages.breeze-icons;
|
|
name = "Breeze_Snow";
|
|
};
|
|
iconTheme = {
|
|
package = pkgs.papirus-icon-theme;
|
|
name = "Papirus-Dark";
|
|
};
|
|
gtk2 = {
|
|
configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
|
extraConfig = ''
|
|
gtk-alternative-button-order = 1
|
|
'';
|
|
};
|
|
gtk3.extraConfig = {
|
|
gtk-application-prefer-dark-theme = true;
|
|
gtk-decoration-layout = "icon:minimize,maximize,close";
|
|
};
|
|
gtk4.extraConfig = {
|
|
gtk-application-prefer-dark-theme = true;
|
|
gtk-decoration-layout = "icon:minimize,maximize,close";
|
|
};
|
|
};
|
|
|
|
mj.plasma.kconfig = {
|
|
kdeglobals = {
|
|
General.ColorScheme = "ArcDark";
|
|
Icons.Theme = "Papirus-Dark";
|
|
KDE.widgetStyle = "Breeze";
|
|
};
|
|
plasmarc.Theme.name = "Arc-Dark";
|
|
kscreenlockerrc.Greeter = {
|
|
Theme = "com.github.varlesh.arc-dark";
|
|
};
|
|
ksplashrc.KSplash = {
|
|
Engine = "KSplashQML";
|
|
Theme = "com.github.varlesh.arc-dark";
|
|
};
|
|
kwinrc."org.kde.kdecoration2" = {
|
|
library = "org.kde.kwin.aurorae";
|
|
theme = "__aurorae__svg__Arc-Dark";
|
|
};
|
|
kcminputrc.Mouse.cursorTheme = "Breeze_Snow";
|
|
# don't mess with GTK settings
|
|
kded5rc."Module-gtkconfig".autoload = false;
|
|
};
|
|
};
|
|
};
|
|
}
|