From 99768f0b4ab8e0889e18a43bccc08e456fafe8f5 Mon Sep 17 00:00:00 2001 From: worble Date: Sat, 8 Feb 2025 17:27:13 +0000 Subject: [PATCH] another reorg; add options for full or minimal helix install --- configuration/base.nix | 6 +- configuration/{ => base}/fonts.nix | 0 configuration/{ => base}/kde.nix | 0 configuration/{ => base}/nix-settings.nix | 0 {modules => configuration/modules}/gaming.nix | 0 {modules => configuration/modules}/laptop.nix | 0 .../modules}/virtualisation.nix | 0 deck/home.nix | 118 ------------ devices/deck/home.nix | 69 +++++++ .../starlite}/configuration.nix | 4 +- .../starlite}/disk-config.nix | 0 .../starlite}/hardware-configuration.nix | 0 devices/starlite/home.nix | 76 ++++++++ .../anime4k/GLSL_Mac_Linux_High-end.zip | Bin .../anime4k/GLSL_Mac_Linux_Low-end.zip | Bin {tuxedo => devices/tuxedo}/configuration.nix | 8 +- {tuxedo => devices/tuxedo}/disk-config.nix | 0 .../tuxedo}/hardware-configuration.nix | 0 {tuxedo => devices/tuxedo}/home.nix | 65 +------ flake.nix | 6 +- home-manager-update.sh | 2 + home-manager/development/helix.nix | 175 ++++++++++-------- home-manager/terminal.nix | 4 + update.sh => nixos-update.sh | 0 starlite/home.nix | 126 ------------- 25 files changed, 265 insertions(+), 394 deletions(-) rename configuration/{ => base}/fonts.nix (100%) rename configuration/{ => base}/kde.nix (100%) rename configuration/{ => base}/nix-settings.nix (100%) rename {modules => configuration/modules}/gaming.nix (100%) rename {modules => configuration/modules}/laptop.nix (100%) rename {modules => configuration/modules}/virtualisation.nix (100%) delete mode 100644 deck/home.nix create mode 100644 devices/deck/home.nix rename {starlite => devices/starlite}/configuration.nix (92%) rename {starlite => devices/starlite}/disk-config.nix (100%) rename {starlite => devices/starlite}/hardware-configuration.nix (100%) create mode 100644 devices/starlite/home.nix rename {tuxedo => devices/tuxedo}/anime4k/GLSL_Mac_Linux_High-end.zip (100%) rename {tuxedo => devices/tuxedo}/anime4k/GLSL_Mac_Linux_Low-end.zip (100%) rename {tuxedo => devices/tuxedo}/configuration.nix (89%) rename {tuxedo => devices/tuxedo}/disk-config.nix (100%) rename {tuxedo => devices/tuxedo}/hardware-configuration.nix (100%) rename {tuxedo => devices/tuxedo}/home.nix (62%) create mode 100644 home-manager-update.sh rename update.sh => nixos-update.sh (100%) delete mode 100644 starlite/home.nix diff --git a/configuration/base.nix b/configuration/base.nix index 91c1386..b9c1728 100644 --- a/configuration/base.nix +++ b/configuration/base.nix @@ -7,9 +7,9 @@ { imports = [ - ./nix-settings.nix - ./fonts.nix - ./kde.nix + ./base/nix-settings.nix + ./base/fonts.nix + ./base/kde.nix ]; # Use the systemd-boot EFI boot loader. diff --git a/configuration/fonts.nix b/configuration/base/fonts.nix similarity index 100% rename from configuration/fonts.nix rename to configuration/base/fonts.nix diff --git a/configuration/kde.nix b/configuration/base/kde.nix similarity index 100% rename from configuration/kde.nix rename to configuration/base/kde.nix diff --git a/configuration/nix-settings.nix b/configuration/base/nix-settings.nix similarity index 100% rename from configuration/nix-settings.nix rename to configuration/base/nix-settings.nix diff --git a/modules/gaming.nix b/configuration/modules/gaming.nix similarity index 100% rename from modules/gaming.nix rename to configuration/modules/gaming.nix diff --git a/modules/laptop.nix b/configuration/modules/laptop.nix similarity index 100% rename from modules/laptop.nix rename to configuration/modules/laptop.nix diff --git a/modules/virtualisation.nix b/configuration/modules/virtualisation.nix similarity index 100% rename from modules/virtualisation.nix rename to configuration/modules/virtualisation.nix diff --git a/deck/home.nix b/deck/home.nix deleted file mode 100644 index a96619e..0000000 --- a/deck/home.nix +++ /dev/null @@ -1,118 +0,0 @@ -{ pkgs, ... }: - -{ - imports = [ - ../home-manager/fonts.nix - ../home-manager/terminal.nix - ../home-manager/firefox/firefox.nix - ../home-manager/development/vscode.nix - ]; - - terminal.homeUpdateLocation = "/home/deck/Projects/nixos#deck"; - terminal.flakeUpdateLocation = "/home/deck/Projects/nixos"; - - nixpkgs.config = - { - allowUnfree = true; - }; - - # Home Manager needs a bit of information about you and the paths it should - # manage. - home.username = "deck"; - home.homeDirectory = "/home/deck"; - - # This value determines the Home Manager release that your configuration is - # compatible with. This helps avoid breakage when a new Home Manager release - # introduces backwards incompatible changes. - # - # You should not change this value, even if you update Home Manager. If you do - # want to update the value, then make sure to first check the Home Manager - # release notes. - home.stateVersion = "24.05"; # Please read the comment before changing. - - # The home.packages option allows you to install Nix packages into your - # environment. - home.packages = with pkgs;[ - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # pkgs.hello - - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) - - # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your - # # environment: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, ${config.home.username}!" - # '') - - # general - thunderbird - keepassxc - qbittorrent - libreoffice-qt - joplin-desktop - obsidian - - # media - strawberry-qt6 - jellyfin-media-player - - # comms - teamspeak_client - vesktop - ]; - - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; - }; - - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. These will be explicitly sourced when using a - # shell provided by Home Manager. If you don't want to manage your shell - # through Home Manager then you have to manually source 'hm-session-vars.sh' - # located at either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/worble/etc/profile.d/hm-session-vars.sh - # - home.sessionVariables = { - NIXOS_OZONE_WL = "1"; - }; - - # home.sessionPath = [ - # "$HOME/.local/bin" - # ]; - - services.nextcloud-client = { - enable = true; - startInBackground = true; - }; - - # Let Home Manager install and manage itself. - programs = { - home-manager.enable = true; - }; -} diff --git a/devices/deck/home.nix b/devices/deck/home.nix new file mode 100644 index 0000000..bfff120 --- /dev/null +++ b/devices/deck/home.nix @@ -0,0 +1,69 @@ +{ pkgs, ... }: + +{ + imports = [ + ../../home-manager/fonts.nix + ../../home-manager/terminal.nix + ../../home-manager/gaming.nix + ../../home-manager/firefox/firefox.nix + ../../home-manager/development/vscode.nix + ]; + + terminal.homeUpdateLocation = "/home/deck/Projects/nixos#deck"; + terminal.flakeUpdateLocation = "/home/deck/Projects/nixos"; + + nixpkgs.config = + { + allowUnfree = true; + }; + + home.username = "deck"; + home.homeDirectory = "/home/deck"; + + home.stateVersion = "24.05"; + + + home.packages = with pkgs;[ + # general + thunderbird + keepassxc + qbittorrent + libreoffice-qt + joplin-desktop + obsidian + + # media + strawberry-qt6 + jellyfin-media-player + + # comms + teamspeak_client + vesktop + ]; + + home.file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + }; + + home.sessionVariables = { + NIXOS_OZONE_WL = "1"; + }; + + services.nextcloud-client = { + enable = true; + startInBackground = true; + }; + + programs = { + home-manager.enable = true; + }; +} diff --git a/starlite/configuration.nix b/devices/starlite/configuration.nix similarity index 92% rename from starlite/configuration.nix rename to devices/starlite/configuration.nix index a1eaf0c..b2889f3 100644 --- a/starlite/configuration.nix +++ b/devices/starlite/configuration.nix @@ -7,13 +7,13 @@ { imports = [ - ../configuration/base.nix + ../../configuration/base.nix # Include the results of the hardware scan. ./hardware-configuration.nix inputs.disko.nixosModules.default ./disk-config.nix inputs.home-manager.nixosModules.default - ../modules/laptop.nix + ../../configuration/modules/laptop.nix ]; networking.hostName = "starlite"; # Define your hostname. diff --git a/starlite/disk-config.nix b/devices/starlite/disk-config.nix similarity index 100% rename from starlite/disk-config.nix rename to devices/starlite/disk-config.nix diff --git a/starlite/hardware-configuration.nix b/devices/starlite/hardware-configuration.nix similarity index 100% rename from starlite/hardware-configuration.nix rename to devices/starlite/hardware-configuration.nix diff --git a/devices/starlite/home.nix b/devices/starlite/home.nix new file mode 100644 index 0000000..ab6b72d --- /dev/null +++ b/devices/starlite/home.nix @@ -0,0 +1,76 @@ +{ pkgs, ... }: + +{ + imports = [ + ../../home-manager/fonts.nix + ../../home-manager/terminal.nix + ../../home-manager/firefox/firefox.nix + ../../home-manager/development/vscode.nix + ]; + + terminal.nixUpdateLocation = "/home/worble/Projects/nixos#starlite"; + terminal.flakeUpdateLocation = "/home/worble/Projects/nixos"; + + home.username = "worble"; + home.homeDirectory = "/home/worble"; + + home.stateVersion = "24.05"; + + home.packages = with pkgs;[ + # general + thunderbird + keepassxc + qbittorrent + libreoffice-qt + joplin-desktop + obsidian + + # media + strawberry-qt6 + jellyfin-media-player + + # comms + teamspeak_client + vesktop + ]; + + home.file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + }; + + home.sessionVariables = { + NIXOS_OZONE_WL = "1"; + }; + + services.nextcloud-client = { + enable = true; + startInBackground = true; + }; + + # Let Home Manager install and manage itself. + programs = { + home-manager.enable = true; + + chromium = { + enable = true; + package = pkgs.brave; + }; + + mpv = { + enable = true; + config = { + screenshot-directory = "~/Pictures/"; + screenshot-template = "%F/%F_snapshot_%P"; + }; + }; + }; +} diff --git a/tuxedo/anime4k/GLSL_Mac_Linux_High-end.zip b/devices/tuxedo/anime4k/GLSL_Mac_Linux_High-end.zip similarity index 100% rename from tuxedo/anime4k/GLSL_Mac_Linux_High-end.zip rename to devices/tuxedo/anime4k/GLSL_Mac_Linux_High-end.zip diff --git a/tuxedo/anime4k/GLSL_Mac_Linux_Low-end.zip b/devices/tuxedo/anime4k/GLSL_Mac_Linux_Low-end.zip similarity index 100% rename from tuxedo/anime4k/GLSL_Mac_Linux_Low-end.zip rename to devices/tuxedo/anime4k/GLSL_Mac_Linux_Low-end.zip diff --git a/tuxedo/configuration.nix b/devices/tuxedo/configuration.nix similarity index 89% rename from tuxedo/configuration.nix rename to devices/tuxedo/configuration.nix index 94394cb..47bd7e0 100644 --- a/tuxedo/configuration.nix +++ b/devices/tuxedo/configuration.nix @@ -7,15 +7,15 @@ { imports = [ - ../configuration/base.nix + ../../configuration/base.nix # Include the results of the hardware scan. ./hardware-configuration.nix inputs.disko.nixosModules.default ./disk-config.nix inputs.home-manager.nixosModules.default - ../modules/laptop.nix - ../modules/virtualisation.nix - ../modules/gaming.nix + ../../configuration/modules/laptop.nix + ../../configuration/modules/virtualisation.nix + ../../configuration/modules/gaming.nix ]; networking.hostName = "tuxedo"; # Define your hostname. diff --git a/tuxedo/disk-config.nix b/devices/tuxedo/disk-config.nix similarity index 100% rename from tuxedo/disk-config.nix rename to devices/tuxedo/disk-config.nix diff --git a/tuxedo/hardware-configuration.nix b/devices/tuxedo/hardware-configuration.nix similarity index 100% rename from tuxedo/hardware-configuration.nix rename to devices/tuxedo/hardware-configuration.nix diff --git a/tuxedo/home.nix b/devices/tuxedo/home.nix similarity index 62% rename from tuxedo/home.nix rename to devices/tuxedo/home.nix index c37f8d6..a686946 100644 --- a/tuxedo/home.nix +++ b/devices/tuxedo/home.nix @@ -2,50 +2,23 @@ { imports = [ - ../home-manager/fonts.nix - ../home-manager/terminal.nix - ../home-manager/firefox/firefox.nix - ../home-manager/development/all.nix - ../home-manager/gaming.nix + ../../home-manager/fonts.nix + ../../home-manager/terminal.nix + ../../home-manager/firefox/firefox.nix + ../../home-manager/development/all.nix + ../../home-manager/gaming.nix ]; terminal.nixUpdateLocation = "/home/worble/Projects/nixos#tuxedo"; terminal.flakeUpdateLocation = "/home/worble/Projects/nixos"; + helix.fullInstall = true; - # Home Manager needs a bit of information about you and the paths it should - # manage. home.username = "worble"; home.homeDirectory = "/home/worble"; - # This value determines the Home Manager release that your configuration is - # compatible with. This helps avoid breakage when a new Home Manager release - # introduces backwards incompatible changes. - # - # You should not change this value, even if you update Home Manager. If you do - # want to update the value, then make sure to first check the Home Manager - # release notes. - home.stateVersion = "24.05"; # Please read the comment before changing. + home.stateVersion = "24.05"; - # The home.packages option allows you to install Nix packages into your - # environment. home.packages = with pkgs;[ - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # pkgs.hello - - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) - - # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your - # # environment: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, ${config.home.username}!" - # '') - # general thunderbird keepassxc @@ -76,8 +49,6 @@ gpu-screen-recorder-gtk ]; - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. home.file = { # # Building this configuration will create a copy of 'dotfiles/screenrc' in # # the Nix store. Activating the configuration will then make '~/.screenrc' a @@ -91,30 +62,10 @@ # ''; }; - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. These will be explicitly sourced when using a - # shell provided by Home Manager. If you don't want to manage your shell - # through Home Manager then you have to manually source 'hm-session-vars.sh' - # located at either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/worble/etc/profile.d/hm-session-vars.sh - # home.sessionVariables = { NIXOS_OZONE_WL = "1"; }; - # home.sessionPath = [ - # "$HOME/.local/bin" - # ]; - services.nextcloud-client = { enable = true; startInBackground = true; @@ -125,7 +76,7 @@ home-manager.enable = true; firefox = { - profiles.work = import ../home-manager/firefox/firefox-profile.nix // { + profiles.work = import ../../home-manager/firefox/firefox-profile.nix // { id = 1; name = "work"; isDefault = false; diff --git a/flake.nix b/flake.nix index d4808d2..e6ef40c 100644 --- a/flake.nix +++ b/flake.nix @@ -22,13 +22,13 @@ nixosConfigurations.tuxedo = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ - ./tuxedo/configuration.nix + ./devices/tuxedo/configuration.nix ]; }; nixosConfigurations.starlite = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ - ./starlite/configuration.nix + ./devices/starlite/configuration.nix ]; }; packages.${system}.homeConfigurations.deck = home-manager.lib.homeManagerConfiguration { @@ -37,7 +37,7 @@ # Specify your home configuration modules here, for example, # the path to your home.nix. - modules = [ ./deck/home.nix ]; + modules = [ ./devices/deck/home.nix ]; # Optionally use extraSpecialArgs # to pass through arguments to home.nix diff --git a/home-manager-update.sh b/home-manager-update.sh new file mode 100644 index 0000000..52f4064 --- /dev/null +++ b/home-manager-update.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +home-manager switch --flake "/home/worble/Projects/nixos#$(whoami)" diff --git a/home-manager/development/helix.nix b/home-manager/development/helix.nix index d12c0dd..748eb2e 100644 --- a/home-manager/development/helix.nix +++ b/home-manager/development/helix.nix @@ -1,89 +1,102 @@ -{ pkgs, ... }: +{ lib, config, pkgs, ... }: +with lib; { - programs = { - helix = { - enable = true; - defaultEditor = true; - settings = { - theme = "dracula"; - }; - extraPackages = with pkgs;[ - marksman - shfmt - bash-language-server - superhtml - nixd - nixpkgs-fmt - biome - ] ++ (with nodePackages;[ - vscode-langservers-extracted - typescript-language-server - ]); - languages = { - language = [ - { - name = "nix"; - language-servers = [ "nixd" "nil" ]; - } - { - name = "html"; - language-servers = [ "superhtml" "vscode-html-language-server" ]; - } - { - name = "bash"; - formatter = { command = "${pkgs.shfmt}/bin/shfmt"; }; - } - { - name = "javascript"; - language-servers = [ - { name = "biome"; } + options.helix = { + fullInstall = mkOption { + type = lib.types.nullOr lib.types.bool; + default = false; + }; + }; + + config = { + programs = { + helix = mkMerge [{ + enable = true; + defaultEditor = true; + settings = { + theme = "dracula"; + }; + extraPackages = with pkgs;[ gcc ]; + } + (mkIf config.helix.fullInstall { + extraPackages = with pkgs;[ + marksman + shfmt + bash-language-server + superhtml + nixd + nixpkgs-fmt + biome + ] ++ (with nodePackages;[ + vscode-langservers-extracted + typescript-language-server + ]); + languages = { + language = [ { - name = "typescript-language-server"; - except-features = [ "format" ]; + name = "nix"; + language-servers = [ "nixd" "nil" ]; + } + { + name = "html"; + language-servers = [ "superhtml" "vscode-html-language-server" ]; + } + { + name = "bash"; + formatter = { command = "shfmt"; }; + } + { + name = "javascript"; + language-servers = [ + { name = "biome"; } + { + name = "typescript-language-server"; + except-features = [ "format" ]; + } + ]; + auto-format = true; + formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.js" ]; }; + } + { + name = "typescript"; + language-servers = [ + { name = "biome"; } + { + name = "typescript-language-server"; + except-features = [ "format" ]; + } + ]; + auto-format = true; + formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.ts" ]; }; + } + { + name = "jsx"; + language-servers = [ + { name = "biome"; } + { + name = "typescript-language-server"; + except-features = [ "format" ]; + } + ]; + auto-format = true; + formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.jsx" ]; }; + } + { + name = "tsx"; + language-servers = [ + { name = "biome"; } + { + name = "typescript-language-server"; + except-features = [ "format" ]; + } + ]; + auto-format = true; + formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.tsx" ]; }; } ]; - auto-format = true; - formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.js" ]; }; - } - { - name = "typescript"; - language-servers = [ - { name = "biome"; } - { - name = "typescript-language-server"; - except-features = [ "format" ]; - } - ]; - auto-format = true; - formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.ts" ]; }; - } - { - name = "jsx"; - language-servers = [ - { name = "biome"; } - { - name = "typescript-language-server"; - except-features = [ "format" ]; - } - ]; - auto-format = true; - formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.jsx" ]; }; - } - { - name = "tsx"; - language-servers = [ - { name = "biome"; } - { - name = "typescript-language-server"; - except-features = [ "format" ]; - } - ]; - auto-format = true; - formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.tsx" ]; }; - } - ]; - }; + }; + })]; }; }; } diff --git a/home-manager/terminal.nix b/home-manager/terminal.nix index 5e09976..68c1df6 100644 --- a/home-manager/terminal.nix +++ b/home-manager/terminal.nix @@ -2,6 +2,10 @@ with lib; { + imports = [ + ./development/helix.nix + ]; + options.terminal = { nixUpdateLocation = mkOption { type = lib.types.nullOr lib.types.str; diff --git a/update.sh b/nixos-update.sh similarity index 100% rename from update.sh rename to nixos-update.sh diff --git a/starlite/home.nix b/starlite/home.nix deleted file mode 100644 index bb9c3f8..0000000 --- a/starlite/home.nix +++ /dev/null @@ -1,126 +0,0 @@ -{ pkgs, ... }: - -{ - imports = [ - ../home-manager/fonts.nix - ../home-manager/terminal.nix - ../home-manager/firefox/firefox.nix - ../home-manager/development/vscode.nix - ]; - - terminal.nixUpdateLocation = "/home/worble/Projects/nixos#starlite"; - terminal.flakeUpdateLocation = "/home/worble/Projects/nixos"; - - # Home Manager needs a bit of information about you and the paths it should - # manage. - home.username = "worble"; - home.homeDirectory = "/home/worble"; - - # This value determines the Home Manager release that your configuration is - # compatible with. This helps avoid breakage when a new Home Manager release - # introduces backwards incompatible changes. - # - # You should not change this value, even if you update Home Manager. If you do - # want to update the value, then make sure to first check the Home Manager - # release notes. - home.stateVersion = "24.05"; # Please read the comment before changing. - - # The home.packages option allows you to install Nix packages into your - # environment. - home.packages = with pkgs;[ - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # pkgs.hello - - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) - - # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your - # # environment: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, ${config.home.username}!" - # '') - - # general - thunderbird - keepassxc - qbittorrent - libreoffice-qt - joplin-desktop - obsidian - - # media - strawberry-qt6 - jellyfin-media-player - - # comms - teamspeak_client - vesktop - ]; - - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; - }; - - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. These will be explicitly sourced when using a - # shell provided by Home Manager. If you don't want to manage your shell - # through Home Manager then you have to manually source 'hm-session-vars.sh' - # located at either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/worble/etc/profile.d/hm-session-vars.sh - # - home.sessionVariables = { - NIXOS_OZONE_WL = "1"; - }; - - # home.sessionPath = [ - # "$HOME/.local/bin" - # ]; - - services.nextcloud-client = { - enable = true; - startInBackground = true; - }; - - # Let Home Manager install and manage itself. - programs = { - home-manager.enable = true; - - chromium = { - enable = true; - package = pkgs.brave; - }; - - mpv = { - enable = true; - config = { - screenshot-directory = "~/Pictures/"; - screenshot-template = "%F/%F_snapshot_%P"; - }; - }; - }; -}