Compare commits

..

19 Commits

Author SHA1 Message Date
henrov 6a70bc93e9 Rebuild files to add wayland as separate file in system/core 2026-03-07 15:53:17 +01:00
henrov d11528d1e2 Rebuild files to correct typo in generated/hyprland/top.nix 2026-03-07 15:30:10 +01:00
henrov 1c3cb63d74 Rebuild files to add generated/top.nix to flake modules 2026-03-07 15:28:20 +01:00
henrov dcc832ac00 Rebuild files to add generated/top.nix to flake modules 2026-03-07 15:26:53 +01:00
henrov 4ea2fbac2c Rebuild files to add generated/top.nix to flake modules 2026-03-07 15:22:50 +01:00
henrov 5e73915a1f Rebuild files to add generated/top.nix to flake modules 2026-03-07 15:18:11 +01:00
henrov f7a575b24d Rebuild files to add generated/top.nix to flake modules 2026-03-07 15:16:39 +01:00
henrov 4074ce7842 Rebuild files to check whether subsequent nixes are imported 2026-03-07 15:11:39 +01:00
henrov 1835d4e888 Rebuild files to check whether subsequent nixes are imported 2026-03-07 15:07:20 +01:00
henrov 7338239fb4 Added VM to ignore files 2026-03-07 15:03:48 +01:00
henrov 7a4d7cdf36 Testing VM 2026-03-07 14:44:05 +01:00
henrov 32b7beae82 Testing VM 2026-03-07 14:42:45 +01:00
henrov 553098bdb0 Testing VM 2026-03-07 14:39:02 +01:00
henrov b6054775d7 Testing VM 2026-03-07 14:34:28 +01:00
henrov 4caafbe7db Testing VM 2026-03-07 14:33:43 +01:00
henrov 1b9beea947 Testing VM 2026-03-07 14:32:32 +01:00
henrov 2c8a6d0878 Testing VM 2026-03-07 14:23:56 +01:00
henrov c67f99c36a Testing VM 2026-03-07 14:20:48 +01:00
henrov acdc0b2394 Testing VM 2026-03-07 14:17:56 +01:00
14 changed files with 701 additions and 644 deletions
+1
View File
@@ -7,3 +7,4 @@ result-*
.direnv
henrovnix/.README.org.kate-swp
Droidnix/traveldroid.qcow2
+464 -426
View File
File diff suppressed because it is too large Load Diff
+138 -121
View File
@@ -401,6 +401,9 @@ The Nix flake definition for Droidnix.
home-manager.extraSpecialArgs = { inherit user inputs; };
}
inputs.catppuccin.nixosModules.catppuccin
# Let's start importing the whole generated tree
./generated/top.nix
];
specialArgs = { inherit user inputs; };
}
@@ -417,10 +420,9 @@ The Nix flake definition for Droidnix.
** =assets/flake/users/henrov.nix=
This is the default user, just search and replace henrov another name if you want to change
#+BEGIN_SRC nix :tangle assets/flake/users/henrov.nix :noweb tangle :mkdirp yes :eval never-html
{ system, ... }:
{
username = "henrov";
password = "henrov";
hashedPassword = "$6$ISAmsPLyFi7idYXr$VmZsq.zMsyh1irSkyDNqtorNXG0oEHbbMVqTii1t8bymvrQ5ZQmbdi4OiBNeNYe/huHGrojXM.3TST2fTLz0T.";
homeDirectory = "/home/henrov";
stateVersion = "25.11";
locale = "nl_NL.UTF-8";
@@ -429,7 +431,7 @@ This is the default user, just search and replace henrov another name if you wan
** =assets/flake/terminal_shell/devshell.nix=
This code defines a Nix shell environment (also called a "devShell") that you can enter using the nix develop command. When you enter this shell, Nix will provide the tools and dependencies listed in buildInputs.
#+BEGIN_SRC nix :tangle assets/flake/users/henrov.nix :noweb tangle :mkdirp yes :eval never-html
#+BEGIN_SRC nix :tangle assets/flake/terminal_shell/devshell.nix :noweb tangle :mkdirp yes :eval never-html
{ mkShell }:
mkShell {
buildInputs = with import <nixpkgs> {}; [
@@ -442,20 +444,14 @@ mkShell {
** =assets/flake/machines/traveldroid/top.nix=
This code defines the machine to build. Just search and replace traveldroid to provision another machine.
#+BEGIN_SRC nix :tangle assets/flake/machines/traveldroid/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
config,
pkgs,
lib,
user,
inputs,
...
}:
{
# Import all other configurations
imports = [
./boot.nix
./hardware-configuration.nix
];
options = {
wm = lib.mkOption {
type = lib.types.str;
@@ -463,10 +459,22 @@ This code defines the machine to build. Just search and replace traveldroid to p
description = "Type of window manager to use";
};
};
config = {
# Minimal settings that must be defined here
networking.hostName = "traveldroid";
wm.type = "hyprland"; # Define the window manager type here, mangowc will be made possible in the near future.
wm.type = "hyprland";
# User configuration
users.users.${user.username} = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ];
hashedPassword = user.hashedPassword;
home = user.homeDirectory;
};
# Optional: Enable auto-login for testing
services.getty.autologinUser = user.username;
};
}
#+END_SRC
@@ -506,29 +514,23 @@ This file has most of the settings the control how the computer boots up.
** =generated/top.nix=
The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure.
#+BEGIN_SRC nix :tangle generated/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{ config, pkgs, lib, ... }:
{
imports = [
# First the stuff that we always want, regardless of windowmanager
./system/top.nix
# Import window manager configurations based on the type defined in the machine file
(if config.wm.type == "hyprland" then
./window_managers/hyprland/top.nix
else if config.wm.type == "mangowc" then
./window_managers/mangowc/top.nix
else
assert false; "Unknown window manager type: ${config.wm.type}"
)
./hyprland/top.nix
# ./mangowc/top.nix
];
}
#+END_SRC
** =generated/hyprland/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/hyprland/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
imports = [
./hyprland.nix
./animations_effects/top.nix
./decorations/top.nix
./keyboard_binds/top.nix
@@ -538,78 +540,39 @@ This is top file of this level which contains the bare necessities for this subj
./task_window_workspace_switcher/top.nix
./window_rules/top.nix
];
}
#+END_SRC
** =generated/hyprland/hyprland.nix=
The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure.
#+BEGIN_SRC nix :tangle generated/hyprland/hyprland.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
# Nix settings to use Hyprland's cache for packages
# This allows Nix to download pre-built packages from the Hyprland cache,
# which can speed up the installation process and ensure compatibility.
nix.settings = {
substituters = [ "https://hyprland.cachix.org" ];
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
};
# Enable essential services for a Wayland session
services.dbus.enable = true; # D-Bus is required for inter-process communication
services.pipewire = {
enable = true;
alsa.enable = true; # Basic audio support using ALSA
pulse.enable = true; # PulseAudio support for better audio management
wireplumber.enable = true; # Audio device management and routing
};
# XDG Desktop Portal settings for better application integration
# The XDG Desktop Portal provides a way for applications to interact with the desktop environment.
xdg.portal = {
enable = true;
config.common.default = [ "hyprland" "gtk" ]; # Use Hyprland and GTK as default portal implementations
};
# Environment variables for a Wayland session with Hyprland
# These variables help applications understand the desktop environment and session type.
environment.sessionVariables = {
XDG_SESSION_TYPE = "wayland"; # Use Wayland instead of X11 for the session
XDG_CURRENT_DESKTOP = "Hyprland"; # Define the current desktop environment as Hyprland
XCURSOR_SIZE = "24"; # Set the size of the mouse cursor to 24 pixels
};
# Install Hyprland and enable it as the window manager
# Here, we're only installing the Hyprland package itself for a minimal setup.
environment.systemPackages = with pkgs; [ hyprland ];
# Configure Hyprland as the window manager
# This section enables Hyprland as the window manager and sets basic configurations.
programs.hyprland = {
enable = true; # Start Hyprland as the window manager
xwayland.enable = true; # Enable XWayland to run X11 applications within the Wayland session
enable = true;
xwayland.enable = true;
};
# Home-manager configuration for user-specific settings
# Home-manager is used to manage user-specific configurations and packages.
home-manager = {
# Enable Hyprland as the Wayland window manager for the user session
# Hyprland-specific Home Manager configurations
home-manager.users.${user.username} = {
wayland.windowManager.hyprland = {
enable = true; # Enable Hyprland as the window manager for the user
settings = {
# Minimal configuration, customize later as needed
# This is where you would add custom keybinds, workspace settings, etc.
};
};
# XDG portal settings for user sessions
# These settings ensure that applications can interact properly with the Hyprland session.
xdg.portal = {
enable = true;
extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ]; # Hyprland-specific portal implementation
config.hyprland = {
"org.freedesktop.impl.portal.Screencast" = [ "hyprland" ]; # Enable screencasting support
};
settings = { };
};
}
};
}
#+END_SRC
** =generated/mangowc/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/mangowc/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -628,12 +591,13 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
imports = [
./applications/top.nix
./core/top.nix
./development/top.nix
./system_management/top.nix
];
@@ -642,7 +606,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/applications/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/applications/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -658,8 +622,61 @@ This is top file of this level which contains the bare necessities for this subj
}
#+END_SRC
** =generated/system/core/top.nix=
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/core/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
imports = [
./top.nix
./wayland.nix
];
# .. put any code here
}
#+END_SRC
** =generated/system/core/wayland.nix=
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/core/wayland.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, ... }:
{
# Enable essential services for a Wayland session
services.dbus.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
wireplumber.enable = true;
};
# XDG Desktop Portal settings for better application integration
xdg.portal = {
enable = true;
config.common.default = [ "hyprland" "gtk" ];
};
# Environment variables for a Wayland session
environment.sessionVariables = {
XDG_SESSION_TYPE = "wayland";
XDG_CURRENT_DESKTOP = "Hyprland";
XCURSOR_SIZE = "24";
};
# Home Manager Wayland configurations
home-manager.users.${user.username} = {
xdg.portal = {
enable = true;
extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ];
config.hyprland = {
"org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
};
};
};
}
#+END_SRC
** =generated/system/development/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/development/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -675,7 +692,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -699,7 +716,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/hyprland/animations_effects/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/hyprland/animations_effects/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -711,7 +728,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/hyprland/decorations/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/hyprland/decorations/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -723,7 +740,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/hyprland/keyboard_binds/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/hyprland/keyboard_binds/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
let
@@ -741,7 +758,7 @@ in
#+END_SRC
** =generated/hyprland/notifications/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/hyprland/notifications/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -753,7 +770,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/hyprland/statusbar_tray/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/hyprland/statusbar_tray/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -765,7 +782,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/hyprland/task_launcher/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/hyprland/task_launcher/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -777,7 +794,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/hyprland/task_window_workspace_switcher/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/hyprland/task_window_workspace_switcher/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -789,7 +806,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/hyprland/window_rules/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/hyprland/window_rules/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -801,7 +818,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/mangowc/animations_effects/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/mangowc/animations_effects/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -813,7 +830,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/mangowc/decorations/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/mangowc/decorations/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -825,7 +842,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/mangowc/keyboard_binds/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/mangowc/keyboard_binds/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -837,7 +854,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/mangowc/notifications/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/mangowc/notifications/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -849,7 +866,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/mangowc/statusbar_tray/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/mangowc/statusbar_tray/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -861,7 +878,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/mangowc/task_launcher/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/mangowc/task_launcher/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -873,7 +890,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/mangowc/task_window_workspace_switcher/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/mangowc/task_window_workspace_switcher/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -885,7 +902,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/mangowc/window_rules/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/mangowc/window_rules/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -897,7 +914,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/applications/accessibility/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/applications/accessibility/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -909,7 +926,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/applications/file_management/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/applications/file_management/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -921,7 +938,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/applications/gaming/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/applications/gaming/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -933,7 +950,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/applications/media_playback_editing/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/applications/media_playback_editing/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -945,7 +962,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/applications/office_productivity/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/applications/office_productivity/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -957,7 +974,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/applications/terminal_shell/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -969,7 +986,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/development/databases/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/development/databases/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -981,7 +998,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/development/devops_ci_cd/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/development/devops_ci_cd/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -993,7 +1010,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/development/programming_languages/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/development/programming_languages/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1005,7 +1022,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/development/virtualization/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/development/virtualization/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1017,7 +1034,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/development/web_development/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/development/web_development/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1029,7 +1046,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/audio/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/audio/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1041,7 +1058,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/backups/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/backups/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1053,7 +1070,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/bluetooth/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/bluetooth/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1065,7 +1082,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/disk_management/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/disk_management/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1077,7 +1094,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/hardware_sensors/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/hardware_sensors/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1089,7 +1106,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/logging_monitoring/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/logging_monitoring/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1101,7 +1118,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/login_manager/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/login_manager/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1113,7 +1130,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/monitor_setup/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/monitor_setup/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1125,7 +1142,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/networking/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/networking/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1137,7 +1154,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/power_management/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/power_management/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1149,7 +1166,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/printers_scanners/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/printers_scanners/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1161,7 +1178,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/security/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/security/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1173,7 +1190,7 @@ This is top file of this level which contains the bare necessities for this subj
#+END_SRC
** =generated/system/system_management/system_updates/top.nix=
This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/system/system_management/system_updates/top.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, ... }:
{
@@ -1,17 +1,11 @@
{ config, pkgs, lib, user, inputs, ... }:
{
config,
pkgs,
lib,
user,
inputs,
...
}:
{
# Import all other configurations
imports = [
./boot.nix
./hardware-configuration.nix
];
options = {
wm = lib.mkOption {
type = lib.types.str;
@@ -19,9 +13,21 @@
description = "Type of window manager to use";
};
};
config = {
# Minimal settings that must be defined here
networking.hostName = "traveldroid";
wm.type = "hyprland"; # Define the window manager type here, mangowc will be made possible in the near future.
wm.type = "hyprland";
# User configuration
users.users.${user.username} = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ];
hashedPassword = user.hashedPassword;
home = user.homeDirectory;
};
# Optional: Enable auto-login for testing
services.getty.autologinUser = user.username;
};
}
@@ -0,0 +1,7 @@
{ mkShell }:
mkShell {
buildInputs = with import <nixpkgs> {}; [
nil
nixfmt-rfc-style
];
}
+1 -10
View File
@@ -1,16 +1,7 @@
{ system, ... }:
{
username = "henrov";
password = "henrov";
hashedPassword = "$6$ISAmsPLyFi7idYXr$VmZsq.zMsyh1irSkyDNqtorNXG0oEHbbMVqTii1t8bymvrQ5ZQmbdi4OiBNeNYe/huHGrojXM.3TST2fTLz0T.";
homeDirectory = "/home/henrov";
stateVersion = "25.11";
locale = "nl_NL.UTF-8";
}
{ mkShell }:
mkShell {
buildInputs = with import <nixpkgs> {}; [
nil
nixfmt-rfc-style
];
}
+3
View File
@@ -58,6 +58,9 @@
home-manager.extraSpecialArgs = { inherit user inputs; };
}
inputs.catppuccin.nixosModules.catppuccin
# Let's start importing the whole generated tree
./generated/top.nix
];
specialArgs = { inherit user inputs; };
}
+23
View File
@@ -0,0 +1,23 @@
{ config, pkgs, lib, user, inputs, ... }:
{
# Nix settings to use Hyprland's cache for packages
nix.settings = {
substituters = [ "https://hyprland.cachix.org" ];
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
};
# Install Hyprland and enable it as the window manager
environment.systemPackages = with pkgs; [ hyprland ];
programs.hyprland = {
enable = true;
xwayland.enable = true;
};
# Hyprland-specific Home Manager configurations
home-manager.users.${user.username} = {
wayland.windowManager.hyprland = {
enable = true;
settings = { };
};
};
}
+1 -67
View File
@@ -1,6 +1,7 @@
{ config, pkgs, lib, user, inputs, ... }:
{
imports = [
./hyprland.nix
./animations_effects/top.nix
./decorations/top.nix
./keyboard_binds/top.nix
@@ -10,71 +11,4 @@
./task_window_workspace_switcher/top.nix
./window_rules/top.nix
];
# Nix settings to use Hyprland's cache for packages
# This allows Nix to download pre-built packages from the Hyprland cache,
# which can speed up the installation process and ensure compatibility.
nix.settings = {
substituters = [ "https://hyprland.cachix.org" ];
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
};
# Enable essential services for a Wayland session
services.dbus.enable = true; # D-Bus is required for inter-process communication
services.pipewire = {
enable = true;
alsa.enable = true; # Basic audio support using ALSA
pulse.enable = true; # PulseAudio support for better audio management
wireplumber.enable = true; # Audio device management and routing
};
# XDG Desktop Portal settings for better application integration
# The XDG Desktop Portal provides a way for applications to interact with the desktop environment.
xdg.portal = {
enable = true;
config.common.default = [ "hyprland" "gtk" ]; # Use Hyprland and GTK as default portal implementations
};
# Environment variables for a Wayland session with Hyprland
# These variables help applications understand the desktop environment and session type.
environment.sessionVariables = {
XDG_SESSION_TYPE = "wayland"; # Use Wayland instead of X11 for the session
XDG_CURRENT_DESKTOP = "Hyprland"; # Define the current desktop environment as Hyprland
XCURSOR_SIZE = "24"; # Set the size of the mouse cursor to 24 pixels
};
# Install Hyprland and enable it as the window manager
# Here, we're only installing the Hyprland package itself for a minimal setup.
environment.systemPackages = with pkgs; [ hyprland ];
# Configure Hyprland as the window manager
# This section enables Hyprland as the window manager and sets basic configurations.
programs.hyprland = {
enable = true; # Start Hyprland as the window manager
xwayland.enable = true; # Enable XWayland to run X11 applications within the Wayland session
};
# Home-manager configuration for user-specific settings
# Home-manager is used to manage user-specific configurations and packages.
home-manager = {
# Enable Hyprland as the Wayland window manager for the user session
wayland.windowManager.hyprland = {
enable = true; # Enable Hyprland as the window manager for the user
settings = {
# Minimal configuration, customize later as needed
# This is where you would add custom keybinds, workspace settings, etc.
};
};
# XDG portal settings for user sessions
# These settings ensure that applications can interact properly with the Hyprland session.
xdg.portal = {
enable = true;
extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ]; # Hyprland-specific portal implementation
config.hyprland = {
"org.freedesktop.impl.portal.Screencast" = [ "hyprland" ]; # Enable screencasting support
};
};
}
}
+8
View File
@@ -0,0 +1,8 @@
{ config, pkgs, lib, user, inputs, ... }:
{
imports = [
./top.nix
./wayland.nix
];
# .. put any code here
}
@@ -0,0 +1,35 @@
{ config, pkgs, lib, user, ... }:
{
# Enable essential services for a Wayland session
services.dbus.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
wireplumber.enable = true;
};
# XDG Desktop Portal settings for better application integration
xdg.portal = {
enable = true;
config.common.default = [ "hyprland" "gtk" ];
};
# Environment variables for a Wayland session
environment.sessionVariables = {
XDG_SESSION_TYPE = "wayland";
XDG_CURRENT_DESKTOP = "Hyprland";
XCURSOR_SIZE = "24";
};
# Home Manager Wayland configurations
home-manager.users.${user.username} = {
xdg.portal = {
enable = true;
extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ];
config.hyprland = {
"org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
};
};
};
}
+1
View File
@@ -2,6 +2,7 @@
{
imports = [
./applications/top.nix
./core/top.nix
./development/top.nix
./system_management/top.nix
];
+3 -10
View File
@@ -1,15 +1,8 @@
{ config, pkgs, lib, user, inputs, ... }:
{ config, pkgs, lib, ... }:
{
imports = [
# First the stuff that we always want, regardless of windowmanager
./system/top.nix
# Import window manager configurations based on the type defined in the machine file
(if config.wm.type == "hyprland" then
./window_managers/hyprland/top.nix
else if config.wm.type == "mangowc" then
./window_managers/mangowc/top.nix
else
assert false; "Unknown window manager type: ${config.wm.type}"
)
./hyprland/top.nix
# ./mangowc/top.nix
];
}
Binary file not shown.