commit b7632ea8ac92cb9fde9506982eaa184c0d34a088 Author: bangae1 Date: Sun Nov 23 20:22:13 2025 +0900 first diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..d47c2b5 --- /dev/null +++ b/configuration.nix @@ -0,0 +1,130 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, inputs, pkgs, dankMaterialShell, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + dankMaterialShell.nixosModules.greeter + /etc/nixos/hardware-configuration.nix + ]; + + services.xserver.videoDrivers = [ "qemu" ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "nixos"; # Define your hostname. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Enable networking + networking.networkmanager.enable = true; + + # Set your time zone. + time.timeZone = "Asia/Seoul"; + + # Select internationalisation properties. + i18n.defaultLocale = "ko_KR.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "ko_KR.UTF-8"; + LC_IDENTIFICATION = "ko_KR.UTF-8"; + LC_MEASUREMENT = "ko_KR.UTF-8"; + LC_MONETARY = "ko_KR.UTF-8"; + LC_NAME = "ko_KR.UTF-8"; + LC_NUMERIC = "ko_KR.UTF-8"; + LC_PAPER = "ko_KR.UTF-8"; + LC_TELEPHONE = "ko_KR.UTF-8"; + LC_TIME = "ko_KR.UTF-8"; + }; + + # Configure keymap in X11 + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.bangae1 = { + isNormalUser = true; + description = "bangae1"; + extraGroups = [ "networkmanager" "wheel" ]; + packages = with pkgs; []; + }; + + # Enable automatic login for the user. + services.getty.autologinUser = "bangae1"; + + services.spice-vdagentd.enable = true; + services.qemuGuest.enable = true; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + # wget + git + fish + xorg.xrandr + ]; + + environment.pathsToLink = [ + "/share/applications" + "/share/xdg-desktop-portal" + ]; + + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + programs.nano.nanorc = '' + set tabsize 2 + set tabstospaces + ''; + + programs.dankMaterialShell.greeter = { + enable = true; + compositor.name = "niri"; + configHome = "/home/bangae1"; + configFiles = [ + "/home/bangae1/DankMaterialShell/settings.json" + ]; + }; + + systemd.user.services.niri-flake-polkit.enable = false; + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "25.05"; # Did you read the comment? + +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..d6a89bc --- /dev/null +++ b/flake.lock @@ -0,0 +1,201 @@ +{ + "nodes": { + "dankMaterialShell": { + "inputs": { + "dgop": [ + "dgop" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1763876903, + "narHash": "sha256-M0vxJ+3ARsCSjY0p4PtHwizit5nnJKBYSWF94UwoCS0=", + "owner": "AvengeMedia", + "repo": "DankMaterialShell", + "rev": "61ec0c697ae8263462064482db71abbcb4c54488", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "DankMaterialShell", + "type": "github" + } + }, + "dgop": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1762835999, + "narHash": "sha256-UykYGrGFOFTmDpKTLNxj1wvd1gbDG4TkqLNSbV0TYwk=", + "owner": "AvengeMedia", + "repo": "dgop", + "rev": "799301991cd5dcea9b64245f9d500dcc76615653", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "dgop", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1763869804, + "narHash": "sha256-2lw+MnkrnygEyUl+3qZjnlCCJF/kJ57GUtYkAQPfLDA=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "04c27d743d069cad58f9707ee8e165c471b1c7cd", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "niri": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" + }, + "locked": { + "lastModified": 1763835287, + "narHash": "sha256-8wPX0t4wM6uLVpbRnU8yBqV2e93eXiYPiAJYzS6HLNc=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "5e06972e46f11274ae3dcb5175c45dc5b9e85410", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1756556321, + "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.08", + "repo": "niri", + "type": "github" + } + }, + "niri-unstable": { + "flake": false, + "locked": { + "lastModified": 1763799335, + "narHash": "sha256-b6hgDHjrLgTp4Y8DD5woGChg0R+yH16m0ZWVi9BhjrA=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "cfc01b895c0c7cbb9692852488675cc46693bd2a", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1763678758, + "narHash": "sha256-+hBiJ+kG5IoffUOdlANKFflTT5nO3FrrR2CA3178Y5s=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "117cc7f94e8072499b0a7aa4c52084fa4e11cc9b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1763622513, + "narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "dankMaterialShell": "dankMaterialShell", + "dgop": "dgop", + "home-manager": "home-manager", + "niri": "niri", + "nixpkgs": "nixpkgs" + } + }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1755491097, + "narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "388d291e82ffbc73be18169d39470f340707edaa", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.7", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "xwayland-satellite-unstable": { + "flake": false, + "locked": { + "lastModified": 1763704521, + "narHash": "sha256-ceYEV6PnvUN8Zixao4gpPuN+VT3B0SlAXKuPNHZhqUY=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "f379ff5722a821212eb59ada9cf8e51cb3654aad", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..7fab209 --- /dev/null +++ b/flake.nix @@ -0,0 +1,47 @@ +{ + description = "A template that shows all standard flake outputs"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + niri = { + url = "github:sodiboo/niri-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + dgop = { + url = "github:AvengeMedia/dgop"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + dankMaterialShell = { + url = "github:AvengeMedia/DankMaterialShell"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.dgop.follows = "dgop"; + }; + }; + + + outputs = { self, nixpkgs, home-manager, niri, dankMaterialShell, ... }@inputs: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in { + nixosConfigurations = { + nixos = nixpkgs.lib.nixosSystem { + specialArgs = { inherit system niri dankMaterialShell; }; + modules = [ + ./configuration.nix + home-manager.nixosModules.home-manager + { + home-manager.extraSpecialArgs = { inherit niri dankMaterialShell; }; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.bangae1 = import ./niri.nix; + } + ]; + }; + }; + }; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..b5e88de --- /dev/null +++ b/home.nix @@ -0,0 +1,31 @@ +{ config, lib, pkgs, inputs, ... }: +{ + imports = [ + niri.homeModules.niri + ]; + + options.app.niri.enable = lib.mkEnableOption "niri"; + + home.username = "bangae1"; + home.homeDirectory = "/home/bangae1"; + home.stateVersion = "25.05"; + + home.packages = [ + pkgs.alacritty + ]; + + home.sessionVariables = { + XDG_SESSION_TYPE = "wayland"; + XDG_SESSION_DESKTOP = "niri"; + }; + + + #programs.niri = { + # enable = true; + # settings = { + # input."mod-key" = "Alt"; + # }; + #}; + programs.zsh.enable = false; + programs.fish.enable = true; +} diff --git a/niri.nix b/niri.nix new file mode 100644 index 0000000..dcf609c --- /dev/null +++ b/niri.nix @@ -0,0 +1,50 @@ +{ config, pkgs, lib, niri, dankMaterialShell, ... }: +{ + + imports = [ + niri.homeModules.niri + dankMaterialShell.homeModules.dankMaterialShell.default + dankMaterialShell.homeModules.dankMaterialShell.niri + ]; + + programs.niri = { + enable = true; + settings = { + input.mod-key = "Alt"; + outputs."Defualt" = { + #mode = "1920x1080"; + scale = 1; + }; + environment."NIXOS_OZONE_WL" = "1"; + environment."WLR_DRM_DEVICES" = "/dev/dri/card1-Virtual-1"; + }; + }; + + programs.dankMaterialShell = { + enable = true; + niri = { + enableKeybinds = true; + enableSpawn = true; + }; + systemd = { + enable = true; + restartIfChanged = true; + }; + }; + + home.username = "bangae1"; + home.homeDirectory = "/home/bangae1"; + home.stateVersion = "25.05"; + + home.packages = [ + pkgs.alacritty + ]; + + home.sessionVariables = { + XDG_SESSION_TYPE = "wayland"; + XDG_SESSION_DESKTOP = "niri"; + }; + + programs.zsh.enable = false; + programs.fish.enable = true; +}