diff --git a/system-master/README.html b/system-master/README.html index 0793fffd8..df29148a4 100644 --- a/system-master/README.html +++ b/system-master/README.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +flake.lock for pinning input versions.assets/* for non-Nix-managed artifacts such as images and wallpapers.
+flake.lock for pinning input versions.assets/* for non-Nix-managed artifacts such as images and wallpapers.

To generate the Nix files: @@ -463,46 +463,46 @@ Other files in this repo include:
flake.lock for pinning input versions.flake.lock for pinning input versions.assets/* for non-Nix-managed artifacts such as images and wallpapers.assets/* for non-Nix-managed artifacts such as images and wallpapers.Generated outputs should not be edited directly. A CI workflow can tangle and commit generated outputs when they differ.
<<code-id>> are noweb placeholders that are expanded from other blocks during tangling.This repository contains system modules, user modules, and configuration fragments. The following directories are treated as separate layers: @@ -513,8 +513,8 @@ To keep navigation consistent, the same internal substructure is used in all thr
core/ – base settings and common infrastructureThe tree below shows the full repository layout, with the standardized internal structure applied only inside @@ -643,8 +643,8 @@ The tree below shows the full repository layout, with the standardized internal
configuration/, home/, and assets/conf/ is standardized; all other paths remain as currently organized.
I have a bunch of constant strings that I would rather put in a file. Thats what user.nix is.
@@ -773,8 +773,8 @@ The values are imported at the beginning and are available to almost all the fun
The inputs for my system's configuration are very simple @@ -811,8 +811,8 @@ Sometimes pinned to a specific commit because unstable broke something and the f
Now that the inputs are ready, the outputs define what the system will actually look like. I also define the machines that this configuration specifies early on. Finally, I iterate over the machines list and pull files from /.machines/${name} subdirectory. This allows me to have configuration that has machine specific configuration limited to those files while also keeping a modular reusable base.
@@ -820,7 +820,7 @@ We also add a devshell that makes editing this repository easier in emacs.
outputs = inputs@{
+outputs = inputs@{
nixpkgs,
home-manager,
emacs-overlay,
@@ -881,7 +881,7 @@ Overlays are a special nix way to override existing packages within a repository
-({ ... }: {
+({ ... }: {
nixpkgs.overlays = [ emacs-overlay.overlays.default ];
})
@@ -891,7 +891,7 @@ Overlays are a special nix way to override existing packages within a repository
Then the machine specific configuration, in this case, just "traveldroid".
-./machines/${machine}/configuration.nix
+./machines/${machine}/configuration.nix
@@ -901,7 +901,7 @@ This can be initialized and managed on its own but I'd rather use the nixo
-home-manager.nixosModules.home-manager
+home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
@@ -944,8 +944,8 @@ Finally I pull in the machine specific home configuration. Along with the overri
-
-14.1. Envrc + Direnv
+
+14.1. Envrc + Direnv
Editing this file will be much nicer if we have the dev environment configured.
@@ -966,14 +966,14 @@ fi
-
-15. Machines
+
+15. Machines
The individual machines subdirectory is configured as follows :-
-+--machine
++--machine
| +--configuration.nix
| +--home.nix
| +--hardware-configuration.nix
@@ -994,12 +994,12 @@ This imported object (or function result) is just trivially merged into a common
We can take a look at that the common hardware options I have for all my machines.
-
-15.0.1. Other Utils
+
+15.0.1. Other Utils
-
-16. Hardware
+
+16. Hardware
I'll let the code comments explain the file here.
@@ -1048,8 +1048,8 @@ I'll let the code comments explain the file here.
-
-17. Configuration
+
+17. Configuration
This section describes the main system configuration for the computers that I have. Nix will look for a default.nix file if you give it a path to a folder to import. And default.nix looks as follows :-
@@ -1092,16 +1092,16 @@ This section describes the main system configuration for the computers that I ha
-
-17.1. Apps section
+
+17.1. Apps section
This section describes a way of installing packages, either through nixpkgs orr flatpak. What apps to instal is decided in the files ./assets/conf/apps/packages.conf and flatpaks.conf
-
-17.2. installpackages.nix
+
+17.2. installpackages.nix
{ config, lib, pkgs, flakeRoot, ... }:
@@ -1156,8 +1156,8 @@ in
-
-17.3. installflatpaks.nix
+
+17.3. installflatpaks.nix
{ config, pkgs, lib, flakeRoot, ... }:
@@ -1268,8 +1268,8 @@ in
-
-17.4. Nix Settings
+
+17.4. Nix Settings
These are global nix settings that configure the settings for the actual tool.
@@ -1318,8 +1318,8 @@ These are global nix settings that configure the settings for the actual tool.
-
-17.5. Boot
+
+17.5. Boot
This file has most of the settings the control how the computer boots up.
@@ -1357,16 +1357,16 @@ This file has most of the settings the control how the computer boots up.
-
-17.6. Login
+
+17.6. Login
Here we control what the login screen would look like. In configuration/default.nix you can choose whether to use tuigreet (very minimalistic) or LightDM (nicer, themeable)
-
-17.7. Tuigreet
+
+17.7. Tuigreet
Doesn't match the rest of the aesthetic of the system (with hyprland), but I like its simplicity.
@@ -1391,8 +1391,8 @@ Doesn't match the rest of the aesthetic of the system (with hyprland), but I lik
-
-17.8. LightDM
+
+17.8. LightDM
{ config, pkgs, lib, ... }:
@@ -1539,8 +1539,8 @@ in
-
-17.9. Terminal (default system)
+
+17.9. Terminal (default system)
This is the initial system level configuration for the terminal that I use on this machine. Its just zsh.
@@ -1559,8 +1559,8 @@ This is the initial system level configuration for the terminal that I use on th
-
-17.10. Files
+
+17.10. Files
I use Thunar as the file explorer. Also setup a few plugins for Thunar in this config.
@@ -1601,8 +1601,8 @@ Along with that, a few other utilities like zip and enabling services to automou
-
-17.11. Locale
+
+17.11. Locale
I live in Netherlands and would like all my locale and timezone settings to match. Except my default locale.
@@ -1636,8 +1636,8 @@ in
-
-17.12. Networking
+
+17.12. Networking
Not much to see here. I want networking to be enabled. I want firewall as well.
@@ -1668,8 +1668,8 @@ Not much to see here. I want networking to be enabled. I want firewall as well.
-
-17.13. Hyprland
+
+17.13. Hyprland
This is a big one because the DE needs so much configuration. This section mostly installs Hyprland.
@@ -1703,6 +1703,11 @@ The configuration is done in the home manager section.
];
config.common.default = [ "hyprland" "gtk" ];
};
+ # Hyprland alleen voor screensharing / remote desktop
+ config.hyprland = {
+ "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
+ "org.freedesktop.impl.portal.RemoteDesktop" = [ "hyprland" ];
+ };
environment.systemPackages = with pkgs; [
walker
uwsm
@@ -1738,8 +1743,8 @@ The configuration is done in the home manager section.
-
-17.14. Services
+
+17.14. Services
These are some of the services that I enable at the system level. Explanation in the comments.
@@ -1772,8 +1777,8 @@ These are some of the services that I enable at the system level. Explanation in
-
-17.15. Audio
+
+17.15. Audio
{ config, pkgs, lib, ... }:
@@ -1851,11 +1856,11 @@ These are some of the services that I enable at the system level. Explanation in
-
-17.16. Miscellaneous Packages and Programs
+
+17.16. Miscellaneous Packages and Programs
-environment.systemPackages = with pkgs; [
+environment.systemPackages = with pkgs; [
wget # fetch utility
curl # more fetch utility
binutils # executable utilities, like ld
@@ -1883,7 +1888,7 @@ programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
-programs = {
+programs = {
nix-ld.enable = true; # helps with linking troubles with dynamic libraries
appimage.enable = true; # allow appimage installations
dconf.enable = true; # to save user settings
@@ -1899,14 +1904,14 @@ programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
-
-17.17. Fonts
+
+17.17. Fonts
Nothing much to see here. I love Aporetic, and I use it everywhere.
-fonts.packages = with pkgs; [
+fonts.packages = with pkgs; [
aporetic
nerd-fonts.iosevka
];
@@ -1914,14 +1919,14 @@ Nothing much to see here. I love
-17.18. User Config
+
+17.18. User Config
This creates the user profile that I login with. Initially created during install.
-users.users.${user.username} = {
+users.users.${user.username} = {
isNormalUser = true;
description = "henrov";
extraGroups = [
@@ -1936,8 +1941,8 @@ This creates the user profile that I login with. Initially created during instal
-
-18. Home
+
+18. Home
I use home-manager to manage my user level dotfiles and configurations.
@@ -1945,8 +1950,8 @@ Most of the "theme" of the system is decided here.
I also use it to install programs that are okay with being installed at the user level instead of the system.
-
-18.1. default.nix
+
+18.1. default.nix
This module will import all necessities.
@@ -1982,8 +1987,8 @@ This module will import all necessities.
-
-18.2. Wallpaper
+
+18.2. Wallpaper
wallpaper.nix installs wpaperd and deploys your wallpaper files from the repo (./assets/conf/desktop/wallpaper/pictures/) into ~/conf/desktop/wallpaper/pictures. It also deploys the default wallpaper configuration from assets/conf/desktop/wallpaper/wallpaper.conf into ~/conf/desktop/wallpaper/wallpaper.conf, which is the file you can edit as a user override.
@@ -2037,11 +2042,11 @@ in
-
-18.3. Waybar
+
+18.3. Waybar
-
+
@@ -2078,8 +2083,8 @@ in
-
-18.4. Lock Screen
+
+18.4. Lock Screen
The lock screen configured using hyprlock.
@@ -2101,8 +2106,8 @@ in
-
-18.5. Idle Screen
+
+18.5. Idle Screen
<henro: needs instruction>
@@ -2120,8 +2125,8 @@ in
-
-18.6. Hyprshell
+
+18.6. Hyprshell
For nice task-starting and -switching
@@ -2161,8 +2166,8 @@ in
-
-18.7. Hyprland
+
+18.7. Hyprland
This configures the desktop environment along with the peripherals. The comments should explain whats happening.
@@ -2190,13 +2195,30 @@ in
source = flakeRoot + "/assets/conf/desktop/hypr/scripts/lid-lock.sh";
executable = true;
};
+ xdg.portal = {
+ enable = true;
+
+ extraPortals = with pkgs; [
+ xdg-desktop-portal-gtk
+ xdg-desktop-portal-hyprland
+ ];
+
+ # GTK als algemene backend (OpenURI is daar betrouwbaar)
+ config.common.default = [ "gtk" ];
+
+ # Hyprland alleen voor screensharing / remote desktop
+ config.hyprland = {
+ "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
+ "org.freedesktop.impl.portal.RemoteDesktop" = [ "hyprland" ];
+ };
+ };
}
-
-18.8. Walker
+
+18.8. Walker
This is how I launch applications. It is bound to Win+Space in the ./asstes/conf/desktop/hypr/bindings.conf.
@@ -2297,8 +2319,8 @@ in
-
-18.9. Theme
+
+18.9. Theme
I use the Catppuccin almost everywhere. The nix module integrates almost automatically everywhere (except gtk).
@@ -2331,8 +2353,8 @@ You'll notice the color values in multiple places outside this as well.
-
-18.10. Default-apps
+
+18.10. Default-apps
This is where you can set defaults
@@ -2351,8 +2373,8 @@ This is where you can set defaults
-
-18.11. Hyperexpo
+
+18.11. Hyperexpo
hyprexpo gets installed and configured
@@ -2392,8 +2414,8 @@ hyprexpo gets installed and configured
-
-18.12. Alacritty
+
+18.12. Alacritty
Alacritty gets installed and configured
@@ -2415,8 +2437,8 @@ in
-
-18.13. Dev Tools
+
+18.13. Dev Tools
All the miscellaneous dev tools on this computer.
@@ -2475,8 +2497,8 @@ All the miscellaneous dev tools on this computer.
-
-18.14. Kitty
+
+18.14. Kitty
Kitty gets installed and configured
@@ -2500,8 +2522,8 @@ in
-
-18.15. Shells
+
+18.15. Shells
The aliases mentioned in ./assets/conf/dev/terminal/shells.conf will be added to enabled shells
@@ -2724,8 +2746,8 @@ EOF
-
-18.16. Zsh
+
+18.16. Zsh
Zsh gets installed and configured
@@ -2768,8 +2790,8 @@ in
-
-18.17. Starship
+
+18.17. Starship
The configuration mentioned in ./assets/conf/dev/terminal/starship.toml will be added to enabled shells
@@ -2801,18 +2823,18 @@ in
-
-18.18. Other Settings
+
+18.18. Other Settings
Some repeated info from the configuration.
-
-18.18.1. Home User
+
+18.18.1. Home User
-home.username = "${user.username}";
+home.username = "${user.username}";
home.homeDirectory = pkgs.lib.mkDefault "/home/${user.username}";
home.stateVersion = user.stateVersion;
@@ -2821,8 +2843,8 @@ home.stateVersion = user.stateVersion;
-
-19. Emacs
+
+19. Emacs
I practically live inside emacs. The configuration for it is a mix between init.el and the nix configuration.
@@ -2901,8 +2923,8 @@ Comments describe the emacs package and what it does.
-
-19.1. Early Initialization
+
+19.1. Early Initialization
There are some emacs settings that can be configured before the gui shows up.
@@ -3007,8 +3029,8 @@ These are listed here.
-
-19.2. Initialization
+
+19.2. Initialization
Now starts the main emacs configuration.
@@ -3420,22 +3442,22 @@ ting a file within such a
-
-20. Machines
+
+20. Machines
Only a few more things left. Specifically the machine level extra settings.
-
-20.1. Traveldroid
+
+20.1. Traveldroid
The configuration for the laptop does not change much. Most changes are because the hardware is different.
-
-20.1.1. System Level
+
+20.1.1. System Level
Nothing specific for the laptop.
@@ -3453,8 +3475,8 @@ Nothing specific for the laptop.
-
-20.1.2. Hardware
+
+20.1.2. Hardware
This is the most different. Mostly taken from hardware-configuration.nix setup at first install.
@@ -3503,8 +3525,8 @@ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistr
-
-20.1.3. Home
+
+20.1.3. Home
This is mostly about configuring the monitor. And laptop specific utilities.
@@ -3531,18 +3553,18 @@ This is mostly about configuring the monitor. And laptop specific utilities.
-
-21. README Utils
+
+21. README Utils
-
-21.0.1. Headers
+
+21.0.1. Headers
This script adds a DO NOT MODIFY header to all the generated nix files.
-(progn
+(progn
(defun add-tangle-headers ()
(message "running in %s" (buffer-file-name))
(when (string= (file-name-extension (buffer-file-name)) "nix")
@@ -3559,7 +3581,7 @@ This script adds a DO NOT MODIFY header to all the generated nix fi
diff --git a/system-master/README.org b/system-master/README.org
index 74a42c766..846e6daa7 100755
--- a/system-master/README.org
+++ b/system-master/README.org
@@ -1094,6 +1094,11 @@ The configuration is done in the home manager section.
];
config.common.default = [ "hyprland" "gtk" ];
};
+ # Hyprland alleen voor screensharing / remote desktop
+ config.hyprland = {
+ "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
+ "org.freedesktop.impl.portal.RemoteDesktop" = [ "hyprland" ];
+ };
environment.systemPackages = with pkgs; [
walker
uwsm
@@ -1509,6 +1514,23 @@ in
source = flakeRoot + "/assets/conf/desktop/hypr/scripts/lid-lock.sh";
executable = true;
};
+ xdg.portal = {
+ enable = true;
+
+ extraPortals = with pkgs; [
+ xdg-desktop-portal-gtk
+ xdg-desktop-portal-hyprland
+ ];
+
+ # GTK als algemene backend (OpenURI is daar betrouwbaar)
+ config.common.default = [ "gtk" ];
+
+ # Hyprland alleen voor screensharing / remote desktop
+ config.hyprland = {
+ "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
+ "org.freedesktop.impl.portal.RemoteDesktop" = [ "hyprland" ];
+ };
+ };
}
#+end_src
diff --git a/system-master/configuration/desktop/hyprland.nix b/system-master/configuration/desktop/hyprland.nix
index 2e52a0b96..d0a1cd9dc 100644
--- a/system-master/configuration/desktop/hyprland.nix
+++ b/system-master/configuration/desktop/hyprland.nix
@@ -25,6 +25,11 @@
];
config.common.default = [ "hyprland" "gtk" ];
};
+ # Hyprland alleen voor screensharing / remote desktop
+ config.hyprland = {
+ "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
+ "org.freedesktop.impl.portal.RemoteDesktop" = [ "hyprland" ];
+ };
environment.systemPackages = with pkgs; [
walker
uwsm
diff --git a/system-master/home/desktop/.hyprland.nix.kate-swp b/system-master/home/desktop/.hyprland.nix.kate-swp
new file mode 100644
index 000000000..1a0d7ed15
Binary files /dev/null and b/system-master/home/desktop/.hyprland.nix.kate-swp differ
diff --git a/system-master/home/desktop/hyprland.nix b/system-master/home/desktop/hyprland.nix
index 8f31c0e2e..86286bdeb 100644
--- a/system-master/home/desktop/hyprland.nix
+++ b/system-master/home/desktop/hyprland.nix
@@ -20,4 +20,21 @@ in
source = flakeRoot + "/assets/conf/desktop/hypr/scripts/lid-lock.sh";
executable = true;
};
+ xdg.portal = {
+ enable = true;
+
+ extraPortals = with pkgs; [
+ xdg-desktop-portal-gtk
+ xdg-desktop-portal-hyprland
+ ];
+
+ # GTK als algemene backend (OpenURI is daar betrouwbaar)
+ config.common.default = [ "gtk" ];
+
+ # Hyprland alleen voor screensharing / remote desktop
+ config.hyprland = {
+ "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
+ "org.freedesktop.impl.portal.RemoteDesktop" = [ "hyprland" ];
+ };
+ };
}