diff --git a/flake.lock b/flake.lock index bf0564f..aec1207 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1747274630, - "narHash": "sha256-87RJwXbfOHyzTB9LYagAQ6vOZhszCvd8Gvudu+gf3qo=", + "lastModified": 1747742835, + "narHash": "sha256-kYL4GCwwznsypvsnA20oyvW8zB/Dvn6K5G/tgMjVMT4=", "owner": "nix-community", "repo": "disko", - "rev": "ec7c109a4f794fce09aad87239eab7f66540b888", + "rev": "df522e787fdffc4f32ed3e1fca9ed0968a384d62", "type": "github" }, "original": { @@ -59,11 +59,11 @@ }, "hardware": { "locked": { - "lastModified": 1747129300, - "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", + "lastModified": 1747723695, + "narHash": "sha256-lSXzv33yv1O9r9Ai1MtYFDX3OKhWsZMn/5FFb4Rni/k=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "e81fd167b33121269149c57806599045fd33eeed", + "rev": "6ac6ec6fcb410e15a60ef5ec94b8a2b35b5dd282", "type": "github" }, "original": { @@ -79,11 +79,11 @@ ] }, "locked": { - "lastModified": 1747020534, - "narHash": "sha256-D/6rkiC6w2p+4SwRiVKrWIeYzun8FBg7NlMKMwQMxO0=", + "lastModified": 1747688870, + "narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=", "owner": "nix-community", "repo": "home-manager", - "rev": "b4bbdc6fde16fc2051fcde232f6e288cd22007ca", + "rev": "d5f1f641b289553927b3801580598d200a501863", "type": "github" }, "original": { @@ -100,11 +100,11 @@ ] }, "locked": { - "lastModified": 1747297701, - "narHash": "sha256-R8mFJL3lREsJNDqPHbsn03imKoH2ocpzgT2kKWsWYBM=", + "lastModified": 1747521943, + "narHash": "sha256-GMAJcB8oB9cC+TbYTE7QDfw9fwHZyloxUWnUpHnQRko=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "b6fff20c692d684d250a39453ed1853dd44c96ab", + "rev": "b9b927dd1f24094b271e8ec5277a672dc4fc860d", "type": "github" }, "original": { @@ -122,11 +122,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1747305716, - "narHash": "sha256-joRBOBRVhK+0aRoOlKLDEh8UVyPQdO3kSehSFKtcd04=", + "lastModified": 1747702560, + "narHash": "sha256-IlYihDQctzQEVvkqmjP0z1SG4dwfB3f6tOcgQFNQ6Mg=", "owner": "nix-community", "repo": "nix4vscode", - "rev": "df09be277f9a7e24f86bbdbac9fe1bf68f94ce2a", + "rev": "663aa5c1f2411212f963f4591871aaa4a20ffdee", "type": "github" }, "original": { @@ -137,11 +137,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1747129300, - "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", + "lastModified": 1747723695, + "narHash": "sha256-lSXzv33yv1O9r9Ai1MtYFDX3OKhWsZMn/5FFb4Rni/k=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "e81fd167b33121269149c57806599045fd33eeed", + "rev": "6ac6ec6fcb410e15a60ef5ec94b8a2b35b5dd282", "type": "github" }, "original": { @@ -169,11 +169,11 @@ }, "nixpkgs-darwin": { "locked": { - "lastModified": 1747257696, - "narHash": "sha256-bKD2zezDqJBwrPgP5a05areWFTE3wHpEmo+9feEWCAY=", + "lastModified": 1747514354, + "narHash": "sha256-ohO4Uox8WzonwEtxNvr1SsDbvnZLilxrqco1u0bEWHU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2589c813e138db4ecab0912798c0b65512dba1e8", + "rev": "a3552bafe05e3c2f24e6bc6482135837984f7073", "type": "github" }, "original": { @@ -185,11 +185,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1747209494, - "narHash": "sha256-fLise+ys+bpyjuUUkbwqo5W/UyIELvRz9lPBPoB0fbM=", + "lastModified": 1747485343, + "narHash": "sha256-YbsZyuRE1tobO9sv0PUwg81QryYo3L1F3R3rF9bcG38=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5d736263df906c5da72ab0f372427814de2f52f8", + "rev": "9b5ac7ad45298d58640540d0323ca217f32a6762", "type": "github" }, "original": { @@ -201,11 +201,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1747179050, - "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=", + "lastModified": 1747542820, + "narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e", + "rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "type": "github" }, "original": { @@ -217,11 +217,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1747209494, - "narHash": "sha256-fLise+ys+bpyjuUUkbwqo5W/UyIELvRz9lPBPoB0fbM=", + "lastModified": 1747485343, + "narHash": "sha256-YbsZyuRE1tobO9sv0PUwg81QryYo3L1F3R3rF9bcG38=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5d736263df906c5da72ab0f372427814de2f52f8", + "rev": "9b5ac7ad45298d58640540d0323ca217f32a6762", "type": "github" }, "original": { @@ -240,11 +240,11 @@ ] }, "locked": { - "lastModified": 1746537231, - "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=", + "lastModified": 1747372754, + "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969", + "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1747278581, - "narHash": "sha256-2TzDRpuU3Ae5yEvt8HiNbgK/c6JogUqQGvTQq7Hj+iA=", + "lastModified": 1747736530, + "narHash": "sha256-t3Fno11OhiWoOHRnbwzuuW80j20w9EV+vIV44Xkxg7g=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "8358d144bccc142fffff1743d1b2dd15e24f7f3a", + "rev": "ebeabdb79392f3dfac8c6019754e76997e4d5dfa", "type": "github" }, "original": { diff --git a/home/panotaka/Bellerophon.nix b/home/panotaka/Bellerophon.nix index 5cfce98..8c513f5 100644 --- a/home/panotaka/Bellerophon.nix +++ b/home/panotaka/Bellerophon.nix @@ -15,5 +15,6 @@ common/optional/media common/optional/coding common/optional/games + common/optional/productivity ]; } diff --git a/home/panotaka/common/optional/productivity/default.nix b/home/panotaka/common/optional/productivity/default.nix index 8fae032..b65ce35 100644 --- a/home/panotaka/common/optional/productivity/default.nix +++ b/home/panotaka/common/optional/productivity/default.nix @@ -13,8 +13,6 @@ blender inkscape libreoffice-qt - hunspell - hunspellDicts ; }; } diff --git a/hosts/common/core/nixos.nix b/hosts/common/core/nixos.nix index d04e916..768e417 100644 --- a/hosts/common/core/nixos.nix +++ b/hosts/common/core/nixos.nix @@ -13,7 +13,7 @@ security.sudo.extraConfig = '' 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 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. Defaults env_keep+=SSH_AUTH_SOCK ''; @@ -27,7 +27,7 @@ enable = true; clean.enable = true; clean.extraArgs = "--keep-since 20d --keep 20"; - flake = "/home/user/${config.hostSpec.home}/nix-config"; + flake = "/home/user/${config.hostSpec.home}/Projects/nix-config"; }; # diff --git a/hosts/common/optional/kde.nix b/hosts/common/optional/kde.nix index 407412a..d99a5c1 100644 --- a/hosts/common/optional/kde.nix +++ b/hosts/common/optional/kde.nix @@ -1,4 +1,5 @@ # 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; } diff --git a/hosts/common/optional/services/bluetooth.nix b/hosts/common/optional/services/bluetooth.nix new file mode 100644 index 0000000..7938f7f --- /dev/null +++ b/hosts/common/optional/services/bluetooth.nix @@ -0,0 +1,5 @@ +# Enable bluetooth +{...}: { + hardware.bluetooth.enable = true; + hardware.bluetooth.powerOnBoot = true; +} diff --git a/hosts/common/users/primary/default.nix b/hosts/common/users/primary/default.nix index 20e5767..7f7b401 100644 --- a/hosts/common/users/primary/default.nix +++ b/hosts/common/users/primary/default.nix @@ -1,6 +1,5 @@ # 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` - # User config applicable to both nixos and darwin { inputs, @@ -8,61 +7,59 @@ config, lib, ... -}: -let +}: let hostSpec = config.hostSpec; pubKeys = lib.filesystem.listFilesRecursive ./keys; in -{ - users.users.${hostSpec.username} = { - name = hostSpec.username; - shell = pkgs.bash; # default shell + { + users.users.${hostSpec.username} = { + name = hostSpec.username; + shell = pkgs.fish; # default shell - # These get placed into /etc/ssh/authorized_keys.d/ on nixos - openssh.authorizedKeys.keys = lib.lists.forEach pubKeys (key: builtins.readFile key); - }; + # These get placed into /etc/ssh/authorized_keys.d/ on nixos + openssh.authorizedKeys.keys = lib.lists.forEach pubKeys (key: builtins.readFile key); + }; - # Create ssh sockets directory for controlpaths when homemanager not loaded (i.e. isMinimal) - systemd.tmpfiles.rules = - let + # Create ssh sockets directory for controlpaths when homemanager not loaded (i.e. isMinimal) + systemd.tmpfiles.rules = let user = config.users.users.${hostSpec.username}.name; group = config.users.users.${hostSpec.username}.group; in - # 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/sockets 0750 ${user} ${group} -" - ]; + # 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/sockets 0750 ${user} ${group} -" + ]; - # No matter what environment we are in we want these tools - programs.zsh.enable = true; - environment.systemPackages = [ - pkgs.just - pkgs.rsync - ]; -} -# Import the user's personal/home configurations, unless the environment is minimal -// lib.optionalAttrs (inputs ? "home-manager") { - home-manager = { - extraSpecialArgs = { - inherit pkgs inputs; - hostSpec = config.hostSpec; + # No matter what environment we are in we want these tools + programs.fish.enable = true; + environment.systemPackages = [ + pkgs.just + pkgs.rsync + ]; + } + # Import the user's personal/home configurations, unless the environment is minimal + // lib.optionalAttrs (inputs ? "home-manager") { + home-manager = { + extraSpecialArgs = { + inherit pkgs inputs; + 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 - ; - } - ) - ] - ); - }; -} + } diff --git a/hosts/nixos/Bellerophon/default.nix b/hosts/nixos/Bellerophon/default.nix index 46cd9e1..3e654b8 100644 --- a/hosts/nixos/Bellerophon/default.nix +++ b/hosts/nixos/Bellerophon/default.nix @@ -1,18 +1,15 @@ # This is an example nixos hosts module. # They will automatically be imported below. - ############################################################# # # Bellerophon - Example Desktop # ############################################################### - { inputs, lib, ... -}: -{ +}: { imports = lib.flatten [ # # ========== Hardware ========== @@ -53,7 +50,7 @@ # FIXME(starter): the primary user, defined in `nix-config/hosts/common/users`, is added by default, via # `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 - # 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" @@ -62,7 +59,8 @@ # # 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. - "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/kde.nix" "hosts/common/optional/sddm.nix"