Personal Nix flake
nixos home-manager nix
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: Merge branch 'server' into develop

+248 -64
-1
nix/home/modules/cli/atuin/default.nix
··· 29 29 atuinLogin 30 30 ]; 31 31 32 - programs.mcfly.enable = lib.mkForce false; 33 32 programs.atuin = { 34 33 enable = true; 35 34 daemon.enable = osConfig != {};
+1
nix/home/modules/cli/default.nix
··· 3 3 ./atuin 4 4 ./editors 5 5 ./essentials 6 + ./extras.nix 6 7 ./fish 7 8 ./git 8 9 ./hishtory
-26
nix/home/modules/cli/essentials/default.nix
··· 14 14 packages = 15 15 (with pkgs; [ 16 16 _7zz # Just 7-zip 17 - asciinema 18 17 bash 19 18 chafa 20 19 cheat 21 20 curl 22 21 delta 23 - devenv 24 22 difftastic 25 23 dust 26 24 duf 27 25 fd 28 - ffmpeg 29 26 file 30 27 fx 31 28 gnutar 32 29 hexyl 33 - htop 34 - imagemagick 35 - inotify-tools 36 30 inshellisense 37 - jocalsend 38 31 jq 39 32 neofetch 40 33 ncdu 41 - nix-output-monitor 42 34 nurl 43 35 poppler 44 36 procs 45 37 progress 46 - python312Packages.howdoi 47 38 resvg 48 39 rsync 49 40 sad 50 41 serpl 51 - termshot 52 42 tgpt 53 43 tig 54 44 yazi ··· 69 59 btop.enable = true; 70 60 carapace.enable = true; 71 61 dircolors.enable = true; 72 - direnv = { 73 - enable = true; 74 - nix-direnv.enable = true; 75 - config.global.hide_env_diff = true; 76 - }; 77 62 eza = { 78 63 enable = true; 79 64 extraOptions = [ ··· 84 69 icons = "auto"; 85 70 }; 86 71 fzf.enable = true; 87 - mcfly = { 88 - enable = lib.mkDefault true; 89 - fuzzySearchFactor = 2; 90 - keyScheme = "vim"; 91 - }; 92 - nh = { 93 - enable = lib.mkDefault true; 94 - flake = builtins.replaceStrings ["~"] [config.home.homeDirectory] flake.path; 95 - }; 96 - nix-index.enable = true; 97 - nix-index-database.comma.enable = true; 98 72 ripgrep.enable = true; 99 73 zoxide.enable = true; 100 74 };
+33
nix/home/modules/cli/extras.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: let 7 + inherit (config.my.config) flake; 8 + cfg = config.my.cli.extras; 9 + in { 10 + options.my.cli.extras.enable = lib.mkEnableOption "CLI extras"; 11 + 12 + config = lib.mkIf cfg.enable { 13 + home.packages = with pkgs; [ 14 + asciinema 15 + ffmpeg 16 + imagemagick 17 + inotify-tools 18 + jocalsend 19 + nix-output-monitor 20 + python312Packages.howdoi 21 + termshot 22 + ]; 23 + 24 + programs = { 25 + nh = { 26 + enable = lib.mkDefault true; 27 + flake = builtins.replaceStrings ["~"] [config.home.homeDirectory] flake.path; 28 + }; 29 + nix-index.enable = true; 30 + nix-index-database.comma.enable = true; 31 + }; 32 + }; 33 + }
-1
nix/home/modules/cli/hishtory/default.nix
··· 29 29 hishtory enable 30 30 ''; 31 31 in { 32 - mcfly.enable = false; 33 32 fish.interactiveShellInit = '' 34 33 ${commonPre} 35 34
+3
nix/home/modules/default.nix
··· 38 38 ]; 39 39 40 40 my = { 41 + bars.dank-material-shell.enable = lib.mkDefault true; 41 42 cli = { 42 43 atuin.enable = true; 43 44 editors = { ··· 47 48 vim.enable = lib.mkDefault true; 48 49 }; 49 50 essentials.enable = lib.mkDefault true; 51 + extras.enable = lib.mkDefault true; 50 52 fish.enable = lib.mkDefault true; 51 53 git.enable = lib.mkDefault true; 52 54 nushell.enable = lib.mkDefault true; ··· 56 58 zsh.enable = lib.mkDefault true; 57 59 }; 58 60 development = { 61 + enable = lib.mkDefault true; 59 62 nixd.enable = lib.mkDefault true; 60 63 }; 61 64 nix.enable = lib.mkDefault true;
+20
nix/home/modules/development/default.nix
··· 1 1 { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: let 7 + cfg = config.my.development; 8 + in { 2 9 imports = [ 3 10 ./nixd.nix 4 11 ]; 12 + 13 + options.my.development.enable = lib.mkEnableOption "development tools"; 14 + 15 + config = lib.mkIf cfg.enable { 16 + home.packages = with pkgs; [ 17 + devenv 18 + ]; 19 + programs.direnv = { 20 + enable = true; 21 + nix-direnv.enable = true; 22 + config.global.hide_env_diff = true; 23 + }; 24 + }; 5 25 }
+3 -1
nix/home/modules/development/nixd.nix
··· 9 9 isNixos = osConfig != {}; 10 10 in { 11 11 options.my.development.nixd = { 12 - enable = lib.mkEnableOption "nixd"; 12 + enable = 13 + lib.mkEnableOption "nixd" 14 + // {default = config.my.development.enable;}; 13 15 lsp.enable = lib.mkEnableOption "nixd LSP" // {default = cfg.enable;}; 14 16 }; 15 17
+2
nix/home/profiles/default.nix
··· 3 3 ./de 4 4 ./graphical.nix 5 5 ./hardware 6 + ./headless.nix 6 7 ./llm 7 8 ./standalone.nix 9 + ./server.nix 8 10 ]; 9 11 }
+1 -1
nix/home/profiles/graphical.nix
··· 11 11 // {default = osConfig.my.profiles.graphical or false;}; 12 12 config = lib.mkIf cfg { 13 13 my = { 14 - bars.dank-material-shell.enable = true; 15 14 gui.enable = true; 15 + gui.media.enable = true; 16 16 }; 17 17 }; 18 18 }
+17
nix/home/profiles/headless.nix
··· 1 + { 2 + config, 3 + lib, 4 + osConfig ? {}, 5 + ... 6 + }: let 7 + cfg = config.my.profiles.headless; 8 + in { 9 + options.my.profiles.headless = 10 + lib.mkEnableOption "headless profile" 11 + // {default = osConfig.my.profiles.headless or false;}; 12 + config = lib.mkIf cfg { 13 + my = { 14 + profiles.graphical = false; 15 + }; 16 + }; 17 + }
+18
nix/home/profiles/server.nix
··· 1 + { 2 + config, 3 + lib, 4 + osConfig ? {}, 5 + ... 6 + }: let 7 + cfg = config.my.profiles.server; 8 + in { 9 + options.my.profiles.server = 10 + lib.mkEnableOption "server profile" 11 + // {default = osConfig.my.profiles.server or false;}; 12 + config = lib.mkIf cfg { 13 + my = { 14 + cli.extras.enable = false; 15 + development.enable = false; 16 + }; 17 + }; 18 + }
+4
nix/nixos/configs/raspberrypi/default.nix
··· 13 13 my = { 14 14 ci.build = true; 15 15 security.u2f.relaxed = true; 16 + profiles = { 17 + headless = true; 18 + server = true; 19 + }; 16 20 }; 17 21 18 22 boot.kernelPackages = pkgs.linuxPackages_latest;
+1 -1
nix/nixos/modules/default.nix
··· 22 22 ../profiles 23 23 ./boot 24 24 ./ci 25 - ./desktop 26 25 ./deploy 27 26 ./gaming 28 27 ./gui ··· 55 54 nix.enable = lib.mkDefault true; 56 55 pipewire.enable = lib.mkDefault true; 57 56 security.enable = lib.mkDefault true; 57 + services.enable = lib.mkDefault true; 58 58 ssh.enable = lib.mkDefault true; 59 59 syncthing.enable = lib.mkDefault true; 60 60 theming.enable = lib.mkDefault true;
-5
nix/nixos/modules/desktop/default.nix
··· 1 - { 2 - imports = [ 3 - ./swayosd.nix 4 - ]; 5 - }
nix/nixos/modules/desktop/swayosd.nix nix/nixos/modules/services/swayosd.nix
+36 -28
nix/nixos/modules/services/default.nix
··· 3 3 lib, 4 4 ... 5 5 }: let 6 - inherit (lib) mkDefault; 6 + cfg = config.my.services; 7 7 getFileSystemsByFsType = fsType: 8 8 lib.filterAttrs (_: fs: fs.fsType == fsType) config.fileSystems; 9 9 in { 10 - # Services 11 - services = { 12 - acpid.enable = true; 13 - blueman.enable = true; 14 - btrfs.autoScrub = let 15 - btrfsFileSystems = getFileSystemsByFsType "btrfs"; 16 - in 17 - lib.mkIf (btrfsFileSystems != {}) { 10 + imports = [ 11 + ./home-assistant 12 + ./swayosd.nix 13 + ]; 14 + 15 + options.my.services.enable = lib.mkEnableOption "custom services"; 16 + 17 + config = lib.mkIf cfg.enable { 18 + services = { 19 + acpid.enable = true; 20 + blueman.enable = true; 21 + btrfs.autoScrub = let 22 + btrfsFileSystems = getFileSystemsByFsType "btrfs"; 23 + in 24 + lib.mkIf (btrfsFileSystems != {}) { 25 + enable = true; 26 + interval = "monthly"; 27 + fileSystems = lib.attrNames btrfsFileSystems; 28 + }; 29 + devmon.enable = true; 30 + fstrim = { 18 31 enable = true; 19 - interval = "monthly"; 20 - fileSystems = lib.attrNames btrfsFileSystems; 32 + interval = "weekly"; 21 33 }; 22 - devmon.enable = true; 23 - fstrim = { 24 - enable = true; 25 - interval = "weekly"; 26 - }; 27 - fwupd.enable = true; 28 - gvfs.enable = true; 29 - libinput.enable = true; 30 - ollama = { 31 - enable = mkDefault false; 32 - openFirewall = true; 33 - host = "127.0.0.1"; 34 - port = 11434; 34 + fwupd.enable = true; 35 + gvfs.enable = true; 36 + libinput.enable = true; 37 + ollama = { 38 + enable = lib.mkDefault false; 39 + openFirewall = true; 40 + host = "127.0.0.1"; 41 + port = 11434; 42 + }; 43 + power-profiles-daemon.enable = true; 44 + printing.enable = true; 45 + udisks2.enable = true; 46 + upower.enable = true; 35 47 }; 36 - power-profiles-daemon.enable = true; 37 - printing.enable = true; 38 - udisks2.enable = true; 39 - upower.enable = true; 40 48 }; 41 49 }
+75
nix/nixos/modules/services/home-assistant/default.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: let 7 + cfg = config.my.services.home-assistant; 8 + in { 9 + options.my.services.home-assistant = { 10 + enable = lib.mkEnableOption "Home Assistant"; 11 + }; 12 + 13 + config = lib.mkIf cfg.enable { 14 + services.home-assistant = { 15 + enable = true; 16 + openFirewall = true; 17 + # configWritable = true; 18 + # lovelaceConfigWritable = true; 19 + config = { 20 + homeassistant = { 21 + unit_system = "metric"; 22 + temperature_unit = "C"; 23 + time_zone = "America/Sao_Paulo"; 24 + }; 25 + recorder.db_url = "postgresql://@/hass"; 26 + "automation ui" = "!include automations.yaml"; 27 + "scene ui" = "!include scenes.yaml"; 28 + "script ui" = "!include scripts.yaml"; 29 + }; 30 + customComponents = with pkgs.home-assistant-custom-components; [ 31 + localtuya 32 + midea_ac 33 + midea_ac_lan 34 + # sleep_as_android 35 + tuya_local 36 + ]; 37 + customLovelaceModules = with pkgs.home-assistant-custom-lovelace-modules; [ 38 + mushroom 39 + ]; 40 + extraPackages = python3Packages: 41 + with python3Packages; [ 42 + # gtts 43 + psycopg2 44 + ]; 45 + extraComponents = [ 46 + # Minimal working set 47 + "analytics" 48 + "google_translate" 49 + "met" 50 + "radio_browser" 51 + "shopping_list" 52 + # Custom 53 + "adguard" 54 + "asuswrt" 55 + "default_config" 56 + "esphome" 57 + "homeassistant_hardware" 58 + "isal" 59 + "tuya" 60 + "workday" 61 + ]; 62 + }; 63 + 64 + services.postgresql = { 65 + enable = true; 66 + ensureDatabases = ["hass"]; 67 + ensureUsers = [ 68 + { 69 + name = "hass"; 70 + ensureDBOwnership = true; 71 + } 72 + ]; 73 + }; 74 + }; 75 + }
+2
nix/nixos/profiles/default.nix
··· 5 5 ./graphical.nix 6 6 ./greeter 7 7 ./hardware 8 + ./headless.nix 9 + ./server.nix 8 10 ]; 9 11 }
+15
nix/nixos/profiles/headless.nix
··· 1 + { 2 + config, 3 + lib, 4 + ... 5 + }: let 6 + cfg = config.my.profiles.headless; 7 + in { 8 + options.my.profiles.headless = lib.mkEnableOption "headless profile"; 9 + config = lib.mkIf cfg { 10 + my = { 11 + security.u2f.relaxed = true; 12 + profiles.graphical = false; 13 + }; 14 + }; 15 + }
+17
nix/nixos/profiles/server.nix
··· 1 + { 2 + config, 3 + lib, 4 + ... 5 + }: let 6 + cfg = config.my.profiles.server; 7 + in { 8 + options.my.profiles.server = lib.mkEnableOption "server profile"; 9 + config = lib.mkIf cfg { 10 + my = { 11 + networking.tailscale.enable = true; 12 + networking.tailscale.trusted = true; 13 + }; 14 + 15 + documentation.man.generateCaches = false; 16 + }; 17 + }