Updated configuration with bluetooth and gtk portals

This commit is contained in:
2025-05-22 13:07:54 -03:00
parent 3ddeb31eeb
commit 0dfa99f638
8 changed files with 96 additions and 96 deletions

72
flake.lock generated
View File

@@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747274630, "lastModified": 1747742835,
"narHash": "sha256-87RJwXbfOHyzTB9LYagAQ6vOZhszCvd8Gvudu+gf3qo=", "narHash": "sha256-kYL4GCwwznsypvsnA20oyvW8zB/Dvn6K5G/tgMjVMT4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "ec7c109a4f794fce09aad87239eab7f66540b888", "rev": "df522e787fdffc4f32ed3e1fca9ed0968a384d62",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -59,11 +59,11 @@
}, },
"hardware": { "hardware": {
"locked": { "locked": {
"lastModified": 1747129300, "lastModified": 1747723695,
"narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", "narHash": "sha256-lSXzv33yv1O9r9Ai1MtYFDX3OKhWsZMn/5FFb4Rni/k=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "e81fd167b33121269149c57806599045fd33eeed", "rev": "6ac6ec6fcb410e15a60ef5ec94b8a2b35b5dd282",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -79,11 +79,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747020534, "lastModified": 1747688870,
"narHash": "sha256-D/6rkiC6w2p+4SwRiVKrWIeYzun8FBg7NlMKMwQMxO0=", "narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "b4bbdc6fde16fc2051fcde232f6e288cd22007ca", "rev": "d5f1f641b289553927b3801580598d200a501863",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -100,11 +100,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747297701, "lastModified": 1747521943,
"narHash": "sha256-R8mFJL3lREsJNDqPHbsn03imKoH2ocpzgT2kKWsWYBM=", "narHash": "sha256-GMAJcB8oB9cC+TbYTE7QDfw9fwHZyloxUWnUpHnQRko=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "b6fff20c692d684d250a39453ed1853dd44c96ab", "rev": "b9b927dd1f24094b271e8ec5277a672dc4fc860d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -122,11 +122,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1747305716, "lastModified": 1747702560,
"narHash": "sha256-joRBOBRVhK+0aRoOlKLDEh8UVyPQdO3kSehSFKtcd04=", "narHash": "sha256-IlYihDQctzQEVvkqmjP0z1SG4dwfB3f6tOcgQFNQ6Mg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix4vscode", "repo": "nix4vscode",
"rev": "df09be277f9a7e24f86bbdbac9fe1bf68f94ce2a", "rev": "663aa5c1f2411212f963f4591871aaa4a20ffdee",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -137,11 +137,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1747129300, "lastModified": 1747723695,
"narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", "narHash": "sha256-lSXzv33yv1O9r9Ai1MtYFDX3OKhWsZMn/5FFb4Rni/k=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "e81fd167b33121269149c57806599045fd33eeed", "rev": "6ac6ec6fcb410e15a60ef5ec94b8a2b35b5dd282",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -169,11 +169,11 @@
}, },
"nixpkgs-darwin": { "nixpkgs-darwin": {
"locked": { "locked": {
"lastModified": 1747257696, "lastModified": 1747514354,
"narHash": "sha256-bKD2zezDqJBwrPgP5a05areWFTE3wHpEmo+9feEWCAY=", "narHash": "sha256-ohO4Uox8WzonwEtxNvr1SsDbvnZLilxrqco1u0bEWHU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2589c813e138db4ecab0912798c0b65512dba1e8", "rev": "a3552bafe05e3c2f24e6bc6482135837984f7073",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -185,11 +185,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1747209494, "lastModified": 1747485343,
"narHash": "sha256-fLise+ys+bpyjuUUkbwqo5W/UyIELvRz9lPBPoB0fbM=", "narHash": "sha256-YbsZyuRE1tobO9sv0PUwg81QryYo3L1F3R3rF9bcG38=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5d736263df906c5da72ab0f372427814de2f52f8", "rev": "9b5ac7ad45298d58640540d0323ca217f32a6762",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -201,11 +201,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1747179050, "lastModified": 1747542820,
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=", "narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e", "rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -217,11 +217,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1747209494, "lastModified": 1747485343,
"narHash": "sha256-fLise+ys+bpyjuUUkbwqo5W/UyIELvRz9lPBPoB0fbM=", "narHash": "sha256-YbsZyuRE1tobO9sv0PUwg81QryYo3L1F3R3rF9bcG38=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5d736263df906c5da72ab0f372427814de2f52f8", "rev": "9b5ac7ad45298d58640540d0323ca217f32a6762",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -240,11 +240,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1746537231, "lastModified": 1747372754,
"narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=", "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "fa466640195d38ec97cf0493d6d6882bc4d14969", "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -313,11 +313,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747278581, "lastModified": 1747736530,
"narHash": "sha256-2TzDRpuU3Ae5yEvt8HiNbgK/c6JogUqQGvTQq7Hj+iA=", "narHash": "sha256-t3Fno11OhiWoOHRnbwzuuW80j20w9EV+vIV44Xkxg7g=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "8358d144bccc142fffff1743d1b2dd15e24f7f3a", "rev": "ebeabdb79392f3dfac8c6019754e76997e4d5dfa",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -15,5 +15,6 @@
common/optional/media common/optional/media
common/optional/coding common/optional/coding
common/optional/games common/optional/games
common/optional/productivity
]; ];
} }

View File

@@ -13,8 +13,6 @@
blender blender
inkscape inkscape
libreoffice-qt libreoffice-qt
hunspell
hunspellDicts
; ;
}; };
} }

View File

@@ -13,7 +13,7 @@
security.sudo.extraConfig = '' security.sudo.extraConfig = ''
Defaults lecture = never # rollback results in sudo lectures after each reboot, it's somewhat useless anyway Defaults lecture = never # rollback results in sudo lectures after each reboot, it's somewhat useless anyway
Defaults pwfeedback # password input feedback - makes typed password visible as asterisks Defaults pwfeedback # password input feedback - makes typed password visible as asterisks
Defaults timestamp_timeout=120 # only ask for password every 2h Defaults timestamp_timeout=5 # only ask for password every 2h
# Keep SSH_AUTH_SOCK so that pam_ssh_agent_auth.so can do its magic. # Keep SSH_AUTH_SOCK so that pam_ssh_agent_auth.so can do its magic.
Defaults env_keep+=SSH_AUTH_SOCK Defaults env_keep+=SSH_AUTH_SOCK
''; '';
@@ -27,7 +27,7 @@
enable = true; enable = true;
clean.enable = true; clean.enable = true;
clean.extraArgs = "--keep-since 20d --keep 20"; clean.extraArgs = "--keep-since 20d --keep 20";
flake = "/home/user/${config.hostSpec.home}/nix-config"; flake = "/home/user/${config.hostSpec.home}/Projects/nix-config";
}; };
# #

View File

@@ -1,4 +1,5 @@
# NOTE(starter): This is just a basic enabling of the XFCE windows manager for simplicity # NOTE(starter): This is just a basic enabling of the XFCE windows manager for simplicity
{ {
services.desktopManager.plasma6.enable = true; services.desktopManager.plasma6.enable = true;
environment.variables.GTK_USE_PORTAL = 1;
} }

View File

@@ -0,0 +1,5 @@
# Enable bluetooth
{...}: {
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
}

View File

@@ -1,6 +1,5 @@
# NOTE(starter): this is the primary user across all hosts. The username for primary is defined in hostSpec, # NOTE(starter): this is the primary user across all hosts. The username for primary is defined in hostSpec,
# and is declared in `nix-config/common/core/default.nix` # and is declared in `nix-config/common/core/default.nix`
# User config applicable to both nixos and darwin # User config applicable to both nixos and darwin
{ {
inputs, inputs,
@@ -8,61 +7,59 @@
config, config,
lib, lib,
... ...
}: }: let
let
hostSpec = config.hostSpec; hostSpec = config.hostSpec;
pubKeys = lib.filesystem.listFilesRecursive ./keys; pubKeys = lib.filesystem.listFilesRecursive ./keys;
in in
{ {
users.users.${hostSpec.username} = { users.users.${hostSpec.username} = {
name = hostSpec.username; name = hostSpec.username;
shell = pkgs.bash; # default shell shell = pkgs.fish; # default shell
# These get placed into /etc/ssh/authorized_keys.d/<name> on nixos # These get placed into /etc/ssh/authorized_keys.d/<name> on nixos
openssh.authorizedKeys.keys = lib.lists.forEach pubKeys (key: builtins.readFile key); openssh.authorizedKeys.keys = lib.lists.forEach pubKeys (key: builtins.readFile key);
}; };
# Create ssh sockets directory for controlpaths when homemanager not loaded (i.e. isMinimal) # Create ssh sockets directory for controlpaths when homemanager not loaded (i.e. isMinimal)
systemd.tmpfiles.rules = systemd.tmpfiles.rules = let
let
user = config.users.users.${hostSpec.username}.name; user = config.users.users.${hostSpec.username}.name;
group = config.users.users.${hostSpec.username}.group; group = config.users.users.${hostSpec.username}.group;
in in
# you must set the rule for .ssh separately first, otherwise it will be automatically created as root:root and .ssh/sockects will fail # you must set the rule for .ssh separately first, otherwise it will be automatically created as root:root and .ssh/sockects will fail
[ [
"d /home/${hostSpec.username}/.ssh 0750 ${user} ${group} -" "d /home/${hostSpec.username}/.ssh 0750 ${user} ${group} -"
"d /home/${hostSpec.username}/.ssh/sockets 0750 ${user} ${group} -" "d /home/${hostSpec.username}/.ssh/sockets 0750 ${user} ${group} -"
]; ];
# No matter what environment we are in we want these tools # No matter what environment we are in we want these tools
programs.zsh.enable = true; programs.fish.enable = true;
environment.systemPackages = [ environment.systemPackages = [
pkgs.just pkgs.just
pkgs.rsync pkgs.rsync
]; ];
} }
# Import the user's personal/home configurations, unless the environment is minimal # Import the user's personal/home configurations, unless the environment is minimal
// lib.optionalAttrs (inputs ? "home-manager") { // lib.optionalAttrs (inputs ? "home-manager") {
home-manager = { home-manager = {
extraSpecialArgs = { extraSpecialArgs = {
inherit pkgs inputs; inherit pkgs inputs;
hostSpec = config.hostSpec; hostSpec = config.hostSpec;
};
users.${hostSpec.username}.imports = lib.flatten (
lib.optional (!hostSpec.isMinimal) [
(
{config, ...}:
import (lib.custom.relativeToRoot "home/${hostSpec.username}/${hostSpec.hostName}.nix") {
inherit
pkgs
inputs
config
lib
hostSpec
;
}
)
]
);
}; };
users.${hostSpec.username}.imports = lib.flatten ( }
lib.optional (!hostSpec.isMinimal) [
(
{ config, ... }:
import (lib.custom.relativeToRoot "home/${hostSpec.username}/${hostSpec.hostName}.nix") {
inherit
pkgs
inputs
config
lib
hostSpec
;
}
)
]
);
};
}

View File

@@ -1,18 +1,15 @@
# This is an example nixos hosts module. # This is an example nixos hosts module.
# They will automatically be imported below. # They will automatically be imported below.
############################################################# #############################################################
# #
# Bellerophon - Example Desktop # Bellerophon - Example Desktop
# #
############################################################### ###############################################################
{ {
inputs, inputs,
lib, lib,
... ...
}: }: {
{
imports = lib.flatten [ imports = lib.flatten [
# #
# ========== Hardware ========== # ========== Hardware ==========
@@ -53,7 +50,7 @@
# FIXME(starter): the primary user, defined in `nix-config/hosts/common/users`, is added by default, via # FIXME(starter): the primary user, defined in `nix-config/hosts/common/users`, is added by default, via
# `hosts/common/core` above. # `hosts/common/core` above.
# To create additional users, specify the path to their config file, as shown in the commented line below, and create/modify # To create additional users, specify the path to their config file, as shown in the commented line below, and create/modify
# the specified file as required. See `nix-config/hosts/common/users/exampleSecondUser` for more info. # the specified file as required. See `nix-config/hosts/common/users/exampleSecondUser` for more info.
#"hosts/common/users/exampleSecondUser" #"hosts/common/users/exampleSecondUser"
@@ -62,7 +59,8 @@
# #
# FIXME(starter): add or remove any optional host-level configuration files the host will use # FIXME(starter): add or remove any optional host-level configuration files the host will use
# The following are for example sake only and are not necessarily required. # The following are for example sake only and are not necessarily required.
"hosts/common/optional/services/openssh.nix" # allow remote SSH access #"hosts/common/optional/services/openssh.nix" # allow remote SSH access
"hosts/common/optional/services/bluetooth.nix"
"hosts/common/optional/audio.nix" # pipewire and cli controls "hosts/common/optional/audio.nix" # pipewire and cli controls
"hosts/common/optional/kde.nix" "hosts/common/optional/kde.nix"
"hosts/common/optional/sddm.nix" "hosts/common/optional/sddm.nix"