added nix

This commit is contained in:
Katzenkralle 2025-05-10 23:28:55 +02:00
parent 5d57a52a22
commit 1c638568d3
16 changed files with 560 additions and 39 deletions

2
.gitignore vendored
View File

@ -3,3 +3,5 @@
**/*.log
**/logs
**/tmp/
/.git
/.yolk_git

View File

@ -1,2 +1,2 @@
DejaVu Sans Condensed;DejaVu Sans Mono;DejaVuSansM Nerd Font;DejaVu Sans Condensed
DejaVu Sans Condensed;DejaVuSansM Nerd Font;DejaVu Sans Mono;DejaVu Sans Condensed

BIN
eggs/libreoffice/4/user/pack/ExtensionInfo.pack Executable file → Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,16 @@
[Configuration]
LastActiveMode=THUNAR_RENAMER_MODE_NAME
LastActiveRenamer=ThunarSbrReplaceRenamer
[ThunarSbrInsertRenamer]
Offset=0
Text=ads_rsa
Mode=THUNAR_SBR_INSERT_MODE_OVERWRITE
OffsetMode=THUNAR_SBR_OFFSET_MODE_LEFT
[ThunarSbrReplaceRenamer]
CaseSensitive=FALSE
Replacement=ads_rsa
Pattern=default_key
Regexp=FALSE

View File

@ -6,7 +6,7 @@
<property name="last-window-maximized" type="bool" value="true"/>
<property name="last-details-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_38_PERCENT"/>
<property name="last-details-view-visible-columns" type="string" value="THUNAR_COLUMN_DATE_MODIFIED,THUNAR_COLUMN_GROUP,THUNAR_COLUMN_MIME_TYPE,THUNAR_COLUMN_NAME,THUNAR_COLUMN_OWNER,THUNAR_COLUMN_PERMISSIONS,THUNAR_COLUMN_SIZE"/>
<property name="last-details-view-column-widths" type="string" value="159,159,159,127,92,1576,74,188,514,214,118,90,126,156"/>
<property name="last-details-view-column-widths" type="string" value="159,159,159,127,92,1576,74,219,953,79,118,81,126,156"/>
<property name="last-separator-position" type="int" value="147"/>
<property name="last-show-hidden" type="bool" value="true"/>
<property name="misc-single-click" type="bool" value="false"/>
@ -32,7 +32,8 @@
<property name="misc-folder-item-count" type="string" value="THUNAR_FOLDER_ITEM_COUNT_ALWAYS"/>
<property name="last-details-view-column-order" type="string" value="THUNAR_COLUMN_NAME,THUNAR_COLUMN_DATE_MODIFIED,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_SIZE_IN_BYTES,THUNAR_COLUMN_TYPE,THUNAR_COLUMN_LOCATION,THUNAR_COLUMN_MIME_TYPE,THUNAR_COLUMN_DATE_CREATED,THUNAR_COLUMN_PERMISSIONS,THUNAR_COLUMN_OWNER,THUNAR_COLUMN_GROUP,THUNAR_COLUMN_DATE_ACCESSED,THUNAR_COLUMN_RECENCY,THUNAR_COLUMN_DATE_DELETED"/>
<property name="last-tabs-left" type="array">
<value type="string" value="file:///home/someone"/>
<value type="string" value="file:///home/someone/.ssh"/>
<value type="string" value="file:///mnt/DT01ACA1/saveMe/.ssh"/>
</property>
<property name="last-focused-tab-left" type="int" value="0"/>
<property name="last-focused-tab-right" type="int" value="0"/>

9
include_nix.sh Executable file
View File

@ -0,0 +1,9 @@
#!/usr/bin/env bash
echo "Copying files..."
cd $HOME/.config/yolk
rm -rf root-conf/nixos >/dev/null 2>&1
cp -r /etc/nixos root-conf/
echo "New structure"
yolk git add root-conf/nixos
yolk git --no-pager diff --minimal HEAD -- root-conf/nixos

View File

@ -0,0 +1,307 @@
# Edit this configuration file to define what should be installed on your system. Help is available in the configuration.nix(5) man page and in the NixOS manual
# (accessible by running nixos-help).
{ config, pkgs, pkgs-unstable, ... }:
let
optionalPkgs = import ./optional-packages.nix { inherit pkgs; };
in
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
./device-specific.nix
];
# Enable nix flakes
nix.settings.experimental-features = ["nix-command" "flakes" ];
# Hybrantion
boot.resumeDevice = "/dev/disk/by-uuid/1942318f-792a-4c0c-9b42-6e146d835bd7";
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.supportedFilesystems = [ "ntfs" ];
# Allow user to rw
services.udev.extraRules = ''
KERNEL=="ttyACM0", MODE:="666"
'';
# Enable openrgb
services.hardware.openrgb.enable = true;
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"
networking = {
hostName = "nixMain";
networkmanager.enable = true;
};
networking.firewall = {
enable = true;
allowedTCPPorts = [ 80 443 5000 5001 ];
allowedUDPPortRanges = [
{ from = 4000; to = 4007; }
{ from = 8000; to = 8010; }
];
};
# Set your time zone.
time.timeZone = "Europe/Berlin";
# Select internationalisation properties.
i18n.defaultLocale = "en_GB.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
# Configure keymap in X11
services.xserver.xkb = {
layout = "gb";
variant = "";
};
# Configure console keymap
console.keyMap = "uk";
# Define a user account. Don't forget to set a password with passwd.
users.users.someone = {
isNormalUser = true;
description = "someone";
extraGroups = [ "wheel" "docker" "libvirtd" ];
packages = with pkgs; [];
shell = pkgs.zsh;
};
users.users.another = {
isNormalUser = true;
description = "another";
extraGroups = [];
packages = with pkgs; [];
shell = pkgs.bash;
};
# Use lemurs as display manager
services.displayManager.ly = {
enable = true;
settings = {
tty = 1;
};
};
# Docker
virtualisation.docker.enable = true;
virtualisation.docker.storageDriver = "btrfs";
# Added docker group to user
# Libvirt
virtualisation.libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_kvm;
runAsRoot = true;
swtpm.enable = true;
ovmf = {
enable = true;
packages = [(pkgs.OVMF.override {
secureBoot = true;
tpmSupport = true;
}).fd];
};
};
};
virtualisation.spiceUSBRedirection.enable = true;
# Added user to the libvirtd group
# Add zsh
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestions.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
ll = "ls -l";
update = "sudo nixos-rebuild switch";
};
};
# Desktop enviorment
programs.hyprland = {
enable = true;
withUWSM = false; # Universal Wayland Session Manage, ly dosnt like this
xwayland.enable = true; # Xwayland can be disabled.
};
# https://discourse.nixos.org/t/unable-to-add-new-library-folder-to-steam/38923/9
# xdg.portal = {
# enable = true;
# extraPortals = with pkgs; [xdg-desktop-portal-gtk];
# config = {
# common.default = ["gtk"];
# };
# };
# Additional steam settings
programs.steam = {
enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
#localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
};
# Thunar file manager
programs.thunar.enable = true;
programs.xfconf.enable = true; # Neded to save preferances
programs.thunar.plugins = with pkgs.xfce; [
thunar-archive-plugin
];
services.gvfs.enable = true; # Mount, trash, and other functionalities
services.tumbler.enable = true; # Thumbnail support for images
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
polkit
libsecret # needet by gnnnome keyring
xdg-desktop-portal-gtk
xdg-utils
shared-mime-info
xwayland
wget
librewolf
kitty
copyq
distrobox
virt-manager
virtiofsd
distrobox
dunst
htop
nvtopPackages.full
nwg-drawer
rofi-wayland
swaylock
waybar
dconf
hyprpolkitagent
jq
bc
tree
unzip
adwaita-icon-theme
hyprpicker
hypridle
playerctl
pwvucontrol
# Coms
discord-ptb
freecad
gimp
libreoffice-qt6-fresh
hyphenDicts.de_DE
nextcloud-client
qimgv
vlc
rawtherapee
vscode
git
python3
vim
rnote
spotify
blender
file-roller # GUI arciver, support for thunar-arcive
starship # zsh greeter
fzf # terminal fuzzy finder
seahorse # Gnome keyring viewer
yazi
pkgs-unstable.orca-slicer
pkgs-unstable.video-downloader
bind # nsutils
grim # screenshot
slurp # area selectionn
swappy # draw on pic
wl-clipboard
python312Packages.pillow # pic manipulation
# Theme
catppuccin-cursors.frappeMauve
libsForQt5.qt5ct
qt6ct
hyprpaper
lxappearance
# Games
heroic
steam
] ++ optionalPkgs;
fonts.packages = with pkgs; [
nerdfonts
];
#Enviormant
# needet for electron apps under wayland
environment.sessionVariables.NIXOS_OZONE_WL = "1";
# Enable auth polkit
security.polkit.enable = true;
# Walet, needet for nextcloud login
services.gnome.gnome-keyring.enable = true;
security.pam.services.ly.enableGnomeKeyring = true;
# Required for non native linked programms
# https://nix.dev/guides/faq#how-to-run-non-nix-executables
programs.nix-ld.enable = true;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.11"; # Did you read the comment?
}

View File

@ -0,0 +1,33 @@
{ config, lib, pkgs, modulesPath, ... }:
{
fileSystems."/mnt/DT01ACA3" = {
device = "/dev/disk/by-uuid/0E6A9C824AF7FF42";
fsType = "ntfs";
options = [
"users" # Allows any user to mount and unmount
"nofail" # Prevent system from failing if this drive doesn't mount
];
};
fileSystems."/mnt/DT01ACA1" = {
device = "/dev/disk/by-uuid/73b9766b-b5cc-4801-8d64-1445190f33ee";
fsType = "ext4";
options = [
"users" # Allows any user to mount and unmount
"nofail" # Prevent system from failing if this drive doesn't mount
];
};
fileSystems."/mnt/SDSSDP25" = {
device = "/dev/disk/by-uuid/080c6cde-6a90-45ad-bd63-ed79d53b75f9";
fsType = "ext4";
options = [
"users" # Allows any user to mount and unmount
"nofail" # Prevent system from failing if this drive doesn't mount
];
};
}

44
root-conf/nixos/flake.lock generated Normal file
View File

@ -0,0 +1,44 @@
{
"nodes": {
"pkgs": {
"locked": {
"lastModified": 1746557022,
"narHash": "sha256-QkNoyEf6TbaTW5UZYX0OkwIJ/ZMeKSSoOMnSDPQuol0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1d3aeb5a193b9ff13f63f4d9cc169fb88129f860",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"pkgs-unstable": {
"locked": {
"lastModified": 1746663147,
"narHash": "sha256-Ua0drDHawlzNqJnclTJGf87dBmaO/tn7iZ+TCkTRpRc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "dda3dcd3fe03e991015e9a74b22d35950f264a54",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"pkgs": "pkgs",
"pkgs-unstable": "pkgs-unstable"
}
}
},
"root": "root",
"version": 7
}

22
root-conf/nixos/flake.nix Normal file
View File

@ -0,0 +1,22 @@
{
description = "System building flake";
inputs = {
pkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
pkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs = { self, pkgs, pkgs-unstable }:
let
system = "x86_64-linux";
in {
nixosConfigurations.nixMain = pkgs.lib.nixosSystem {
inherit system;
specialArgs = {
pkgs-unstable = import pkgs-unstable { inherit system; };
};
modules = [ ../configuration.nix ];
};
};
}

View File

@ -0,0 +1,42 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/4b53ce3e-72b3-4ea4-8656-e90b48da3b65";
fsType = "btrfs";
options = [ "subvol=@" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/9810-0A10";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/1942318f-792a-4c0c-9b42-6e146d835bd7"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp6s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -0,0 +1,40 @@
{ pkgs }:
pkgs.stdenv.mkDerivation rec {
pname = "yolk";
version = "0.3.4";
src = pkgs.fetchurl {
url = "https://github.com/elkowar/yolk/releases/download/v${version}/yolk_dots-x86_64-unknown-linux-gnu.tar.xz";
hash = "sha256-8zgSig7KfY/EE8oJNDvWJnCsOdEEGSxbWer3Y/mlclU=";
};
manSource = pkgs.fetchurl {
url = "https://github.com/elkowar/yolk/releases/download/v${version}/yolk.man";
hash = "sha256-FZM8gwabmAxrPXOOYBr8ylHKfF8XAL4A6VMarhDcmRo=";
};
buildInputs = [ pkgs.makeWrapper pkgs.nodejs ];
nativeBuildInputs = [ pkgs.pkg-config pkgs.xz ];
unpackPhase = ''
tar -xf ${src}
'';
installPhase = ''
mkdir -p $out/bin
cp yolk_dots-x86_64-unknown-linux-gnu/yolk $out/bin/yolk
chmod +x $out/bin/yolk
# install man page
mkdir -p $out/share/man/man1
cp ${manSource} $out/share/man/man1/yolk.1
'';
meta = with pkgs.lib; {
description = "Painfree Templated Dotfile Management";
homepage = "https://github.com/elkowar/yolk";
license = licenses.mit;
maintainers = with maintainers; [ Katzennkralle ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,15 @@
{ pkgs }:
let
yolkPath = ./local-pkgs/yolk/default.nix;
yolk = if builtins.pathExists yolkPath then
let imp = builtins.tryEval (import yolkPath { inherit pkgs; });
in if imp.success then imp.value else null
else
null;
in
# Return a list of extra packages (possibly empty)
builtins.filter (x: x != null) [
yolk
]