Initial commit of NixOS config

This commit is contained in:
2025-08-07 14:04:06 +02:00
commit 3255b199db
24 changed files with 996 additions and 0 deletions

41
autostart.nix Normal file
View File

@ -0,0 +1,41 @@
{ config, pkgs, ... }:
{
systemd.user.services.set-wallpaper = {
enable = true;
description = "Set KDE Plasma wallpaper";
#after = [ "plasma-desktop.service" ];
serviceConfig.ExecStart = [ "/run/current-system/sw/bin/plasma-apply-wallpaperimage /etc/nixos/other/wallpaper.png" ];
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
Type = "oneshot";
Restart = "on-failure";
RestartSec = "5s";
};
};
systemd.user.services.autostart-yakuake = {
enable = false;
description = "Automatically start Yakuake";
#after = [ "plasma-desktop.service" ];
serviceConfig.ExecStart = [ "${pkgs.kdePackages.yakuake}/bin/yakuake" ];
wantedBy = [ "default.target" ];
serviceConfig = {
Type = "oneshot";
Restart = "on-failure";
RestartSec = "5s";
};
};
systemd.user.services.autostart-trayscale = {
enable = true;
description = "Automatically start Trayscale";
#after = [ "plasma-desktop.service" ];
serviceConfig.ExecStart = [ "${pkgs.trayscale}/bin/trayscale --hide-window" ];
wantedBy = [ "default.target" ];
serviceConfig = {
Type = "oneshot";
Restart = "on-failure";
RestartSec = "5s";
};
};
}

225
configuration.nix Normal file
View File

@ -0,0 +1,225 @@
# 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).
#Access Internet using:
#nmcli device wifi list
#nmcli device wifi connect <ssid> password <password>
# or if no password (open wifi)
#nmcli device wifi connect <ssid>
#Nix flake file limit: ulimit -n 500000
{ config, pkgs, ... }:
{
#Assign Swap to the PC
#swapDevices = [{
# device = "/swapfile";
# size = 16 * 1024; # 16GB
#}];
imports =
[
./hardware-configuration.nix
#Moved to flake.nix
#./packages.nix
#./firefox.nix
#./zsh.nix
#./lockscreen.nix
];
# Bootloader.
boot.loader = {
systemd-boot.enable = false;
efi.canTouchEfiVariables = true;
#boot.loader.efi.efiSysMountPoint = "/boot/efi";
grub = {
enable = true;
device = "/dev/sdb"; #Needs to be changed when using a new computer! (Make grub partition - look below!)
#devices = [ "nodev" ];
efiSupport = true;
useOSProber = true;
};
grub2-theme = {
enable = true;
theme = "whitesur";
footer = true;
};
timeout = 10;
};
#Ensure there is a grub_bios partition: (gparted)
#Create a new parititon. File System: Unformatted - Size: ~5 Mib
#Apply
#Manage flags -> Add bios_grub
networking.hostName = "nixos";
# Define your hostname.
# 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";
# Enable networking
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "Europe/Berlin";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.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";
};
# Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session.
services.xserver.enable = true;
# Enable the KDE Plasma Desktop Environment.
services.displayManager.sddm.enable = true;
services.desktopManager.plasma6 = {
enable = true;
#Wallpaper options isnt available anymore in Plasma6
#wallpaper = {
# mode = "scale";
# image = "/etc/nixos/other/wallpaper.png";
#};
};
services.ollama = {
enable = true;
# Optional: load models on startup
#loadModels = [ ... ];
};
services.locate = {
enable = true;
package = pkgs.plocate;
#To get rid of warning
#Depircated:
#localuser = null;
};
# Configure keymap in X11
services.xserver.xkb = {
layout = "de";
variant = "";
};
services.tailscale.enable = true;
fonts.packages = with pkgs; [
font-awesome
#TODO reconfigure nerd fonts!!!
#nerd-fonts
meslo-lgs-nf
];
# Configure console keymap
console.keyMap = "de";
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.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;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.cookiez = {
isNormalUser = true;
description = "Cookiez";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [
#User Packages Here
];
};
#So no user in the group Wheel has to input the password in order to use sudo
security.sudo.wheelNeedsPassword = false;
#theme-reminder uses a definitive /home/cookiez path!!!
system.activationScripts.script.text = ''
source /etc/nixos/other/colors.sh
source /etc/nixos/other/pfp.sh
source /etc/nixos/other/theme-reminder.sh
echo -e "Use: $YELLOW'home-manager switch'$NOCOLOR or $DARKGRAY'home-upd'$NOCOLOR (if available) to update your home manager!"
'';
# #Install firefox.
#programs.firefox.enable = true;
#Enabled in a separate firefox.nix
#Allow Nix Commands
nix.settings.experimental-features = [ "nix-command" "flakes" ];
#To allow the Flake to build all packages (Too many open files error)
#systemd.services.nix-deamon.serviceConfig.LimitNOFILE = 100000;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
programs.steam.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;
environment.variables = {
EDITOR = "micro";
# XKB_DEFAULT_LAYOUT = "de";
};
# 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 = "25.05"; # Did you read the comment?
}

100
firefox.nix Normal file
View File

@ -0,0 +1,100 @@
{ config, pkgs, ... }:
let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in
{
programs = {
firefox = {
enable = true;
languagePacks = [ "de" "en-US" ];
/* ---- POLICIES ---- */
# Check about:policies#documentation for options.
policies = {
PasswordManagerEnabled = false;
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value= true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
#DisableFirefoxAccounts = true;
#DisableAccounts = true;
#DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
/* ---- EXTENSIONS ---- */
# Check about:support for extension/add-on ID strings.
# Valid strings for installation_mode are "allowed", "blocked",
# "force_installed" and "normal_installed".
# How to: https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265
ExtensionSettings =
with builtins;
let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "normal_installed";
};
};
in
listToAttrs [
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
#(extension "2fas-two-factor-authentication" "admin@2fas.com")
(extension "sponsorblock" "sponsorBlocker@ajay.app")
#(extension "dearrow" "deArrow@ajay.app")
#(extension "enhancer-for-youtube" "enhancerforyoutube@maximerf.addons.mozilla.org")
#(extension "tabliss" "extension@tabliss.io")
#(extension "don-t-fuck-with-paste" "DontFuckWithPaste@raim.ist")
#(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
#(extension "react-devtools" "@react-devtools")
(extension "keepa" "amptra@keepa.com")
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
];
/* ---- PREFERENCES ---- */
# Check about:config for options.
Preferences = {
"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
"extensions.pocket.enabled" = lock-false;
"extensions.screenshots.disabled" = lock-true;
"browser.topsites.contile.enabled" = lock-false;
#"browser.formfill.enable" = lock-false;
#"browser.search.suggest.enabled" = lock-false;
#"browser.search.suggest.enabled.private" = lock-false;
#"browser.urlbar.suggest.searches" = lock-false;
"browser.urlbar.showSearchSuggestionsFirst" = lock-false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
"browser.newtabpage.activity-stream.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
};
};
};
};
}

105
flake.lock generated Normal file
View File

@ -0,0 +1,105 @@
{
"nodes": {
"grub2-themes": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1734412921,
"narHash": "sha256-JeMqc7lLowKn6klrCcOkcOg38yNqF7MPbN4Elh6Xvq0=",
"owner": "vinceliuice",
"repo": "grub2-themes",
"rev": "f6ab2438e124f60a340a526543e498e5e33b3c53",
"type": "github"
},
"original": {
"owner": "vinceliuice",
"repo": "grub2-themes",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1753592768,
"narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "fc3add429f21450359369af74c2375cb34a2d204",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1747299480,
"narHash": "sha256-jh2mqZ//3dul63Hdc/xm0elMv3lBd3WH0Z9YTDM+PJU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a7b6b1ea1abb5f0b630bd9a1765bdb99ae19c313",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1753489912,
"narHash": "sha256-uDCFHeXdRIgJpYmtcUxGEsZ+hYlLPBhR83fdU+vbC1s=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "13e8d35b7d6028b7198f8186bc0347c6abaa2701",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"grub2-themes": "grub2-themes",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs_2",
"zen-browser": "zen-browser"
}
},
"zen-browser": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1747282003,
"narHash": "sha256-UlCfXNncIYwUvPxHngoH6pY4fiZlU8Z2Ve/gUEn6h+o=",
"owner": "youwen5",
"repo": "zen-browser-flake",
"rev": "952ca99903f19a7096a3709f2938d9c7840a5f91",
"type": "github"
},
"original": {
"owner": "youwen5",
"repo": "zen-browser-flake",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

49
flake.nix Normal file
View File

@ -0,0 +1,49 @@
{
description = "NixOS configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
home-manager.url = "github:nix-community/home-manager/release-25.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
#zen-browser.url = "github:MarceColl/zen-browser-flake";
zen-browser.url = "github:youwen5/zen-browser-flake";
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
grub2-themes = { url = "github:vinceliuice/grub2-themes"; };
};
outputs = inputs@{ nixpkgs, home-manager, zen-browser, grub2-themes, ... }:
let
username = "cookiez";
version = "25.05";
in
{
nixosConfigurations = {
#Replace the below with your hostname!!! Like: {hostname} = nixpkgs.lib.nixosSystem {
nixos = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit inputs username version;
};
modules = [
./configuration.nix
./firefox.nix
./zsh.nix
./autostart.nix
#./virtual-machine.nix
#./zen.nix
#./neovim.nix
./packages.nix
./lockscreen.nix
grub2-themes.nixosModules.default
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.${username} = ./home.nix;
home-manager.extraSpecialArgs = { inherit inputs username version; system = "x86_64-linux"; };
}
];
};
};
};
}

View File

@ -0,0 +1,41 @@
# 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" "uas" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/22a6fa16-0657-4df8-b3e2-7f95fbae778c";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/868C-A59D";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/cb5dbfc0-7c90-41f7-9cad-8c75d84c9d18"; }
];
# 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.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

28
home.nix Normal file
View File

@ -0,0 +1,28 @@
{ inputs, config, pkgs, username, version, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = username;
home.homeDirectory = "/home/${username}";
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = version;
# Let Home Manager install and manage itself.
programs = {
home-manager.enable = true;
git = {
enable = true;
userName = "Cookiez";
userEmail = "jaden-puerkenauer@web.de";
};
};
}

37
hyprland.nix Normal file
View File

@ -0,0 +1,37 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs;
[
(waybar.overrideAttrs (oldAttrs: {
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
})
)
dunst
libnotify
hyprpaper
kitty #Terminal
rofi-wayland
];
#programs.hyprland.enable = true;
#programs.hyprland = {
# enable = true;
# xwayland.enable = true;
#};
#xdg.portal = {
# enable = true;
# extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
#};
#sound.enable = true;
#security.rtkit.enable = true;
#services.pipewire = {
# enable = true;
# alsa.enable = true;
# alsa.support3Bbit = true;
# pulse.enable = true;
# jack.enable = true;
#}
}

29
lockscreen.nix Normal file
View File

@ -0,0 +1,29 @@
{ config, pkgs, lib, ... }:
let
# Define the custom background package with the correct relative path
background-package = pkgs.stdenvNoCC.mkDerivation {
name = "background-image";
src = ./other/wallpaper.png; # Place wallpaper.jpg in the same directory as this config file
dontUnpack = true;
installPhase = ''
cp $src $out
'';
};
in
{
# X11 and KDE Plasma configuration
#services.xserver.enable = true;
services.displayManager.sddm = {
enable = lib.mkDefault true;
theme = "breeze";
wayland.enable = true;
};
environment.systemPackages = with pkgs; [
(pkgs.writeTextDir "share/sddm/themes/breeze/theme.conf.user" ''
[General]
background = "${background-package}"
'')
];
}

25
neovim.nix Normal file
View File

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
{
programs.neovim = {
# ...
plugins = with pkgs.vimPlugins; [
lazy-nvim
];
extraLuaConfig =
# lua
''
require("lazy").setup({
-- disable all update / install features
-- this is handled by nix
rocks = { enabled = false },
pkg = { enabled = false },
install = { missing = false },
change_detection = { enabled = false },
spec = {
-- TODO
},
})
'';
};
}

35
other/aliases Normal file
View File

@ -0,0 +1,35 @@
#----------
# Commands that will be used as aliases for zsh and bash
#----------
# Common commands
#-----
alias py="python3"
alias mcrow="sudo micro"
alias neofetch="fastfetch"
# Nix Specific commands
#-----
alias nix-upd="sudo nixos-rebuild switch --flake /etc/nixos"
alias nix-update="sudo nixos-rebuild switch --flake /etc/nixos"
alias nix-edit="sudoedit /etc/nixos/configuration.nix"
alias nix-packages="sudoedit /etc/nixos/packages.nix"
alias nix-pkgs="sudoedit /etc/nixos/packages.nix"
alias nix-flake="sudoedit /etc/nixos/flake.nix"
alias nix-edit-flake="sudoedit /etc/nixos/flake.nix"
alias nix-zsh="sudoedit /etc/nixos/zsh.nix"
alias nix-edit-zsh="sudoedit /etc/nixos/zsh.nix"
alias nix-aliases="sudoedit /etc/nixos/other/aliases"
alias nix-edit-aliases="sudoedit /etc/nixos/other/aliases"
alias nix-regenerate-config="sudo nixos-generate-config"
alias nix-home="echo To edit home manager run command \'home-edit\'"
alias home-edit="sudoedit /etc/nixos/home.nix"
alias home-upd="home-manager switch"
alias home-update="home-manager switch"
alias cd-nix="cd /etc/nixos/"

12
other/bookmarks-default Normal file
View File

@ -0,0 +1,12 @@
[
{
name = "Bookmarks Toolbar";
toolbar = true;
bookmarks = [
{
name = "NixOS Packages";
url = "https://search.nixos.org/packages";
}
];
}
]

16
other/colors.sh Normal file
View File

@ -0,0 +1,16 @@
NOCOLOR='\033[0m'
RED='\033[0;31m'
GREEN='\033[0;32m'
ORANGE='\033[0;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
CYAN='\033[0;36m'
LIGHTGRAY='\033[0;37m'
DARKGRAY='\033[1;30m'
LIGHTRED='\033[1;31m'
LIGHTGREEN='\033[1;32m'
YELLOW='\033[1;33m'
LIGHTBLUE='\033[1;34m'
LIGHTPURPLE='\033[1;35m'
LIGHTCYAN='\033[1;36m'
WHITE='\033[1;37m'

38
other/konsave.sh Normal file
View File

@ -0,0 +1,38 @@
source /etc/nixos/other/colors.sh
FLAG_FILE="/home/cookiez/.flags/theme-flag"
/run/current-system/sw/bin/konsave -i /etc/nixos/other/theme.knsv
/run/current-system/sw/bin/konsave -i /etc/nixos/other/theme.knsv
/run/current-system/sw/bin/konsave -a theme
progress_bar() {
local duration=$1
local interval=0.25
local total_intervals=$((duration / interval))
local progress=""
local bar_length=10
for ((i=0; i<total_intervals; i++)); do
progress="${progress}-"
printf "\rApplying: [%-${bar_length}s]" "$progress"
sleep $interval
done
echo -ne "\r[${progress}] Done!\n"
}
mkdir -p "$(dirname "$FLAG_FILE")"
touch "$FLAG_FILE"
echo "Flag for knowing weather the Default theme packaged with this NixOS install was actually applied! (If this exists than it should be applied already)" > "$FLAG_FILE"
echo -e "Use ${RED}'sudo reboot -h 0'${NOCOLOR} to successfully apply the theme, if logging out manually ${YELLOW}doesn't${NOCOLOR} work!"
progress_bar 2.5
echo ""
echo -n "Do you want to reboot now? (y/n): "
read -r answer
if [ -z "$answer" ] || [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then
echo "Rebooting! ..."
sudo shutdown -r now
else
echo "Make sure to log out/reboot later!"
fi

BIN
other/pfp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

9
other/pfp.sh Normal file
View File

@ -0,0 +1,9 @@
mkdir -p /var/lib/AccountsService/{icons,users}
cp /etc/nixos/other/pfp.png /var/lib/AccountsService/icons/cookiez
echo -e "[User]\nIcon=/var/lib/AccountsService/icons/cookiez\n" > /var/lib/AccountsService/users/cookiez
chown root:root /var/lib/AccountsService/users/cookiez
chmod 0600 /var/lib/AccountsService/users/cookiez
chown root:root /var/lib/AccountsService/icons/cookiez
chmod 0444 /var/lib/AccountsService/icons/cookiez

3
other/sway-config Normal file
View File

@ -0,0 +1,3 @@
input * {
xkb_layout de
}

9
other/theme-reminder.sh Normal file
View File

@ -0,0 +1,9 @@
source /etc/nixos/other/colors.sh
FLAG_FILE="/home/cookiez/.flags/theme-flag"
if [ ! -f "$FLAG_FILE" ]; then
echo -e "${RED}Warning: Make sure to apply the custom system theme!${NOCOLOR} (source '/etc/nixos/other/konsave.sh')"
fi
#else
# echo "Flag file exists - Theme should be applied already!"
#fi

BIN
other/theme.knsv Normal file

Binary file not shown.

BIN
other/wallpaper.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 MiB

80
packages.nix Normal file
View File

@ -0,0 +1,80 @@
{config, pkgs, libs, inputs, ...}:
{
environment.systemPackages = with pkgs;
[
#Essentials (CLI Only)
wget #A tool for quickly downloading things from the Web
micro-with-xclip
vimPlugins.LazyVim
neovim
#vimPlugins.vim-wayland-clipboard
thefuck #Error correction in case commands are wrong. Type: 'fuck'
jdk23 #Java Development Kit 23
python312 #Python 3.12
python312Packages.pip #Pip for Python 3.12
python312Packages.cmake #The CMake tool to manage project build configurations
fastfetch #A utility to see information about your machine
btop #A replacement for htop, see your machines resources
git #Git ... no need to explain
efibootmgr
zip #A utility for ZIP archives
unzip
rar #A utility for RAR Archives
gnutar #A utility for .tar archives
cron #A tool to set up commands to run scheduled
tmux #A tool to let command windows contiune to run in the background
home-manager #A package to also edit the user Configuration, like with nix
konsave #A package to transfer the look and feel of KDE Plasma to other machines
ocs-url
kdePackages.plasma-workspace
openssh #SSH
zoxide #Alternatice to cd, browse files
fzf-zsh #Search for file names
sway
coreutils-full
multipath-tools
#Programming
jetbrains.pycharm-community #The PyCharm IDE to edit Python code
jetbrains.idea-community #The IntelliJ IDE to edit Java code
jetbrains.clion #The CLion IDE to edit and compile c/c++ code
racket #The racket Programming language, with DrRacket IDE, for University (*Not* because it's my favourite)
rustup
#Desktop Applications
vlc
steam
#heroic
#putty Need to find alternative as it sucks on linux
mission-center
trayscale
spotify
rpi-imager
kdePackages.yakuake
atlauncher
discord
whatsapp-for-linux
obs-studio
i2p
gparted
#rustdesk
mediawriter
#inputs.zen-browser.packages.${pkgs.system}.default
realvnc-vnc-viewer
#CLI tools
eddie #AirVPN client for CLI and Desktop
yt-dlp
tailscale
speedtest-cli
duplicati
ollama
cloudflare-warp
ddrescue
];
nixpkgs.config.permittedInsecurePackages = [
"dotnet-sdk-6.0.428"
"dotnet-runtime-6.0.36"
];
}

30
virtual-machine.nix Normal file
View File

@ -0,0 +1,30 @@
{config, pkgs, ... }:
{
programs.dconf.enable = true;
users.users.cookiez.extraGroups = [ "libvirtd" ];
environment.systemPackages = with pkgs; [
virt-manager
virt-viewer
spice
spice-gtk
spice-protocol
win-virtio
win-spice
gnome.adwaita-icon-theme
];
virtualisation = {
libvirtd = {
enable = true;
qemu = {
swtpm.enable = true;
ovmf.enable = true;
ovmf.packages = [ pkgs.OVMFFull.fd ];
};
};
spiceUSBRedirection.enable = true;
};
services.spice-vdagentd.enable = true;
}

55
zen.nix Normal file
View File

@ -0,0 +1,55 @@
{ config, pkgs, inputs, ... }:
let
username = "cookiez";
in
{
#Copy from https://github.com/0x006E/dotfiles/blob/main/home.nix
zen-browser = {
enable = true;
package = inputs.zen-browser.packages.${pkgs.system}.default;
profiles = {
${username} = {
id = 0;
name = "${username}";
# profileAvatarPath = "chrome://browser/content/zen-avatars/avatar-57.svg";
path = "${username}.default";
isDefault = true;
settings = {
};
};
};
policies = {
PasswordManagerEnabled = false;
ExtensionSettings =
with builtins;
let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "normal_installed";
};
};
in
listToAttrs [
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
#(extension "2fas-two-factor-authentication" "admin@2fas.com")
(extension "sponsorblock" "sponsorBlocker@ajay.app")
#(extension "dearrow" "deArrow@ajay.app")
#(extension "enhancer-for-youtube" "enhancerforyoutube@maximerf.addons.mozilla.org")
#(extension "tabliss" "extension@tabliss.io")
#(extension "don-t-fuck-with-paste" "DontFuckWithPaste@raim.ist")
#(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
#(extension "react-devtools" "@react-devtools")
(extension "keepa" "amptra@keepa.com")
];
# To add additional extensions, find it on addons.mozilla.org, find
# the short ID in the url (like https=//addons.mozilla.org/en-US/firefox/addon/!SHORT_ID!/)
# Then, download the XPI by filling it in to the install_url template, unzip it,
# run `jq .browser_specific_settings.gecko.id manifest.json` or
# `jq .applications.gecko.id manifest.json` to get the UUID
};
};
}

29
zsh.nix Normal file
View File

@ -0,0 +1,29 @@
{ config, pkgs, ... }: {
programs.zsh = {
enable = true;
ohMyZsh = {
enable = true;
plugins = [ "git" ];
};
shellInit = ''
source /etc/nixos/other/aliases
source /etc/nixos/other/theme-reminder.sh
'';
promptInit = ''
source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
'';
};
users.users.cookiez.shell = pkgs.zsh;
environment.systemPackages = [
pkgs.oh-my-zsh
pkgs.zsh
pkgs.zsh-completions
pkgs.zsh-powerlevel10k
pkgs.zsh-syntax-highlighting
pkgs.zsh-autocomplete
];
}