uuuupdate
This commit is contained in:
parent
6e143facef
commit
63c50cfa2a
27 changed files with 314 additions and 257 deletions
129
flake.nix
129
flake.nix
|
@ -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'
|
|
||||||
#formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
|
|
||||||
|
|
||||||
# Your custom packages and modifications, exported as overlays
|
# This is a function that generates an attribute by calling a function you
|
||||||
overlays = import ./overlays {inherit inputs;};
|
# pass to it, with each system as an argument
|
||||||
# Reusable nixos modules you might want to export
|
forAllSystems = nixpkgs.lib.genAttrs systems;
|
||||||
# These are usually stuff you would upstream into nixpkgs
|
in {
|
||||||
nixosModules = import ./modules/nixos;
|
# Your custom packages
|
||||||
# Reusable home-manager modules you might want to export
|
# Accessible through 'nix build', 'nix shell', etc
|
||||||
# These are usually stuff you would upstream into home-manager
|
#packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
|
||||||
homeManagerModules = import ./modules/home-manager;
|
# Formatter for your nix files, available through 'nix fmt'
|
||||||
|
# Other options beside 'alejandra' include 'nixpkgs-fmt'
|
||||||
|
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
|
||||||
|
|
||||||
# NixOS configuration entrypoint
|
# Your custom packages and modifications, exported as overlays
|
||||||
# Available through 'nixos-rebuild --flake .#your-hostname'
|
overlays = import ./overlays {inherit inputs;};
|
||||||
nixosConfigurations = {
|
# Reusable nixos modules you might want to export
|
||||||
# FIXME replace with your hostname
|
# These are usually stuff you would upstream into nixpkgs
|
||||||
crocoite = nixpkgs.lib.nixosSystem {
|
nixosModules = import ./modules/nixos;
|
||||||
specialArgs = {inherit inputs;};
|
# Reusable home-manager modules you might want to export
|
||||||
modules = [
|
# These are usually stuff you would upstream into home-manager
|
||||||
# > Our main nixos configuration file <
|
homeManagerModules = import ./modules/home-manager;
|
||||||
./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
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
#};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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,7 +20,7 @@
|
||||||
|
|
||||||
#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 –
|
||||||
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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,13 +22,13 @@
|
||||||
# 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;
|
||||||
|
|
|
@ -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
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }: {
|
{pkgs, ...}: {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
brave
|
brave
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }: {
|
{pkgs, ...}: {
|
||||||
# The logical browser of choice
|
# The logical browser of choice
|
||||||
programs.firefox.enable = true;
|
programs.firefox.enable = true;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ 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 = {
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
# ];
|
# ];
|
||||||
# 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];
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -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
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{ 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; [
|
||||||
|
|
|
@ -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
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -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
14
modules/software/virt.nix
Normal 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;
|
||||||
|
}
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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; [
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Add table
Reference in a new issue