Updated configuration with bluetooth and gtk portals
This commit is contained in:
72
flake.lock
generated
72
flake.lock
generated
@@ -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": {
|
||||||
|
|||||||
@@ -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
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,8 +13,6 @@
|
|||||||
blender
|
blender
|
||||||
inkscape
|
inkscape
|
||||||
libreoffice-qt
|
libreoffice-qt
|
||||||
hunspell
|
|
||||||
hunspellDicts
|
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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";
|
||||||
};
|
};
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
5
hosts/common/optional/services/bluetooth.nix
Normal file
5
hosts/common/optional/services/bluetooth.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Enable bluetooth
|
||||||
|
{...}: {
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
hardware.bluetooth.powerOnBoot = true;
|
||||||
|
}
|
||||||
@@ -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
|
|
||||||
;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
]
|
|
||||||
);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user