diff --git a/flake.nix b/flake.nix index 7f71bf8..250b0c2 100644 --- a/flake.nix +++ b/flake.nix @@ -13,40 +13,39 @@ }; outputs = { self, nixpkgs, nixos-hardware, ... }@inputs: - let - system = "x86_64-linux"; - pkg = nixpkgs.legacyPackages.${system}; - in - { - nixosConfigurations = { - laptop = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs;}; - modules = [ - ./hosts/laptop/configuration.nix - inputs.home-manager.nixosModules.default - inputs.stylix.nixosModules.stylix - nixos-hardware.nixosModules.lenovo-thinkpad-x13-yoga - ]; - }; + let + system = "x86_64-linux"; + pkg = nixpkgs.legacyPackages.${system}; + in { + nixosConfigurations = { + laptop = nixpkgs.lib.nixosSystem { + specialArgs = { inherit inputs; }; + modules = [ + ./hosts/laptop/configuration.nix + inputs.home-manager.nixosModules.default + inputs.stylix.nixosModules.stylix + nixos-hardware.nixosModules.lenovo-thinkpad-x13-yoga + ]; + }; - server = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs;}; - modules = [ - ./hosts/server/configuration.nix - inputs.home-manager.nixosModules.default - nixos-hardware.nixosModules.system76 - ]; - }; + server = nixpkgs.lib.nixosSystem { + specialArgs = { inherit inputs; }; + modules = [ + ./hosts/server/configuration.nix + inputs.home-manager.nixosModules.default + nixos-hardware.nixosModules.system76 + ]; + }; - tablet = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs;}; - modules = [ - ./hosts/tablet/configuration.nix - inputs.home-manager.nixosModules.default - nixos-hardware.nixosModules.microsoft-surface-pro-intel - ]; - }; + tablet = nixpkgs.lib.nixosSystem { + specialArgs = { inherit inputs; }; + modules = [ + ./hosts/tablet/configuration.nix + inputs.home-manager.nixosModules.default + nixos-hardware.nixosModules.microsoft-surface-pro-intel + ]; + }; - }; - }; + }; + }; } diff --git a/hosts/home/gnome.nix b/hosts/home/gnome.nix index 4346387..1276373 100644 --- a/hosts/home/gnome.nix +++ b/hosts/home/gnome.nix @@ -10,8 +10,8 @@ # `gnome-extensions list` for a list enabled-extensions = [ "Vitals@CoreCoding.com" - "blur-my-shell@aunetx" - "search-light@icedman.github.com" + "blur-my-shell@aunetx" + "search-light@icedman.github.com" ]; }; }; diff --git a/hosts/home/home_common.nix b/hosts/home/home_common.nix index bf31df3..218315b 100644 --- a/hosts/home/home_common.nix +++ b/hosts/home/home_common.nix @@ -13,6 +13,7 @@ userName = "k"; userEmail = "markers711@gmail.com"; }; + tmux = { enable = true; }; starship.enable = true; zsh = { enable = true; diff --git a/hosts/home/sway.nix b/hosts/home/sway.nix new file mode 100644 index 0000000..149e8f4 --- /dev/null +++ b/hosts/home/sway.nix @@ -0,0 +1,37 @@ +{ config, pkgs, inputs, ... }: + +{ + imports = [ ./waybar.nix ./tile.nix ]; + + wayland.windowManager.sway = { + enable = true; + config = { + modifier = "Mod4"; + floating.border = 0; + window.border = 1; + window.titlebar = false; + terminal = "${pkgs.foot}/bin/foot"; + menu = "${pkgs.rofi}/bin/rofi -show drun -modi drun"; + bars = []; + gaps = { + inner = 10; + outer = 5; + }; + }; + }; + + home.sessionVariables = { + MOZ_ENABLE_WAYLAND = "1"; + MOZ_USE_XINPUT2 = "1"; + XDG_SESSION_TYPE = "wayland"; + SDL_VIDEODRIVER = "wayland"; + QT_QPA_PLATFORM = "wayland"; + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; + _JAVA_AWT_WM_NONREPARENTING = 1; + }; + services = { + swayidle = { enable = true; }; + }; + +} + diff --git a/hosts/home/tile.nix b/hosts/home/tile.nix new file mode 100644 index 0000000..a8d3935 --- /dev/null +++ b/hosts/home/tile.nix @@ -0,0 +1,19 @@ +{ config, pkgs, inputs, ... }: + +{ + + services = { + mako = { enable = true; }; + }; + + programs = { + mako = { enable = true; }; + foot = { enable = true; }; + swaylock = {enable = true;}; + rofi = { + enable = true; + package = pkgs.rofi-wayland; + }; + }; +} + diff --git a/hosts/home/waybar.nix b/hosts/home/waybar.nix new file mode 100644 index 0000000..48b846b --- /dev/null +++ b/hosts/home/waybar.nix @@ -0,0 +1,73 @@ +{ config, pkgs, ... }: { + programs.waybar = { + enable = true; + systemd.enable = true; + settings = { + mainBar = { + layer = "bottom"; + position = "bottom"; + output = [ "eDP-1" ]; + + modules-left = [ "sway/workspaces" "sway/mode" ]; + modules-center = [ "clock" ]; + modules-right = [ "pulseaudio" "network" "battery" ]; + + cpu = { + interval = 15; + format = " {}%"; + max-length = 15; + }; + + memory = { + interval = 30; + format = " {}%"; + max-length = 15; + }; + + "pulseaudio" = { + format = "{volume}% {icon}"; + format-bluetooth = "{volume}% {icon}"; + format-muted = ""; + format-icons = { + headphone = ""; + hands-free = ""; + headset = ""; + phone = ""; + portable = ""; + car = ""; + default = [ "" "" ]; + }; + scroll-step = 1; + on-click = "pavucontrol"; + }; + + backlight = { + tooltip = false; + format = " {}%"; + interval = 1; + on-scroll-up = "brightnessctl s 1515"; + on-scroll-down = "brightnessctl s 1"; + }; + + network = { + format = "{ifname}"; + format-wifi = "{essid} ({signalStrength}%) "; + format-ethernet = "{ipaddr}/{cidr} 󰊗"; + format-disconnected = "󰤮"; + tooltip-format = "{ifname} via {gwaddr} 󰊗"; + tooltip-format-wifi = "{essid} ({signalStrength}%) "; + tooltip-format-ethernet = "{ifname} "; + tooltip-format-disconnected = "Disconnected"; + max-length = 50; + }; + + battery = { + format = "{capacity}% {icon}"; + "format-icons" = [ "" "" "" "" "" ]; + }; + + clock = { "format-alt" = "{:%a, %d. %b %H:%M}"; }; + }; + }; + }; +} diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index b3632e9..93cb66f 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -7,6 +7,8 @@ system.autoUpgrade.enable = true; time.timeZone = "America/New_York"; security.rtkit.enable = true; + security.polkit.enable = true; + security.pam.services.swaylock = {}; powerManagement.enable = true; nix = { @@ -56,13 +58,16 @@ stylix = { enable = true; + autoEnable = true; polarity = "light"; image = ./wallpaper.png; base16Scheme = "${pkgs.base16-schemes}/share/themes/brushtrees.yaml"; opacity = { - terminal = .85; - popups = .75; + terminal = 0.85; + popups = 0.75; + desktop = 0.75; }; + cursor = { package = pkgs.adwaita-icon-theme; name = "Adwaita"; diff --git a/hosts/laptop/home.nix b/hosts/laptop/home.nix index 5052165..8819111 100644 --- a/hosts/laptop/home.nix +++ b/hosts/laptop/home.nix @@ -1,15 +1,10 @@ { config, pkgs, inputs, ... }: { - imports = [ - ../home/home_common.nix - ../home/gnome.nix - ]; - - stylix.enable = true; + imports = [ ../home/home_common.nix ../home/gnome.nix ../home/sway.nix ]; nixpkgs.config.allowUnfree = true; - + home = { packages = with pkgs; [ nerdfonts @@ -46,4 +41,9 @@ defaultEditor = true; }; }; + stylix = { + enable = true; + autoEnable = true; + }; + } diff --git a/hosts/server/configuration.nix b/hosts/server/configuration.nix index 5417d52..4f74910 100644 --- a/hosts/server/configuration.nix +++ b/hosts/server/configuration.nix @@ -27,24 +27,20 @@ home-manager = { users = { "k" = import ./home.nix; }; }; - environment.systemPackages = with pkgs; [ - microcodeIntel - ]; + environment.systemPackages = with pkgs; [ microcodeIntel ]; hardware.opengl = { - enable = true; - extraPackages = with pkgs; [ - intel-compute-runtime - intel-media-driver - vaapiIntel - vaapiVdpau - libvdpau-va-gl - vpl-gpu-rt - ]; + enable = true; + extraPackages = with pkgs; [ + intel-compute-runtime + intel-media-driver + vaapiIntel + vaapiVdpau + libvdpau-va-gl + vpl-gpu-rt + ]; }; - - - services.xserver.videoDrivers = ["intel"]; + services.xserver.videoDrivers = [ "intel" ]; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions diff --git a/hosts/tablet/configuration.nix b/hosts/tablet/configuration.nix index 3cbc642..e040184 100644 --- a/hosts/tablet/configuration.nix +++ b/hosts/tablet/configuration.nix @@ -5,14 +5,12 @@ { config, pkgs, inputs, nixos-hardware, ... }: { - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ]; - nix.settings.experimental-features = ["nix-command" "flakes"]; + imports = [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + nix.settings.experimental-features = [ "nix-command" "flakes" ]; nixpkgs.config.allowUnfree = true; - networking.networkmanager.enable = true; # Set your time zone. @@ -33,19 +31,18 @@ LC_TIME = "en_US.UTF-8"; }; - # Enable the X11 windowing system. #services.xserver.enable = true; # Enable the GNOME Desktop Environment. services.xserver.desktopManager.phosh = { - enable = true; - group = ""; - user = "k"; - phocConfig.xwayland = "immediate"; -}; - - # Enable CUPS to print documents. + enable = true; + group = ""; + user = "k"; + phocConfig.xwayland = "immediate"; + }; + + # Enable CUPS to print documents. services.printing.enable = true; services.auto-cpufreq.enable = true; services.thermald.enable = true; @@ -63,38 +60,33 @@ pulse.enable = true; jack.enable = true; }; - - # Enable touchpad support (enabled default in most desktopManager). + + # Enable touchpad support (enabled default in most desktopManager). # services.xserver.libinput.enable = true; # Define a user account. Don't forget to set a password with ‘passwd’. - programs.zsh.enable = true; + programs.zsh.enable = true; users.users.k = { isNormalUser = true; description = "k"; extraGroups = [ "networkmanager" "wheel" ]; - packages = with pkgs; [zsh]; + packages = with pkgs; [ zsh ]; shell = pkgs.zsh; }; - home-manager = { - users = { - "k" = import ./home.nix; - }; - }; + home-manager = { users = { "k" = import ./home.nix; }; }; system.autoUpgrade.enable = true; nix.gc.automatic = true; - # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ - intel-vaapi-driver - intel-compute-runtime - intel-media-driver - microcodeIntel - gnome-console - neovim + intel-vaapi-driver + intel-compute-runtime + intel-media-driver + microcodeIntel + gnome-console + neovim ]; boot.kernelModules = [ "soc_button_array" ]; diff --git a/hosts/tablet/hardware-configuration.nix b/hosts/tablet/hardware-configuration.nix index 83feedc..7d33460 100644 --- a/hosts/tablet/hardware-configuration.nix +++ b/hosts/tablet/hardware-configuration.nix @@ -4,11 +4,10 @@ { config, lib, pkgs, modulesPath, ... }: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.availableKernelModules = + [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; @@ -20,21 +19,18 @@ boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; + fileSystems."/" = { + device = "/dev/disk/by-uuid/479b497e-7807-48e4-82e6-d6468549a281"; + fsType = "ext4"; + }; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/479b497e-7807-48e4-82e6-d6468549a281"; - fsType = "ext4"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/DACA-E1BC"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/DACA-E1BC"; + fsType = "vfat"; + }; swapDevices = - [ { device = "/dev/disk/by-uuid/19941c01-ac8c-4609-a834-20259f3ee32e"; } - ]; + [{ device = "/dev/disk/by-uuid/19941c01-ac8c-4609-a834-20259f3ee32e"; }]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's @@ -44,5 +40,6 @@ # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = + lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hosts/tablet/home.nix b/hosts/tablet/home.nix index f479368..a583aea 100644 --- a/hosts/tablet/home.nix +++ b/hosts/tablet/home.nix @@ -25,17 +25,15 @@ enableCompletion = true; syntaxHighlighting.enable = true; autocd = true; - plugins = [ - { - name = "zsh-nix-shell"; - file = "nix-shell.plugin.zsh"; - src = pkgs.fetchFromGitHub { - owner = "chisui"; - repo = "zsh-nix-shell"; - rev = "v0.8.0"; - sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7"; - }; - } - ]; + plugins = [{ + name = "zsh-nix-shell"; + file = "nix-shell.plugin.zsh"; + src = pkgs.fetchFromGitHub { + owner = "chisui"; + repo = "zsh-nix-shell"; + rev = "v0.8.0"; + sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7"; + }; + }]; }; }