204 lines
6.2 KiB
Nix
204 lines
6.2 KiB
Nix
{ lib, config, pkgs, zen-browser, hyprland, inputs, ... }:
|
|
let
|
|
unstable = import <nixpkgs> {
|
|
overlays = pkgs.overlays;
|
|
};
|
|
in
|
|
{
|
|
imports =
|
|
[
|
|
./environment.nix
|
|
./hardware-configuration.nix
|
|
|
|
./modules/display.nix
|
|
./modules/files.nix
|
|
./modules/fonts.nix
|
|
./modules/network.nix
|
|
./modules/nix.nix
|
|
./modules/security.nix
|
|
./modules/users.nix
|
|
./modules/wm.nix
|
|
];
|
|
|
|
programs.hyprland = {
|
|
enable = true;
|
|
xwayland.enable = true;
|
|
# package = pkgs.hyprland;
|
|
# package = hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
|
# portalPackage = pkgs.xdg-desktop-portal-hyprland;
|
|
# portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
|
};
|
|
|
|
# Redirect syslog to TTY12
|
|
systemd.services."systemd-journald-tty12" = {
|
|
description = "Forward syslog to TTY12";
|
|
serviceConfig = {
|
|
ExecStart = "/bin/sh -c 'journalctl -f > /dev/tty12'";
|
|
};
|
|
wantedBy = [ "multi-user.target" ];
|
|
};
|
|
|
|
# Enable touchpad support (enabled default in most desktopManager).
|
|
# services.xserver.libinput.enable = true;
|
|
|
|
systemd.services.StartInputRemapperDaemonAtLogin = {
|
|
enable = false;
|
|
description = "Start input-remapper daemon after login";
|
|
unitConfig = {
|
|
Type = "simple";
|
|
};
|
|
script = lib.getExe(pkgs.writeShellApplication {
|
|
name = "start-input-mapper-daemon";
|
|
runtimeInputs = with pkgs; [input-remapper procps su];
|
|
text = ''
|
|
until pgrep -u wayne; do
|
|
sleep 1
|
|
done
|
|
sleep 2
|
|
until [ $(pgrep -c -u root "input-remapper") -eq 4 ]; do
|
|
input-remapper-service&
|
|
sleep 1
|
|
input-remapper-helper&
|
|
sleep 1
|
|
done
|
|
su wayne -c "input-remapper-control --command stop-all"
|
|
su wayne -c "input-remapper-control --command autoload"
|
|
sleep infinity
|
|
'';
|
|
});
|
|
wantedBy = [ "default.target" ];
|
|
};
|
|
|
|
# Possible weird bug
|
|
# systemd.services.ReloadInputRemapperAfterSleep = {
|
|
# enable = true;
|
|
# description = "Reload input-remapper config after sleep";
|
|
# after = [ "suspend.target" ];
|
|
# unitConfig = {
|
|
# Type = "forking";
|
|
# };
|
|
# serviceConfig.User = "wayne";
|
|
# script = lib.getExe(pkgs.writeShellApplication {
|
|
# name = "reload-input-mapper-config";
|
|
# runtimeInputs = with pkgs; [input-remapper ps gawk];
|
|
# text = ''
|
|
# until [[ $(ps aux | awk '$11~"input-remapper" && $12="<defunct>" {print $0}' | wc -l) -eq 0 ]]; do
|
|
# input-remapper-control --command stop-all
|
|
# input-remapper-control --command autoload
|
|
# sleep 1
|
|
# done
|
|
# '';
|
|
# });
|
|
# wantedBy = [ "suspend.target" ];
|
|
# };
|
|
|
|
# Install firefox.
|
|
programs.firefox.enable = true;
|
|
programs.zsh.enable = true;
|
|
programs.nix-ld.enable = true;
|
|
|
|
# programs.nix-ld.libraries = with pkgs; [
|
|
# libusb
|
|
# kdePackages.qt5compat kdePackages.full
|
|
# libsForQt5.full
|
|
# libGL
|
|
# gcc glib xorg.libXext
|
|
# ];
|
|
|
|
virtualisation.docker = {
|
|
enable = true;
|
|
rootless = {
|
|
enable = true;
|
|
setSocketVariable = true;
|
|
};
|
|
daemon.settings = {
|
|
userland-proxy = false;
|
|
ipv6 = false;
|
|
};
|
|
};
|
|
|
|
services = {
|
|
printing.enable = true;
|
|
ollama = {
|
|
enable = true;
|
|
acceleration = "cuda";
|
|
models = "/var/lib/ollama/models";
|
|
environmentVariables = {};
|
|
};
|
|
input-remapper = {
|
|
enable = true;
|
|
enableUdevRules = true;
|
|
package = pkgs.input-remapper;
|
|
serviceWantedBy = [ "graphical.target" ];
|
|
};
|
|
# dbus.implementation = "dbus"; # The option `services.dbus.implementation' has conflicting definition values: - In `/nix/store/60sn02zhawl3kwn0r515zff3h6hg6ydz-source/nixos/modules/programs/wayland/uwsm.nix': "broker"
|
|
udisks2.enable = true;
|
|
logrotate.enable = true;
|
|
openssh = {
|
|
enable = true;
|
|
ports = [ 22 ];
|
|
settings = {
|
|
PasswordAuthentication = true;
|
|
AllowUsers = [ "wayne" ]; # Allows all users by default. Can be [ "user1" "user2" ]
|
|
UseDns = true;
|
|
X11Forwarding = false;
|
|
PermitRootLogin = "no"; # "yes", "without-password", "prohibit-password", "forced-commands-only", "no"
|
|
};
|
|
};
|
|
# kmonad = {
|
|
# enable = true;
|
|
# keyboards = {
|
|
# myKMonadOutput = {
|
|
# device = "/dev/input/by-id/usb-Hanvon_Ugee_Shortcut_Remote_000000000000000-event-kbd";
|
|
# config = builtins.readFile /home/wayne/.config/kmonad/hanvon-ugee.kbd;
|
|
# };
|
|
# };
|
|
# };
|
|
avahi = {
|
|
enable = true;
|
|
nssmdns4 = true;
|
|
openFirewall = true;
|
|
};
|
|
pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
# If you want to use JACK applications, uncomment this
|
|
#jack.enable = true;
|
|
|
|
# use the example session manager (no others are packaged yet so this is enabled by default,
|
|
# no need to redefine it in your config for now)
|
|
#media-session.enable = true;
|
|
};
|
|
};
|
|
|
|
# List packages installed in system profile. To search, run:
|
|
# $ nix search wget
|
|
environment.systemPackages = with pkgs; [
|
|
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
|
wget git sshfs
|
|
pciutils
|
|
zsh
|
|
|
|
cryptsetup
|
|
home-manager
|
|
wpa_supplicant
|
|
lynx
|
|
nix-index nix-prefetch-scripts nix-prefetch
|
|
docker_27 docker-compose
|
|
|
|
direnv nix-direnv
|
|
# xdg-desktop-portal-hyprland
|
|
clinfo glxinfo vulkan-tools wayland-utils wl-clipboard
|
|
kdePackages.kdeplasma-addons kdePackages.qtstyleplugin-kvantum kdePackages.full kdePackages.qtwebengine kdePackages.qtpositioning kdePackages.qtlocation
|
|
kdePackages.ark plasma5Packages.kwallet-pam kdePackages.dolphin kdePackages.kwallet kdePackages.kwalletmanager kdePackages.konsole
|
|
evtest input-remapper dbus uwsm # keyd
|
|
cudaPackages.cudatoolkit # cudaPackages.cuda-samples
|
|
cifs-utils mesa libGL udiskie
|
|
|
|
# steam-run
|
|
];
|
|
system.stateVersion = "24.05"; # Did you read the comment?
|
|
}
|