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 = [
 | 
					        modules = [
 | 
				
			||||||
          ./nixos/desktop_configuration.nix
 | 
					          ./nixos/desktop_configuration.nix
 | 
				
			||||||
          # Setup nix-ld
 | 
					          # Setup nix-ld
 | 
				
			||||||
          nix-ld.nixosModules.nix-ld
 | 
					          # nix-ld.nixosModules.nix-ld
 | 
				
			||||||
          # Setup home manager
 | 
					          # Setup home manager
 | 
				
			||||||
          home-manager.nixosModules.home-manager {
 | 
					          home-manager.nixosModules.home-manager {
 | 
				
			||||||
              home-manager.useGlobalPkgs = true;
 | 
					              home-manager.useGlobalPkgs = true;
 | 
				
			||||||
 | 
				
			|||||||
@ -30,7 +30,7 @@ in
 | 
				
			|||||||
                        engines = {
 | 
					                        engines = {
 | 
				
			||||||
                            "Startpage" = {
 | 
					                            "Startpage" = {
 | 
				
			||||||
                                urls = [{
 | 
					                                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, ... }:
 | 
					{ 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 = [
 | 
					  # nixpkgs.overlays = [
 | 
				
			||||||
  #   inputs.nur.overlay
 | 
					  #   inputs.nur.overlay
 | 
				
			||||||
  # ];
 | 
					  # ];
 | 
				
			||||||
@ -29,13 +25,71 @@
 | 
				
			|||||||
  home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
    # nur.repos.crazazy.js.eslint
 | 
					    # nur.repos.crazazy.js.eslint
 | 
				
			||||||
    # inputs.nixpkgs-stable.legacyPackages.x86_64-linux.corectrl
 | 
					    # 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
 | 
					    keepassxc
 | 
				
			||||||
    obs-studio
 | 
					    obs-studio
 | 
				
			||||||
    signal-desktop
 | 
					
 | 
				
			||||||
    waybar
 | 
					 | 
				
			||||||
    wofi
 | 
					 | 
				
			||||||
    xfce.thunar
 | 
					 | 
				
			||||||
    # Install fonts
 | 
					    # Install fonts
 | 
				
			||||||
    (nerdfonts.override { fonts = [ "Hermit" "Overpass" ]; })
 | 
					    (nerdfonts.override { fonts = [ "Hermit" "Overpass" ]; })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -58,7 +112,7 @@
 | 
				
			|||||||
    # # the Nix store. Activating the configuration will then make '~/.screenrc' a
 | 
					    # # the Nix store. Activating the configuration will then make '~/.screenrc' a
 | 
				
			||||||
    # # symlink to the Nix store copy.
 | 
					    # # symlink to the Nix store copy.
 | 
				
			||||||
    # ".screenrc".source = dotfiles/screenrc;
 | 
					    # ".screenrc".source = dotfiles/screenrc;
 | 
				
			||||||
    source = ../../dotfiles;
 | 
					    source = ../../nate/dotfiles;
 | 
				
			||||||
    recursive = true;
 | 
					    recursive = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # # You can also set the file content immediately.
 | 
					    # # You can also set the file content immediately.
 | 
				
			||||||
@ -85,24 +139,6 @@
 | 
				
			|||||||
    XDG_CURRENT_DESKTOP="sway";
 | 
					    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
 | 
					  # Git setup
 | 
				
			||||||
  programs.git = {
 | 
					  programs.git = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
@ -113,9 +149,6 @@
 | 
				
			|||||||
  # Zsh setup
 | 
					  # Zsh setup
 | 
				
			||||||
  programs.zsh = {
 | 
					  programs.zsh = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      #history = {
 | 
					 | 
				
			||||||
      #    Size = 10000;
 | 
					 | 
				
			||||||
      #};
 | 
					 | 
				
			||||||
      oh-my-zsh = {
 | 
					      oh-my-zsh = {
 | 
				
			||||||
          enable = true;
 | 
					          enable = true;
 | 
				
			||||||
          plugins = [ "git" ];
 | 
					          plugins = [ "git" ];
 | 
				
			||||||
 | 
				
			|||||||
@ -22,14 +22,15 @@
 | 
				
			|||||||
    ###
 | 
					    ###
 | 
				
			||||||
    ##  Configuration
 | 
					    ##  Configuration
 | 
				
			||||||
    ###
 | 
					    ###
 | 
				
			||||||
 | 
					 | 
				
			||||||
    config = lib.mkIf config.swaywm.enable {
 | 
					    config = lib.mkIf config.swaywm.enable {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        programs.sway.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        nixpkgs.config.allowUnfree = config.swaywm.useNonFree;
 | 
					        nixpkgs.config.allowUnfree = config.swaywm.useNonFree;
 | 
				
			||||||
        # For R2ModMan
 | 
					        # For R2ModMan
 | 
				
			||||||
        nixpkgs.config.permittedInsecurePackages = [
 | 
					        # nixpkgs.config.permittedInsecurePackages = [
 | 
				
			||||||
            "electron-25.9.0"
 | 
					        #     "electron-25.9.0"
 | 
				
			||||||
        ];
 | 
					        # ];
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        ###
 | 
					        ###
 | 
				
			||||||
        ##  XDG portal setup
 | 
					        ##  XDG portal setup
 | 
				
			||||||
@ -70,11 +71,12 @@
 | 
				
			|||||||
                swaylock
 | 
					                swaylock
 | 
				
			||||||
                swayidle
 | 
					                swayidle
 | 
				
			||||||
                wl-clipboard
 | 
					                wl-clipboard
 | 
				
			||||||
 | 
					                waybar
 | 
				
			||||||
                wdisplays
 | 
					                wdisplays
 | 
				
			||||||
 | 
					                wofi
 | 
				
			||||||
                xdg-utils
 | 
					                xdg-utils
 | 
				
			||||||
                zsh
 | 
					                zsh
 | 
				
			||||||
                # Fonts
 | 
					                # Fonts
 | 
				
			||||||
 | 
					 | 
				
			||||||
             ]
 | 
					             ]
 | 
				
			||||||
            config.swaywm.systemPackages
 | 
					            config.swaywm.systemPackages
 | 
				
			||||||
            # (lib.mkIf config.swaywm.installGaming [
 | 
					            # (lib.mkIf config.swaywm.installGaming [
 | 
				
			||||||
@ -96,6 +98,9 @@
 | 
				
			|||||||
        programs.zsh.enable = true;
 | 
					        programs.zsh.enable = true;
 | 
				
			||||||
        programs.steam.enable = config.swaywm.installGaming;
 | 
					        programs.steam.enable = config.swaywm.installGaming;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        programs.adb.enable = true;
 | 
				
			||||||
 | 
					        # kdeconnect setup
 | 
				
			||||||
 | 
					        programs.kdeconnect.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ###
 | 
					        ###
 | 
				
			||||||
        ##  Services
 | 
					        ##  Services
 | 
				
			||||||
@ -109,9 +114,6 @@
 | 
				
			|||||||
          pulse.enable = true;
 | 
					          pulse.enable = true;
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # kdeconnect setup
 | 
					 | 
				
			||||||
        programs.kdeconnect.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        ###
 | 
					        ###
 | 
				
			||||||
        ##  Misc
 | 
					        ##  Misc
 | 
				
			||||||
        ###
 | 
					        ###
 | 
				
			||||||
@ -120,9 +122,8 @@
 | 
				
			|||||||
        security.polkit.enable = true;
 | 
					        security.polkit.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        hardware.opengl = {
 | 
					        hardware.opengl = {
 | 
				
			||||||
        enable = true;
 | 
					            enable = true;
 | 
				
			||||||
            driSupport = 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, ... }:
 | 
					{ config, lib, inputs, outputs, pkgs, userName, hostName, desktop, timeZone, gaming, system, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  supportedDesktops = [ "sway" ];
 | 
					  supportedDesktops = [ "sway" "kde" ];
 | 
				
			||||||
  supportedDesktopsStr = lib.strings.concatStringsSep ", " supportedDesktops;
 | 
					  supportedDesktopsStr = lib.strings.concatStringsSep ", " supportedDesktops;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -52,71 +52,9 @@ in
 | 
				
			|||||||
      useNonFree = true;
 | 
					      useNonFree = true;
 | 
				
			||||||
      installGaming = gaming;
 | 
					      installGaming = gaming;
 | 
				
			||||||
      systemPackages = with pkgs; [
 | 
					      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
 | 
					        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?
 | 
					  system.stateVersion = "23.11"; # Did you read the comment?
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||