diff --git a/flake.lock b/flake.lock index a2cc745..db3b643 100755 --- a/flake.lock +++ b/flake.lock @@ -25,11 +25,11 @@ ] }, "locked": { - "lastModified": 1701433070, - "narHash": "sha256-Gf9JStfENaUQ7YWFz3V7x/srIwr4nlnVteqaAxtwpgM=", + "lastModified": 1701609479, + "narHash": "sha256-mcEnMz7XB3K57ZX16VXoEkswljSNGXdMuUu5+g8a8R8=", "owner": "nix-community", "repo": "home-manager", - "rev": "4a8545f5e737a6338814a4676dc8e18c7f43fc57", + "rev": "e504e8d01f950776c3a3160ba38c5957a1b89e66", "type": "github" }, "original": { @@ -40,11 +40,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1701250978, - "narHash": "sha256-ohu3cz4edjpGxs2qUTgbs0WrnewOX4crnUJNEB6Jox4=", + "lastModified": 1701598471, + "narHash": "sha256-kHdJ2qc4qKeMTzUIHEcP41ah/dBIhCgvWgrjllt2G78=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "8772491ed75f150f02552c60694e1beff9f46013", + "rev": "a89745edd5f657e2e5be5ed1bea86725ca78d92e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e1499d4..aae133d 100755 --- a/flake.nix +++ b/flake.nix @@ -19,11 +19,33 @@ }; outputs = { self, nixpkgs, home-manager, nixos-hardware, nvim, ... } @inputs: let - username = "e"; - in { - nixosConfigurations = ( import ./nixos { inherit inputs; } ); - homeConfigurations = ( - import ./home { inherit inputs; } - ); + attrs = { + username = "e"; }; - } + system = "x86_64-linux"; + pkgs = import nixpkgs { + inherit system; + config.allowUnfree = true; + overlays = [ + (final: prev: { + inherit (inputs.nvim.packages.${final.system}) full; + inherit (inputs.tfa.packages.${final.system}) twofa; + }) + ]; + }; + in { + nixosConfigurations = ( + import ./nixos { inherit inputs pkgs attrs; } + ); + homeConfigurations = ( + import ./home-manager { inherit inputs pkgs attrs; } + ); + devShells.${system}.default = pkgs.mkShell { + buildInputs = [ + pkgs.nix + pkgs.home-manager + pkgs.git + ]; + }; + }; +} diff --git a/home-manager/default.nix b/home-manager/default.nix new file mode 100644 index 0000000..5ba6bfc --- /dev/null +++ b/home-manager/default.nix @@ -0,0 +1,31 @@ +{ inputs, pkgs, attrs, ...}: +{ + "e" = inputs.home-manager.lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { + inherit inputs attrs; + host = { + hostName = "t14"; + username = attrs.username; + }; + }; + modules = [ + ./t14/home.nix + ./home.nix + ]; + }; + "minimal" = inputs.home-manager.lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { + inherit inputs attrs; + host = { + hostName = "e"; + username = attrs.username; + }; + }; + modules = [ + ./home.nix + ]; + }; +} + diff --git a/home-manager/home.nix b/home-manager/home.nix new file mode 100755 index 0000000..feec41c --- /dev/null +++ b/home-manager/home.nix @@ -0,0 +1,12 @@ +{ inputs, pkgs, ... }: +{ + programs.home-manager.enable = true; + nix = { + registry.nixpkgs.flake = inputs.nixpkgs; + }; + home = { + stateVersion = "22.11"; + }; + imports = [ ./shared/programs/min.nix ]; + xdg.enable = true; +} diff --git a/modules/programs/2fa/default.nix b/home-manager/shared/programs/2fa/default.nix similarity index 100% rename from modules/programs/2fa/default.nix rename to home-manager/shared/programs/2fa/default.nix diff --git a/home-manager/shared/programs/default.nix b/home-manager/shared/programs/default.nix new file mode 100644 index 0000000..8c74b59 --- /dev/null +++ b/home-manager/shared/programs/default.nix @@ -0,0 +1,10 @@ +{ home-manager, config, lib, pkgs, ... }: +{ + imports = [ + ./dev + ./nvim + ./shell + ./2fa + ./warrior + ]; +} diff --git a/modules/programs/dev.nix b/home-manager/shared/programs/dev/default.nix similarity index 100% rename from modules/programs/dev.nix rename to home-manager/shared/programs/dev/default.nix diff --git a/home-manager/shared/programs/min.nix b/home-manager/shared/programs/min.nix new file mode 100644 index 0000000..75e2c1c --- /dev/null +++ b/home-manager/shared/programs/min.nix @@ -0,0 +1,6 @@ +{ home-manager, config, lib, pkgs, ... }: +{ + imports = [ + ./shell + ]; +} diff --git a/modules/programs/nvim/default.nix b/home-manager/shared/programs/nvim/default.nix similarity index 100% rename from modules/programs/nvim/default.nix rename to home-manager/shared/programs/nvim/default.nix diff --git a/modules/programs/shell/default.nix b/home-manager/shared/programs/shell/default.nix similarity index 94% rename from modules/programs/shell/default.nix rename to home-manager/shared/programs/shell/default.nix index 7d47d96..b4f1f3e 100755 --- a/modules/programs/shell/default.nix +++ b/home-manager/shared/programs/shell/default.nix @@ -1,15 +1,14 @@ { pkgs, host, ...}: { imports = [ - (import ./tmux.nix) + ./tmux.nix + ./git.nix ]; programs.bash = { enable = true; enableCompletion = true; historyControl = [ "ignorespace" ]; historyIgnore = [ - "ls" - "cd" ":q" "exit" ]; @@ -22,6 +21,8 @@ hms = "home-manager switch --flake $NIX_FLAKE#${host.username}"; rbs = "sudo nixos-rebuild switch --flake $NIX_FLAKE#${host.hostName}"; nvim-dev = "nix run ~/dev/nvim.nix"; + g = "git"; + k = "kubectl"; }; shellOptions = [ "cmdhist" @@ -67,6 +68,7 @@ }; programs.fzf = { enable = true; + historyWidgetOptions = ["--height 60% --preview ''"]; fileWidgetCommand = "command find -L . -mindepth 1 -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' -prune"; }; } diff --git a/modules/programs/direnv/default.nix b/home-manager/shared/programs/shell/direnv.nix similarity index 100% rename from modules/programs/direnv/default.nix rename to home-manager/shared/programs/shell/direnv.nix diff --git a/home-manager/shared/programs/shell/git.nix b/home-manager/shared/programs/shell/git.nix new file mode 100755 index 0000000..190ed19 --- /dev/null +++ b/home-manager/shared/programs/shell/git.nix @@ -0,0 +1,26 @@ +{ ... }: +{ + programs.git= { + enable = true; + userEmail = "cjriddz@protonmail.com"; + userName = "iofq"; + delta = { + enable = true; + options = { + side-by-side = true; + line-numbers = true; + }; + }; + extraConfig = { + core.editor = "nvim"; + }; + aliases = { + a = "add . -p"; + s = "status"; + f = "fetch"; + d = "diff"; + cm = "commit -m"; + rb = "rebase -i"; + }; + }; +} diff --git a/modules/programs/shell/tmux.nix b/home-manager/shared/programs/shell/tmux.nix similarity index 100% rename from modules/programs/shell/tmux.nix rename to home-manager/shared/programs/shell/tmux.nix diff --git a/modules/programs/warrior/default.nix b/home-manager/shared/programs/warrior/default.nix similarity index 100% rename from modules/programs/warrior/default.nix rename to home-manager/shared/programs/warrior/default.nix diff --git a/modules/programs/alacritty/default.nix b/home-manager/shared/wayland/alacritty/default.nix similarity index 100% rename from modules/programs/alacritty/default.nix rename to home-manager/shared/wayland/alacritty/default.nix diff --git a/home-manager/shared/wayland/audio/default.nix b/home-manager/shared/wayland/audio/default.nix new file mode 100755 index 0000000..0e2c65e --- /dev/null +++ b/home-manager/shared/wayland/audio/default.nix @@ -0,0 +1,9 @@ +{pkgs, ... }: +{ + home.packages = with pkgs; [ + pulseaudio + pulsemixer + alsa-utils + mpv + ]; +} diff --git a/home-manager/shared/wayland/default.nix b/home-manager/shared/wayland/default.nix new file mode 100644 index 0000000..69078c6 --- /dev/null +++ b/home-manager/shared/wayland/default.nix @@ -0,0 +1,10 @@ +{ home-manager, config, lib, pkgs, ... }: +{ + imports = [ + ./librewolf + ./alacritty + (import ./sway) + ./xdg + ./audio + ]; +} diff --git a/modules/librewolf/default.nix b/home-manager/shared/wayland/librewolf/default.nix similarity index 100% rename from modules/librewolf/default.nix rename to home-manager/shared/wayland/librewolf/default.nix diff --git a/modules/wayland/default.nix b/home-manager/shared/wayland/sway/default.nix similarity index 98% rename from modules/wayland/default.nix rename to home-manager/shared/wayland/sway/default.nix index 69171ba..2e7d2bd 100644 --- a/modules/wayland/default.nix +++ b/home-manager/shared/wayland/sway/default.nix @@ -1,4 +1,4 @@ -{ home-manager, username, config, lib, pkgs, ... }: +{ home-manager, config, lib, pkgs, ... }: { home.packages = with pkgs; [ wl-clipboard @@ -61,6 +61,8 @@ keybindings = let modifier = config.wayland.windowManager.sway.config.modifier; in lib.mkOptionDefault { + Prior = "nop"; + Next = "nop"; "${modifier}+x" = "kill"; "${modifier}+space" = "exec ${pkgs.dmenu}/bin/dmenu_path | ${pkgs.dmenu}/bin/dmenu | ${pkgs.findutils}/bin/xargs swaymsg exec --"; "${modifier}+bracketleft" = "exec --no-startup-id grimshot --notify save area /tmp/scrot-$(date \"+%Y-%m-%d\"T\"%H:%M:%S\").png"; diff --git a/home-manager/shared/wayland/xdg/default.nix b/home-manager/shared/wayland/xdg/default.nix new file mode 100755 index 0000000..44e97f7 --- /dev/null +++ b/home-manager/shared/wayland/xdg/default.nix @@ -0,0 +1,42 @@ +{pkgs, ... }: +{ + home.packages = with pkgs; [ + xdg-utils + ]; + xdg.configFile."mimeapps.list".force = true; + xdg.mimeApps = { + enable = true; + defaultApplications = { + "x-scheme-handler/http" = "librewolf.desktop"; + "x-scheme-handler/https" = "librewolf.desktop"; + "x-scheme-handler/chrome" = "librewolf.desktop"; + "video/mp4" = "librewolf.desktop"; + "video/mkv" = "librewolf.desktop"; + "image/jpeg" = "librewolf.desktop"; + "image/jpg" = "librewolf.desktop"; + "image/png" = "librewolf.desktop"; + "application/epub" = "librewolf.desktop"; + "application/pdf" = "librewolf.desktop"; + "application/x-extension-htm" = "librewolf.desktop"; + "application/x-extension-html" = "librewolf.desktop"; + "application/x-extension-shtml" = "librewolf.desktop"; + "application/xhtml+xml" = "librewolf.desktop"; + "application/x-extension-xhtml" = "librewolf.desktop"; + "application/x-extension-xht" = "librewolf.desktop"; + "x-scheme-handler/about" = "librewolf.desktop"; + "x-scheme-handler/unknown" = "librewolf.desktop"; + }; + associations.added = { + "x-scheme-handler/http" = "librewolf.desktop"; + "x-scheme-handler/https" = "librewolf.desktop"; + "x-scheme-handler/chrome" = "librewolf.desktop"; + "text/html" = "librewolf.desktop;"; + "application/x-extension-htm" = "librewolf.desktop;"; + "application/x-extension-html" = "librewolf.desktop;"; + "application/x-extension-shtml" = "librewolf.desktop;"; + "application/xhtml+xml" = "librewolf.desktop;"; + "application/x-extension-xhtml" = "librewolf.desktop;"; + "application/x-extension-xht" = "librewolf.desktop;"; + }; + }; +} diff --git a/home-manager/t14/home.nix b/home-manager/t14/home.nix new file mode 100755 index 0000000..b37b93e --- /dev/null +++ b/home-manager/t14/home.nix @@ -0,0 +1,35 @@ +{ pkgs, attrs, ... }: +{ + imports = [ + ../shared/programs/default.nix + ../shared/wayland/default.nix + ]; + home = { + username = attrs.username; + homeDirectory = "/home/" + attrs.username; + packages = with pkgs; [ + # gaming + prismlauncher + runelite + jdk17 + + # comms + signal-desktop + discord + + # apps + framesh + chromium + + # font + spleen + + # sysutils + appimage-run + wireguard-tools + + ]; + }; + fonts.fontconfig.enable = true; + systemd.user.startServices = "sd-switch"; +} diff --git a/home/common.nix b/home/common.nix deleted file mode 100755 index f89f41e..0000000 --- a/home/common.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ inputs, pkgs, ... }: -{ - programs.home-manager.enable = true; - nixpkgs.config.allowUnfree = true; - nix = { - settings = { - auto-optimise-store = true; - }; - package = pkgs.nixFlakes; - registry.nixpkgs.flake = inputs.nixpkgs; - extraOptions = '' - experimental-features = nix-command flakes - ''; - }; - home = { - stateVersion = "22.11"; - packages = with pkgs; [ - pulseaudio - pulsemixer - alsa-utils - appimage-run - wireguard-tools - spleen - mpv - ]; - }; - imports = ( import ../modules/programs ); - xdg.enable = true; - xdg.configFile."mimeapps.list".force = true; - fonts.fontconfig.enable = true; - systemd.user.startServices = "sd-switch"; -} diff --git a/home/default.nix b/home/default.nix deleted file mode 100644 index 22b3d12..0000000 --- a/home/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ inputs, ...}: -{ - "e" = inputs.home-manager.lib.homeManagerConfiguration { - pkgs = import inputs.nixpkgs { - system = "x86_64-linux"; - config.allowUnfree = true; - overlays = [ - (final: prev: { - inherit (inputs.nvim.packages.${final.system}) full; - inherit (inputs.tfa.packages.${final.system}) twofa; - }) - ]; - }; - extraSpecialArgs = { - inherit inputs; - host = { - hostName = "t14"; - username = "e"; - }; - }; - modules = [ - ./t14/home.nix - ./common.nix - ]; - }; -} - diff --git a/home/t14/home.nix b/home/t14/home.nix deleted file mode 100755 index bed61cf..0000000 --- a/home/t14/home.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ pkgs, ... }: -{ - imports = [ - ../../modules/wayland - ../../modules/librewolf - ]; - home = { - username = "e"; - homeDirectory = "/home/e"; - packages = with pkgs; [ - discord - signal-desktop - runelite - framesh - ledger-live-desktop - prismlauncher - chromium - jdk17 - ]; - }; -} diff --git a/modules/programs/default.nix b/modules/programs/default.nix deleted file mode 100644 index 54f31ec..0000000 --- a/modules/programs/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -[ - ./dev.nix - ./alacritty - ./nvim - ./shell - ./git - ./2fa - ./direnv - ./xdg - ./warrior -] diff --git a/modules/programs/git/default.nix b/modules/programs/git/default.nix deleted file mode 100755 index 5f7a7a8..0000000 --- a/modules/programs/git/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -{ - programs.git= { - enable = true; - userEmail = "cjriddz@protonmail.com"; - userName = "iofq"; - }; -} diff --git a/modules/programs/xdg/default.nix b/modules/programs/xdg/default.nix deleted file mode 100755 index bee607b..0000000 --- a/modules/programs/xdg/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{pkgs, ... }: -{ - home.packages = with pkgs; [ - xdg-utils - ]; - xdg.mimeApps = { - enable = true; - defaultApplications = { - "x-scheme-handler/http" = "io.gitlab.librewolf-community.desktop"; - "x-scheme-handler/https" = "io.gitlab.librewolf-community.desktop"; - "x-scheme-handler/chrome" = "io.gitlab.librewolf-community.desktop"; - "video/mp4" = "io.gitlab.librewolf-community.desktop"; - "video/mkv" = "io.gitlab.librewolf-community.desktop"; - "image/jpeg" = "io.gitlab.librewolf-community.desktop"; - "image/jpg" = "io.gitlab.librewolf-community.desktop"; - "image/png" = "io.gitlab.librewolf-community.desktop"; - "application/epub" = "io.gitlab.librewolf-community.desktop"; - "application/pdf" = "io.gitlab.librewolf-community.desktop"; - "application/x-extension-htm" = "io.gitlab.librewolf-community.desktop"; - "application/x-extension-html" = "io.gitlab.librewolf-community.desktop"; - "application/x-extension-shtml" = "io.gitlab.librewolf-community.desktop"; - "application/xhtml+xml" = "io.gitlab.librewolf-community.desktop"; - "application/x-extension-xhtml" = "io.gitlab.librewolf-community.desktop"; - "application/x-extension-xht" = "io.gitlab.librewolf-community.desktop"; - "x-scheme-handler/about" = "io.gitlab.librewolf-community.desktop"; - "x-scheme-handler/unknown" = "io.gitlab.librewolf-community.desktop"; - }; - associations.added = { - "x-scheme-handler/http" = "io.gitlab.librewolf-community.desktop"; - "x-scheme-handler/https" = "io.gitlab.librewolf-community.desktop"; - "x-scheme-handler/chrome" = "io.gitlab.librewolf-community.desktop"; - "text/html" = "io.gitlab.librewolf-community.desktop;"; - "application/x-extension-htm" = "io.gitlab.librewolf-community.desktop;"; - "application/x-extension-html" = "io.gitlab.librewolf-community.desktop;"; - "application/x-extension-shtml" = "io.gitlab.librewolf-community.desktop;"; - "application/xhtml+xml" = "io.gitlab.librewolf-community.desktop;"; - "application/x-extension-xhtml" = "io.gitlab.librewolf-community.desktop;"; - "application/x-extension-xht" = "io.gitlab.librewolf-community.desktop;"; - }; - }; -} diff --git a/nixos/configuration.nix b/nixos/configuration.nix index c02e49e..779dd1d 100755 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -10,8 +10,9 @@ networking.hostName = host.hostName; networking.firewall = { enable = true; - allowedTCPPorts = []; + allowedTCPPorts = [11111]; allowedUDPPorts = []; + logRefusedConnections = true; }; users.users.${host.username} = { isNormalUser = true; @@ -25,13 +26,15 @@ time.timeZone = "America/Chicago"; # Enable flakes and unfree packages - nix.settings.experimental-features = [ "nix-command" "flakes" ]; + nix.settings = { + auto-optimise-store = true; + experimental-features = [ "nix-command" "flakes" ]; + }; nix.gc = { automatic = true; dates = "00:00"; options = "--delete-older-than 14d"; }; - nixpkgs.config.allowUnfree = true; system.stateVersion = "22.11"; } diff --git a/nixos/t14/configuration.nix b/nixos/t14/configuration.nix index 2148d55..04a1e17 100755 --- a/nixos/t14/configuration.nix +++ b/nixos/t14/configuration.nix @@ -24,16 +24,27 @@ startAgent = true; }; services.flatpak.enable = true; + services.dbus.enable = true; xdg = { portal = { enable = true; - extraPortals = with pkgs; [ - xdg-desktop-portal-wlr - xdg-desktop-portal-gtk - ]; + xdgOpenUsePortal = true; + wlr.enable = true; + config = { + common = { + default = [ + "wlr" + ]; + }; + }; }; }; hardware.opengl.enable = true; + hardware.opengl.extraPackages = [ + pkgs.mesa.drivers + pkgs.libGL + ]; + hardware.opengl.setLdLibraryPath = true; boot.kernelPackages = pkgs.linuxPackages_latest; system.stateVersion = "22.11"; diff --git a/shell.nix b/shell.nix deleted file mode 100644 index 85ce71c..0000000 --- a/shell.nix +++ /dev/null @@ -1,15 +0,0 @@ -# devshell for bootstrapping nixos and home-manager -# nix develop - -{ pkgs }: { - default = pkgs.mkShell { - NIX_CONFIG = "experimental-features = nix-command flakes"; - nativeBuildInputs = with pkgs; [ - nix - home-manager - git - vim - ]; - }; -} -