uuuupdate

This commit is contained in:
Ranomier 2024-10-06 02:44:35 +02:00
parent 6e143facef
commit 63c50cfa2a
27 changed files with 314 additions and 257 deletions

133
flake.nix
View file

@ -2,86 +2,91 @@
###### ######
inputs = { inputs = {
###### ######
# NOTE: Replace "nixos-23.11" with that which is in system.stateVersion of
# configuration.nix. You can also use latter versions if you wish to
# upgrade.
# INFO: Use github:org/repo/?ref=<tag> to pin releases.
# Main nix package repository # Main nix package repository
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
# ready made hardware configurations. e.G.: Power saving home-manager = {
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; url = "github:nix-community/home-manager/release-24.05";
inputs.nixpkgs.follows = "nixpkgs";
};
# NixOS unstable channel # ready made hardware configurations. e.G.: Power saving
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixos-hardware = {
url = "github:NixOS/nixos-hardware/master";
};
# for managing flatpaks, like which ones are installed and which not # for managing flatpaks, like which ones are installed and which not
nix-flatpak = { nix-flatpak = {
url = "github:gmodena/nix-flatpak"; url = "github:gmodena/nix-flatpak";
}; };
home-manager = { # NixOS unstable channel
url = "github:nix-community/home-manager/release-24.05"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
####### #######
outputs = outputs =
####### #######
{ self, nixpkgs, nixos-hardware, nixpkgs-unstable, nix-flatpak, home-manager, ... } @ inputs: {
let self,
# Supported systems for your flake packages, shell, etc. nixpkgs,
systems = [ nixos-hardware,
"aarch64-linux" nixpkgs-unstable,
"x86_64-linux" nix-flatpak,
]; home-manager,
# This is a function that generates an attribute by calling a function you ...
# pass to it, with each system as an argument } @ inputs: let
forAllSystems = nixpkgs.lib.genAttrs systems; # Supported systems for your flake packages, shell, etc.
in { systems = [
# Your custom packages # "aarch64-linux"
# Accessible through 'nix build', 'nix shell', etc "x86_64-linux"
#packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); ];
# Formatter for your nix files, available through 'nix fmt'
# Other options beside 'alejandra' include 'nixpkgs-fmt' # This is a function that generates an attribute by calling a function you
#formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra); # pass to it, with each system as an argument
forAllSystems = nixpkgs.lib.genAttrs systems;
# Your custom packages and modifications, exported as overlays in {
overlays = import ./overlays {inherit inputs;}; # Your custom packages
# Reusable nixos modules you might want to export # Accessible through 'nix build', 'nix shell', etc
# These are usually stuff you would upstream into nixpkgs #packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
nixosModules = import ./modules/nixos; # Formatter for your nix files, available through 'nix fmt'
# Reusable home-manager modules you might want to export # Other options beside 'alejandra' include 'nixpkgs-fmt'
# These are usually stuff you would upstream into home-manager formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
homeManagerModules = import ./modules/home-manager;
# Your custom packages and modifications, exported as overlays
# NixOS configuration entrypoint overlays = import ./overlays {inherit inputs;};
# Available through 'nixos-rebuild --flake .#your-hostname' # Reusable nixos modules you might want to export
nixosConfigurations = { # These are usually stuff you would upstream into nixpkgs
# FIXME replace with your hostname nixosModules = import ./modules/nixos;
crocoite = nixpkgs.lib.nixosSystem { # Reusable home-manager modules you might want to export
specialArgs = {inherit inputs;}; # These are usually stuff you would upstream into home-manager
modules = [ homeManagerModules = import ./modules/home-manager;
# > Our main nixos configuration file <
./hosts/crocoite.nix # NixOS configuration entrypoint
]; # Available through 'nixos-rebuild --flake .#your-hostname'
}; nixosConfigurations = {
crocoite = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
# > Our main nixos configuration file <
./hosts/crocoite.nix
];
}; };
## Standalone home-manager configuration entrypoint
## Available through 'home-manager --flake .#your-username@your-hostname'
#homeConfigurations = {
# # FIXME replace with your username@hostname
# "your-username@your-hostname" = home-manager.lib.homeManagerConfiguration {
# pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
# extraSpecialArgs = {inherit inputs;};
# modules = [
# # > Our main home-manager configuration file <
# ./home-manager/home.nix
# ];
# };
#};
}; };
## Standalone home-manager configuration entrypoint
## Available through 'home-manager --flake .#your-username@your-hostname'
#homeConfigurations = {
# # FIXME replace with your username@hostname
# "your-username@your-hostname" = home-manager.lib.homeManagerConfiguration {
# pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
# extraSpecialArgs = {inherit inputs;};
# modules = [
# # > Our main home-manager configuration file <
# ./home-manager/home.nix
# ];
# };
#};
};
} }

View file

@ -1,33 +1,36 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
imports = boot.initrd.availableKernelModules = ["nvme" "ehci_pci" "xhci_pci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
[ (modulesPath + "/installer/scan/not-detected.nix") boot.initrd.kernelModules = [];
]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
boot.initrd.availableKernelModules = [ "nvme" "ehci_pci" "xhci_pci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; fileSystems."/" = {
boot.initrd.kernelModules = [ ]; device = "/dev/disk/by-uuid/c772918e-3832-45ae-8c97-05b3d837ed8b";
boot.kernelModules = [ "kvm-amd" ]; fsType = "ext4";
boot.extraModulePackages = [ ]; };
fileSystems."/" =
{ device = "/dev/disk/by-uuid/c772918e-3832-45ae-8c97-05b3d837ed8b";
fsType = "ext4";
};
boot.initrd.luks.devices."luks-3b194756-e29b-425a-b088-0a0468840011".device = "/dev/disk/by-uuid/3b194756-e29b-425a-b088-0a0468840011"; boot.initrd.luks.devices."luks-3b194756-e29b-425a-b088-0a0468840011".device = "/dev/disk/by-uuid/3b194756-e29b-425a-b088-0a0468840011";
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/5DF2-A721"; device = "/dev/disk/by-uuid/5DF2-A721";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ]; options = ["fmask=0022" "dmask=0022"];
}; };
swapDevices = [ ];
swapDevices = [];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View file

@ -1,4 +1,9 @@
{ pkgs, overlays, inputs, ... }: { {
pkgs,
overlays,
inputs,
...
}: {
#MANPAGER='nvim +Man!' #MANPAGER='nvim +Man!'
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
@ -15,10 +20,10 @@
#nixpkgs.overlays = [ overlays.unstable-packages ]; #nixpkgs.overlays = [ overlays.unstable-packages ];
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = ["nix-command" "flakes"];
# https://lix.systems/ Lix is a modern, delicious implementation of the Nix package manager, # https://lix.systems/ Lix is a modern, delicious implementation of the Nix package manager,
# focused on correctness, usability, and growth # focused on correctness, usability, and growth
# and committed to doing right by its community. # and committed to doing right by its community.
nix.package = pkgs.lix; nix.package = pkgs.lix;
imports = [ imports = [
@ -41,6 +46,7 @@
../modules/sec_auth/ssh.nix ../modules/sec_auth/ssh.nix
../modules/software/software.nix ../modules/software/software.nix
../modules/software/virt.nix
../modules/software/game.nix ../modules/software/game.nix
../modules/software/audio_video.nix ../modules/software/audio_video.nix
../modules/software/obs-studio.nix ../modules/software/obs-studio.nix

View file

@ -1,5 +1,8 @@
{ config, pkgs, ... }: {
{ config,
pkgs,
...
}: {
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.systemd-boot.configurationLimit = 20; boot.loader.systemd-boot.configurationLimit = 20;

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { {pkgs, ...}: {
boot = let boot = let
theme_name = "deus_ex"; theme_name = "deus_ex";
in { in {
@ -11,7 +11,7 @@
themePackages = with pkgs; [ themePackages = with pkgs; [
# By default we would install all themes # By default we would install all themes
(adi1090x-plymouth-themes.override { (adi1090x-plymouth-themes.override {
selected_themes = [ theme_name ]; selected_themes = [theme_name];
}) })
]; ];
}; };
@ -32,6 +32,5 @@
# It's still possible to open the bootloader list by pressing any key # It's still possible to open the bootloader list by pressing any key
# It will just not appear on screen unless a key is pressed # It will just not appear on screen unless a key is pressed
loader.timeout = 0; loader.timeout = 0;
}; };
} }

View file

@ -1,5 +1,8 @@
{ pkgs, lib, ... }: {
{ pkgs,
lib,
...
}: {
# Configure network proxy if necessary # Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
@ -30,8 +33,8 @@
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
# Open ports in the firewall. # Open ports in the firewall.
#networking.firewall.allowedTCPPorts = [ 8080 ]; networking.firewall.allowedTCPPorts = [8080];
#networking.firewall.allowedUDPPorts = [ 8080 ]; networking.firewall.allowedUDPPorts = [8080];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;

View file

@ -1,31 +1,60 @@
{ lib, ... }: { {lib, ...}: {
services.flatpak.enable = true; services.flatpak.enable = true;
services.flatpak.update.auto.enable = false; services.flatpak.update.auto.enable = false;
services.flatpak.uninstallUnmanaged = true; services.flatpak.uninstallUnmanaged = true;
services.flatpak.remotes = lib.mkOptionDefault [ services.flatpak.remotes = lib.mkOptionDefault [
{ name = "flathub-beta"; {
location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo"; } name = "flathub-beta";
{ name = "flathub"; location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo";
location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; } }
{
name = "flathub";
location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
}
]; ];
services.flatpak.packages = [ services.flatpak.packages = [
{ origin = "flathub"; appId = "com.github.tchx84.Flatseal"; } # flatpak permisssion gui {
{ origin = "flathub"; appId = "com.mojang.Minecraft"; } # Lego for adults origin = "flathub";
{ origin = "flathub"; appId = "de.schmidhuberj.DieBahn"; } # Public transport connection viewer appId = "com.github.tchx84.Flatseal";
{ origin = "flathub"; appId = "com.github.hugolabe.Wike"; } # Wikpedia, but in nice } # flatpak permisssion gui
{
origin = "flathub";
appId = "com.mojang.Minecraft";
} # Lego for adults
{
origin = "flathub";
appId = "de.schmidhuberj.DieBahn";
} # Public transport connection viewer
{
origin = "flathub";
appId = "com.github.hugolabe.Wike";
} # Wikpedia, but in nice
#{ origin = "flathub"; appId = "com.jeffser.Alpaca"; } # Local chat AI #{ origin = "flathub"; appId = "com.jeffser.Alpaca"; } # Local chat AI
{ origin = "flathub"; appId = "io.gpt4all.gpt4all"; } # Local chat AI {
{ origin = "flathub"; appId = "md.obsidian.Obsidian"; } # note taking and brain organising origin = "flathub";
appId = "io.gpt4all.gpt4all";
} # Local chat AI
{
origin = "flathub";
appId = "md.obsidian.Obsidian";
} # note taking and brain organising
# messenger # messenger
{ origin = "flathub"; appId = "org.signal.Signal"; } {
{ origin = "flathub"; appId = "org.telegram.desktop"; } origin = "flathub";
{ origin = "flathub"; appId = "dev.vencord.Vesktop"; } # More usable discord for linux appId = "org.signal.Signal";
}
{
origin = "flathub";
appId = "org.telegram.desktop";
}
{
origin = "flathub";
appId = "dev.vencord.Vesktop";
} # More usable discord for linux
#"com.obsproject.Studio" #this is another way to write it #"com.obsproject.Studio" #this is another way to write it
]; ];
} }

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
# Enable common container config files in /etc/containers # Enable common container config files in /etc/containers
virtualisation.containers.enable = true; virtualisation.containers.enable = true;
virtualisation = { virtualisation = {
@ -12,7 +11,7 @@
dockerSocket.enable = true; dockerSocket.enable = true;
# Required for containers under podman-compose to be able to talk to each other. # Required for containers under podman-compose to be able to talk to each other.
defaultNetwork.settings.dns_enabled = true; defaultNetwork.settings.dns_enabled = true;
}; };
}; };

View file

@ -1,10 +1,13 @@
{ config, pkgs, ... }: { {
config,
pkgs,
...
}: {
# creates the file /etc/current-system-packages which then contains all installed packages and versions # creates the file /etc/current-system-packages which then contains all installed packages and versions
environment.etc."current-system-packages".text = environment.etc."current-system-packages".text = let
let packages = builtins.map (p: "${p.name}") config.environment.systemPackages;
packages = builtins.map (p: "${p.name}") config.environment.systemPackages; sortedUnique = builtins.sort builtins.lessThan (pkgs.lib.lists.unique packages);
sortedUnique = builtins.sort builtins.lessThan (pkgs.lib.lists.unique packages); formatted = builtins.concatStringsSep "\n" sortedUnique;
formatted = builtins.concatStringsSep "\n" sortedUnique; in
in formatted;
formatted;
} }

View file

@ -1,9 +1,8 @@
# TODO refine firejail it seems that / is not shielded enough and app armor does not work # TODO refine firejail it seems that / is not shielded enough and app armor does not work
{ pkgs, ... }: {pkgs, ...}: {
{
programs.firejail = { programs.firejail = {
enable = true; enable = true;
wrappedBinaries = { wrappedBinaries = {
firefox = { firefox = {
executable = "${pkgs.firefox}/bin/firefox"; executable = "${pkgs.firefox}/bin/firefox";
profile = "${pkgs.firejail}/etc/firejail/firefox.profile"; profile = "${pkgs.firejail}/etc/firejail/firefox.profile";
@ -51,11 +50,10 @@
}; };
}; };
environment.etc = { environment.etc = {
"firejail/brave.local".text = '' "firejail/brave.local".text = ''
whitelist ''${HOME}/.config/brave whitelist ''${HOME}/.config/brave
whitelist ''${HOME}/.local whitelist ''${HOME}/.local
whitelist ''${HOME}/Downloads whitelist ''${HOME}/Downloads
''; '';
}; };
} }

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
# Enable touchpad support (enabled default in most desktopManager). # Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true; # services.xserver.libinput.enable = true;
services.greetd = { services.greetd = {
@ -7,14 +6,14 @@
vt = 7; vt = 7;
settings = { settings = {
default_session = { default_session = {
command = ''${pkgs.greetd.tuigreet}/bin/tuigreet \ command = '' ${pkgs.greetd.tuigreet}/bin/tuigreet \
--time \ --time \
--time-format '%Y-%m-%dT%H:%M:%S %A' \ --time-format '%Y-%m-%dT%H:%M:%S %A' \
--remember \ --remember \
--user-menu \ --user-menu \
--theme 'border=lightgreen;text=lightgreen;prompt=lightgreen;time=lightgreen;action=lightgreen;button=lightgreen;input=lightgreen' \ --theme 'border=lightgreen;text=lightgreen;prompt=lightgreen;time=lightgreen;action=lightgreen;button=lightgreen;input=lightgreen' \
--cmd hyprland''; --cmd hyprland'';
# removed elements from theme: container # removed elements from theme: container
user = "greeter"; user = "greeter";
}; };
}; };

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs.ssh = { programs.ssh = {
startAgent = true; startAgent = true;
enableAskPassword = true; enableAskPassword = true;
@ -18,7 +17,6 @@
lxqt.lxqt-openssh-askpass lxqt.lxqt-openssh-askpass
]; ];
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
# programs.mtr.enable = true; # programs.mtr.enable = true;

View file

@ -1,10 +1,9 @@
{ pkgs, ... }: {pkgs, ...}: {
{
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.ranomier = { users.users.ranomier = {
isNormalUser = true; isNormalUser = true;
description = "Ranomier"; description = "Ranomier";
extraGroups = [ "networkmanager" "wheel" ]; extraGroups = ["networkmanager" "wheel"];
#packages = with pkgs; []; #packages = with pkgs; [];
}; };
@ -23,14 +22,14 @@
# This is using a rec (recursive) expression to set and access XDG_BIN_HOME within the expression # This is using a rec (recursive) expression to set and access XDG_BIN_HOME within the expression
# For more on rec expressions see https://nix.dev/tutorials/first-steps/nix-language#recursive-attribute-set-rec # For more on rec expressions see https://nix.dev/tutorials/first-steps/nix-language#recursive-attribute-set-rec
environment.sessionVariables = rec { environment.sessionVariables = rec {
XDG_CACHE_HOME = "$HOME/.cache"; XDG_CACHE_HOME = "$HOME/.cache";
XDG_CONFIG_HOME = "$HOME/.config"; XDG_CONFIG_HOME = "$HOME/.config";
XDG_DATA_HOME = "$HOME/.local/share"; XDG_DATA_HOME = "$HOME/.local/share";
XDG_STATE_HOME = "$HOME/.local/state"; XDG_STATE_HOME = "$HOME/.local/state";
# Not officially in the specification # Not officially in the specification
XDG_BIN_HOME = "$HOME/.local/mybin"; XDG_BIN_HOME = "$HOME/.local/mybin";
PATH = [ PATH = [
"${XDG_BIN_HOME}" "${XDG_BIN_HOME}"
]; ];
}; };
@ -48,7 +47,6 @@
security.apparmor.enable = true; security.apparmor.enable = true;
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
# programs.mtr.enable = true; # programs.mtr.enable = true;

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
# Enable sound with pipewire. # Enable sound with pipewire.
hardware.pulseaudio.enable = false; hardware.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
@ -52,5 +51,7 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
helvum helvum
easyeffects easyeffects
]; pwvucontrol
lxqt.pavucontrol-qt
];
} }

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { {pkgs, ...}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
brave brave
]; ];

View file

@ -1,8 +1,8 @@
{ pkgs, ... }: { {pkgs, ...}: {
# The logical browser of choice # The logical browser of choice
programs.firefox.enable = true; programs.firefox.enable = true;
xdg.mime.defaultApplications = let xdg.mime.defaultApplications = let
browser_desktop_file = "firefox.desktop"; browser_desktop_file = "firefox.desktop";
in { in {
"text/html" = browser_desktop_file; "text/html" = browser_desktop_file;

View file

@ -1,6 +1,6 @@
{ pkgs, ... }: { {pkgs, ...}: {
#environment.systemPackages = with pkgs; [ ]; #environment.systemPackages = with pkgs; [ ];
# hardware.steam-hardware.enable = true; # Note that this is already enabled with programs.steam.enable = true; # hardware.steam-hardware.enable = true; # Note that this is already enabled with programs.steam.enable = true;
programs.steam = { programs.steam = {
enable = true; enable = true;
remotePlay.openFirewall = remotePlay.openFirewall =
@ -29,9 +29,9 @@
# environment.systemPackages = with pkgs; [ # environment.systemPackages = with pkgs; [
# (steam.override { /* Your overrides here */ }).run # (steam.override { /* Your overrides here */ }).run
# ]; # ];
# Install the game by setting the executable attribute on the installer and then running it via steam-run ./your_installer.sh. After installation, edit the "~/.local/share/applications/your_game.desktop" and replace the exec line from Exec="/home/user/game/start.sh" "" with Exec="steam-run" "/home/user/game/start.sh". # Install the game by setting the executable attribute on the installer and then running it via steam-run ./your_installer.sh. After installation, edit the "~/.local/share/applications/your_game.desktop" and replace the exec line from Exec="/home/user/game/start.sh" "" with Exec="steam-run" "/home/user/game/start.sh".
environment.systemPackages = with pkgs; [ steam-run ]; environment.systemPackages = with pkgs; [steam-run];
programs.steam.extraCompatPackages = with pkgs; [ proton-ge-bin ]; programs.steam.extraCompatPackages = with pkgs; [proton-ge-bin];
} }

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
nix.extraOptions = '' nix.extraOptions = ''
plugin-files = ${pkgs.nix-doc}/lib/libnix_doc_plugin.so plugin-files = ${pkgs.nix-doc}/lib/libnix_doc_plugin.so
''; '';

View file

@ -1,11 +1,11 @@
{ pkgs, ... }: { {pkgs, ...}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
nix-index nix-index
]; ];
programs.command-not-found.enable = false; programs.command-not-found.enable = false;
# for home-manager, use programs.bash.initExtra instead # for home-manager, use programs.bash.initExtra instead
programs.bash.interactiveShellInit = '' programs.bash.interactiveShellInit = ''
source ${pkgs.nix-index}/etc/profile.d/command-not-found.sh source ${pkgs.nix-index}/etc/profile.d/command-not-found.sh
''; '';
} }

View file

@ -1,9 +1,8 @@
{ pkgs, ... }: {pkgs, ...}: {
{
# to run normal external binaries # to run normal external binaries
programs.nix-ld.enable = true; programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [ programs.nix-ld.libraries = with pkgs; [
# Add any missing dynamic libraries for unpackaged # Add any missing dynamic libraries for unpackaged
# programs here, NOT in environment.systemPackages # programs here, NOT in environment.systemPackages
]; ];
} }

View file

@ -1,5 +1,8 @@
{ pkgs, config, ... }:
{ {
pkgs,
config,
...
}: {
environment.systemPackages = [ environment.systemPackages = [
(pkgs.wrapOBS { (pkgs.wrapOBS {
plugins = with pkgs.obs-studio-plugins; [ plugins = with pkgs.obs-studio-plugins; [
@ -12,7 +15,7 @@
boot.extraModulePackages = with config.boot.kernelPackages; [ boot.extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback v4l2loopback
]; ];
boot.kernelModules = [ "v4l2loopback" ]; boot.kernelModules = ["v4l2loopback"];
boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1 options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
''; '';

View file

@ -1,18 +1,15 @@
{ pkgs, inputs, config, ... }: let {
unstable_list = [ inputs.nixpkgs-unstable.legacyPackages."x86_64-linux".neovim ]; pkgs,
inputs,
config,
...
}: let
unstable_list = [inputs.nixpkgs-unstable.legacyPackages."x86_64-linux".neovim];
in { in {
# also opens the TCP and UDP port from 1714 to 1764 # also opens the TCP and UDP port from 1714 to 1764
programs.kdeconnect.enable = true; programs.kdeconnect.enable = true;
# for running android apps environment.pathsToLink = ["/share/foot"];
virtualisation.waydroid.enable =
true; # also starts the systemd service waydroid-container
# virt manager, for running VM's
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
environment.pathsToLink = [ "/share/foot" ];
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
@ -21,59 +18,60 @@ in {
export GDK_BACKEND='x11' export GDK_BACKEND='x11'
exec "${pkgs.amberol}/bin/amberol" "$@" exec "${pkgs.amberol}/bin/amberol" "$@"
''; '';
in with pkgs; [ in
# low level stuff with pkgs;
efibootmgr [
#exfat # low level stuff
exfatprogs efibootmgr
greetd.greetd #exfat
greetd.tuigreet exfatprogs
killall greetd.greetd
vulnix greetd.tuigreet
killall
vulnix
# hardware # hardware
brightnessctl brightnessctl
usbutils usbutils
lm_sensors lm_sensors
# neovim # neovim
# unstable.neovim # unstable.neovim
git git
gnumake gnumake
gcc gcc
nodePackages.npm nodePackages.npm
nodejs-slim nodejs-slim
python3 python3
fd fd
nodejs-slim nodejs-slim
cargo cargo
rustc rustc
# tooling # tooling
htop htop
ncdu ncdu
wget wget
miniserve miniserve
file file
unzip unzip
tmux tmux
qemu qemu
home-manager home-manager
# move to homemanager?
lxqt.pavucontrol-qt
mumble
amberol_wrapper
amberol
mpv
zathura
feh
#unstable.obsidian
keepassxc
#minecraft
element-desktop
] ++ unstable_list;
# move to homemanager?
mumble
amberol_wrapper
amberol
mpv
zathura
feh
#unstable.obsidian
keepassxc
#minecraft
element-desktop
]
++ unstable_list;
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
noto-fonts noto-fonts
@ -89,7 +87,7 @@ in {
fira-code-symbols fira-code-symbols
#droid-sans-mono #droid-sans-mono
(nerdfonts.override { (nerdfonts.override {
fonts = [ "FiraCode" "DroidSansMono" "JetBrainsMono" ]; fonts = ["FiraCode" "DroidSansMono" "JetBrainsMono"];
}) })
]; ];
} }

14
modules/software/virt.nix Normal file
View file

@ -0,0 +1,14 @@
{
pkgs,
inputs,
config,
...
}: {
# for running android apps
virtualisation.waydroid.enable =
true; # also starts the systemd service waydroid-container
# virt manager, for running VM's
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
}

View file

@ -1,4 +1,4 @@
{ ... }:{ {...}: {
hardware.bluetooth.enable = true; # enables support for Bluetooth hardware.bluetooth.enable = true; # enables support for Bluetooth
hardware.bluetooth.powerOnBoot = false; # powers up the default Bluetooth controller on boot hardware.bluetooth.powerOnBoot = false; # powers up the default Bluetooth controller on boot

View file

@ -1,4 +1,4 @@
{ ... }:{ {...}: {
# A system daemon to allow session software to update firmware # A system daemon to allow session software to update firmware
services.fwupd.enable = true; services.fwupd.enable = true;
} }

View file

@ -1,20 +1,21 @@
{ pkgs, ... }: {pkgs, ...}: {
{
hardware.sane.enable = true; # enables support for SANE scanners hardware.sane.enable = true; # enables support for SANE scanners
services.ipp-usb.enable=true; # enable usb support services.ipp-usb.enable = true; # enable usb support
hardware.sane.backends-package = pkgs.sane-backends.overrideAttrs (old: { hardware.sane.backends-package = pkgs.sane-backends.overrideAttrs (old: {
configureFlags = (old.configureFlags or []) ++ [ configureFlags =
# "--localstatedir=/var" # `sane-backends` puts e.g. lock files in here, must not be in /nix/store (old.configureFlags or [])
# "--with-lockdir=/var/lock/sane" # `sane-backends` puts e.g. lock files in here, must not be in /nix/store ++ [
# "--localstatedir=/var" # `sane-backends` puts e.g. lock files in here, must not be in /nix/store
# "--with-lockdir=/var/lock/sane" # `sane-backends` puts e.g. lock files in here, must not be in /nix/store
# Ugly workaround for https://github.com/NixOS/nixpkgs/issues/273280#issuecomment-1848873028 # Ugly workaround for https://github.com/NixOS/nixpkgs/issues/273280#issuecomment-1848873028
# Really we should make `sane-backends` be able to provide a real lock dir (e.g. `/var/lock/sane`). # Really we should make `sane-backends` be able to provide a real lock dir (e.g. `/var/lock/sane`).
"--disable-locking" "--disable-locking"
]; ];
}); });
users.users.ranomier.extraGroups = [ "scanner" "lp" ]; users.users.ranomier.extraGroups = ["scanner" "lp"];
# only for the scan and maybe print clients # only for the scan and maybe print clients
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: { {pkgs, ...}: {
# Enable the X11 windowing system. # Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session. # You can disable this if you're only using the Wayland session.
services.xserver.enable = false; services.xserver.enable = false;
@ -38,7 +37,7 @@
platformTheme = "qt5ct"; platformTheme = "qt5ct";
style = "kvantum"; style = "kvantum";
}; };
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
@ -63,7 +62,7 @@
slurp slurp
satty satty
flameshot flameshot
# theming # theming
gruvbox-plus-icons gruvbox-plus-icons
gruvbox-gtk-theme gruvbox-gtk-theme