Added dotfiles and hardware to user-specific folders
| 
		 Before Width: | Height: | Size: 221 KiB After Width: | Height: | Size: 221 KiB  | 
| 
		 Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 150 KiB  | 
| 
		 Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 218 KiB  | 
| 
		 Before Width: | Height: | Size: 772 KiB After Width: | Height: | Size: 772 KiB  | 
| 
		 Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB  | 
| 
		 Before Width: | Height: | Size: 344 KiB After Width: | Height: | Size: 344 KiB  | 
| 
		 Before Width: | Height: | Size: 591 KiB After Width: | Height: | Size: 591 KiB  | 
| 
		 Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 138 KiB  | 
@ -57,7 +57,7 @@
 | 
			
		||||
        modules = [
 | 
			
		||||
          ./nixos/desktop_configuration.nix
 | 
			
		||||
          # Setup nix-ld
 | 
			
		||||
          nix-ld.nixosModules.nix-ld
 | 
			
		||||
          # nix-ld.nixosModules.nix-ld
 | 
			
		||||
          # Setup home manager
 | 
			
		||||
          home-manager.nixosModules.home-manager {
 | 
			
		||||
              home-manager.useGlobalPkgs = true;
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@ in
 | 
			
		||||
                        engines = {
 | 
			
		||||
                            "Startpage" = {
 | 
			
		||||
                                urls = [{
 | 
			
		||||
                                    template = "https://www.startpage.com/do/mypage.pl?prfe=a1ffaae1a3f4dc133b6e11b3d611db561598fc16fbc43a22c2694805a5b4d46852c848cb54f3ccbc9cea0e8e83dab567d3abe2b350870e7781f8701d4558a1c988aced444d1e8d8a7b830563/search?query={searchTerms}";
 | 
			
		||||
                                    template = "https://www.startpage.com/sp/search?query={searchTerms}";
 | 
			
		||||
                                }];
 | 
			
		||||
                            };
 | 
			
		||||
                        };
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,5 @@
 | 
			
		||||
{ inputs, outputs, lib, config, pkgs, userName, fullName, email, hostName, desktop, gaming, ... }:
 | 
			
		||||
{
 | 
			
		||||
  # Home Manager needs a bit of information about you and the paths it should
 | 
			
		||||
  # manage.
 | 
			
		||||
  #
 | 
			
		||||
 | 
			
		||||
  # nixpkgs.overlays = [
 | 
			
		||||
  #   inputs.nur.overlay
 | 
			
		||||
  # ];
 | 
			
		||||
@ -29,13 +25,71 @@
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    # nur.repos.crazazy.js.eslint
 | 
			
		||||
    # inputs.nixpkgs-stable.legacyPackages.x86_64-linux.corectrl
 | 
			
		||||
    # kakoune
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Dev Tools
 | 
			
		||||
    #
 | 
			
		||||
    dbeaver
 | 
			
		||||
    cargo
 | 
			
		||||
    kakoune
 | 
			
		||||
    # flutter
 | 
			
		||||
    docker
 | 
			
		||||
    docker-compose
 | 
			
		||||
    python310
 | 
			
		||||
    nodejs_21
 | 
			
		||||
    zig
 | 
			
		||||
    ### LSP's
 | 
			
		||||
    rnix-lsp # Nix LSP
 | 
			
		||||
    openscad-lsp
 | 
			
		||||
    nodePackages.typescript-language-server
 | 
			
		||||
    vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
 | 
			
		||||
    rubyPackages.solargraph
 | 
			
		||||
    python310Packages.python-lsp-server
 | 
			
		||||
    zls
 | 
			
		||||
    ### Misc
 | 
			
		||||
    # android-udev-rules
 | 
			
		||||
    # android-tools
 | 
			
		||||
    # sdkmanager
 | 
			
		||||
    openscad
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Gaming
 | 
			
		||||
    #
 | 
			
		||||
    wine-wayland
 | 
			
		||||
    webcord
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Better Unix
 | 
			
		||||
    #
 | 
			
		||||
    bat
 | 
			
		||||
    duf
 | 
			
		||||
    fd
 | 
			
		||||
    fzf
 | 
			
		||||
    lsd
 | 
			
		||||
    ripgrep
 | 
			
		||||
    gtop
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Photo / Video
 | 
			
		||||
    #
 | 
			
		||||
    davinci-resolve-studio
 | 
			
		||||
    imv
 | 
			
		||||
    mpv
 | 
			
		||||
    gimp
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Communication
 | 
			
		||||
    #
 | 
			
		||||
    mumble
 | 
			
		||||
    slack
 | 
			
		||||
    signal-desktop
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Other
 | 
			
		||||
    #
 | 
			
		||||
    keepassxc
 | 
			
		||||
    obs-studio
 | 
			
		||||
    signal-desktop
 | 
			
		||||
    waybar
 | 
			
		||||
    wofi
 | 
			
		||||
    xfce.thunar
 | 
			
		||||
 | 
			
		||||
    # Install fonts
 | 
			
		||||
    (nerdfonts.override { fonts = [ "Hermit" "Overpass" ]; })
 | 
			
		||||
 | 
			
		||||
@ -58,7 +112,7 @@
 | 
			
		||||
    # # the Nix store. Activating the configuration will then make '~/.screenrc' a
 | 
			
		||||
    # # symlink to the Nix store copy.
 | 
			
		||||
    # ".screenrc".source = dotfiles/screenrc;
 | 
			
		||||
    source = ../../dotfiles;
 | 
			
		||||
    source = ../../nate/dotfiles;
 | 
			
		||||
    recursive = true;
 | 
			
		||||
 | 
			
		||||
    # # You can also set the file content immediately.
 | 
			
		||||
@ -85,24 +139,6 @@
 | 
			
		||||
    XDG_CURRENT_DESKTOP="sway";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  wayland.windowManager.sway = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      # config = rec {
 | 
			
		||||
      #     modifier = "Mod4";
 | 
			
		||||
      #     terminal = "foot";
 | 
			
		||||
      #     # startup = [
 | 
			
		||||
      #     #     {command = "firefox";}
 | 
			
		||||
      #     # ];
 | 
			
		||||
      # };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  # kdeconnect setup
 | 
			
		||||
  # services.kdeconnect = {
 | 
			
		||||
  #     enable = true;
 | 
			
		||||
  #     indicator = true;
 | 
			
		||||
  # };
 | 
			
		||||
 | 
			
		||||
  # Git setup
 | 
			
		||||
  programs.git = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
@ -113,9 +149,6 @@
 | 
			
		||||
  # Zsh setup
 | 
			
		||||
  programs.zsh = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      #history = {
 | 
			
		||||
      #    Size = 10000;
 | 
			
		||||
      #};
 | 
			
		||||
      oh-my-zsh = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
          plugins = [ "git" ];
 | 
			
		||||
 | 
			
		||||
@ -22,14 +22,15 @@
 | 
			
		||||
    ###
 | 
			
		||||
    ##  Configuration
 | 
			
		||||
    ###
 | 
			
		||||
 | 
			
		||||
    config = lib.mkIf config.swaywm.enable {
 | 
			
		||||
 | 
			
		||||
        programs.sway.enable = true;
 | 
			
		||||
 | 
			
		||||
        nixpkgs.config.allowUnfree = config.swaywm.useNonFree;
 | 
			
		||||
        # For R2ModMan
 | 
			
		||||
        nixpkgs.config.permittedInsecurePackages = [
 | 
			
		||||
            "electron-25.9.0"
 | 
			
		||||
        ];
 | 
			
		||||
        # nixpkgs.config.permittedInsecurePackages = [
 | 
			
		||||
        #     "electron-25.9.0"
 | 
			
		||||
        # ];
 | 
			
		||||
        
 | 
			
		||||
        ###
 | 
			
		||||
        ##  XDG portal setup
 | 
			
		||||
@ -70,11 +71,12 @@
 | 
			
		||||
                swaylock
 | 
			
		||||
                swayidle
 | 
			
		||||
                wl-clipboard
 | 
			
		||||
                waybar
 | 
			
		||||
                wdisplays
 | 
			
		||||
                wofi
 | 
			
		||||
                xdg-utils
 | 
			
		||||
                zsh
 | 
			
		||||
                # Fonts
 | 
			
		||||
 | 
			
		||||
             ]
 | 
			
		||||
            config.swaywm.systemPackages
 | 
			
		||||
            # (lib.mkIf config.swaywm.installGaming [
 | 
			
		||||
@ -96,6 +98,9 @@
 | 
			
		||||
        programs.zsh.enable = true;
 | 
			
		||||
        programs.steam.enable = config.swaywm.installGaming;
 | 
			
		||||
 | 
			
		||||
        programs.adb.enable = true;
 | 
			
		||||
        # kdeconnect setup
 | 
			
		||||
        programs.kdeconnect.enable = true;
 | 
			
		||||
 | 
			
		||||
        ###
 | 
			
		||||
        ##  Services
 | 
			
		||||
@ -109,9 +114,6 @@
 | 
			
		||||
          pulse.enable = true;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        # kdeconnect setup
 | 
			
		||||
        programs.kdeconnect.enable = true;
 | 
			
		||||
 | 
			
		||||
        ###
 | 
			
		||||
        ##  Misc
 | 
			
		||||
        ###
 | 
			
		||||
@ -120,9 +122,8 @@
 | 
			
		||||
        security.polkit.enable = true;
 | 
			
		||||
 | 
			
		||||
        hardware.opengl = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
            enable = true;
 | 
			
		||||
            driSupport = true;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,52 +0,0 @@
 | 
			
		||||
{ lib, config, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
	cfg = config.main_user;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
    options.main_user = {
 | 
			
		||||
        enable = lib.mkEnableOption "enable user module";
 | 
			
		||||
 | 
			
		||||
        isDesktopUser = lib.mkOption {
 | 
			
		||||
            default = false;
 | 
			
		||||
            example = true;
 | 
			
		||||
            description = "Add additional user groups for desktop users";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        userName = lib.mkOption {
 | 
			
		||||
            default = "mainuser";
 | 
			
		||||
            description = "username";
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    config = lib.mkIf cfg.enable {
 | 
			
		||||
        users.users.${cfg.userName} = lib.mkMerge [
 | 
			
		||||
            {
 | 
			
		||||
                isNormalUser = true;
 | 
			
		||||
                initialPassword = "password";
 | 
			
		||||
 | 
			
		||||
                description = "main user";
 | 
			
		||||
                shell = pkgs.zsh;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            (lib.mkIf (!cfg.isDesktopUser) {
 | 
			
		||||
                extraGroups = [
 | 
			
		||||
                    "wheel"
 | 
			
		||||
                    "networkmanager"
 | 
			
		||||
                    cfg.userName
 | 
			
		||||
                ];
 | 
			
		||||
            })
 | 
			
		||||
            (lib.mkIf cfg.isDesktopUser {
 | 
			
		||||
                extraGroups = [
 | 
			
		||||
                    "wheel"
 | 
			
		||||
                    "networkmanager"
 | 
			
		||||
                    "corectrl"
 | 
			
		||||
                    cfg.userName
 | 
			
		||||
                    "video"
 | 
			
		||||
                    "audio"
 | 
			
		||||
                    # For android
 | 
			
		||||
                    "adbusers"
 | 
			
		||||
                ];
 | 
			
		||||
            })
 | 
			
		||||
        ];
 | 
			
		||||
    };
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
{ config, lib, inputs, outputs, pkgs, userName, hostName, desktop, timeZone, gaming, system, ... }:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  supportedDesktops = [ "sway" ];
 | 
			
		||||
  supportedDesktops = [ "sway" "kde" ];
 | 
			
		||||
  supportedDesktopsStr = lib.strings.concatStringsSep ", " supportedDesktops;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
@ -52,71 +52,9 @@ in
 | 
			
		||||
      useNonFree = true;
 | 
			
		||||
      installGaming = gaming;
 | 
			
		||||
      systemPackages = with pkgs; [
 | 
			
		||||
        #
 | 
			
		||||
        # Dev Tools
 | 
			
		||||
        #
 | 
			
		||||
        dbeaver
 | 
			
		||||
        cargo
 | 
			
		||||
        kakoune
 | 
			
		||||
        # flutter
 | 
			
		||||
        docker
 | 
			
		||||
        docker-compose
 | 
			
		||||
        python310
 | 
			
		||||
        nodejs_21
 | 
			
		||||
        zig
 | 
			
		||||
        ### LSP's
 | 
			
		||||
        rnix-lsp # Nix LSP
 | 
			
		||||
        openscad-lsp
 | 
			
		||||
        nodePackages.typescript-language-server
 | 
			
		||||
        vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
 | 
			
		||||
        rubyPackages.solargraph
 | 
			
		||||
        python310Packages.python-lsp-server
 | 
			
		||||
        zls
 | 
			
		||||
        ### Misc
 | 
			
		||||
        # android-udev-rules
 | 
			
		||||
        # android-tools
 | 
			
		||||
        # sdkmanager
 | 
			
		||||
        openscad
 | 
			
		||||
 | 
			
		||||
        #
 | 
			
		||||
        # Productivity
 | 
			
		||||
        #
 | 
			
		||||
        libreoffice
 | 
			
		||||
 | 
			
		||||
        #
 | 
			
		||||
        # Gaming
 | 
			
		||||
        #
 | 
			
		||||
        mumble
 | 
			
		||||
        wine-wayland
 | 
			
		||||
        r2modman
 | 
			
		||||
 | 
			
		||||
        #
 | 
			
		||||
        # Better Unix
 | 
			
		||||
        #
 | 
			
		||||
        bat
 | 
			
		||||
        duf
 | 
			
		||||
        fd
 | 
			
		||||
        fzf
 | 
			
		||||
        lsd
 | 
			
		||||
        ripgrep
 | 
			
		||||
        gtop
 | 
			
		||||
 | 
			
		||||
        #
 | 
			
		||||
        # Photo / Video
 | 
			
		||||
        #
 | 
			
		||||
        davinci-resolve-studio
 | 
			
		||||
        imv
 | 
			
		||||
        mpv
 | 
			
		||||
        gimp
 | 
			
		||||
 | 
			
		||||
        #
 | 
			
		||||
        # Work
 | 
			
		||||
        #
 | 
			
		||||
        slack
 | 
			
		||||
      ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.adb.enable = true;
 | 
			
		||||
 
 | 
			
		||||
  system.stateVersion = "23.11"; # Did you read the comment?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||