diff --git a/.config/nixos/profiles/desktop_wayland.nix b/.config/nixos/profiles/desktop_wayland.nix new file mode 100644 index 0000000..6b6315d --- /dev/null +++ b/.config/nixos/profiles/desktop_wayland.nix @@ -0,0 +1,74 @@ +{ config, pkgs, ... }: + +{ + # Or else swaylock will not accept correct password + security.pam.services.swaylock = {}; + + i18n = { + defaultLocale = "en_US.UTF-8"; + inputMethod = { + # Have to install fcitx5 through here so that the binary is patched to be able to see the addons. + # If also installed through system packages, the binary without addonds will take precedence. + enabled = "fcitx5"; + fcitx5.addons = with pkgs; [ + fcitx5-configtool + fcitx5-rime + fcitx5-chinese-addons + ]; + }; + }; + + fonts.packages = with pkgs; [ + source-han-sans + source-han-serif + (nerdfonts.override { fonts = [ "FiraCode" ]; }) + ]; + + programs = { + hyprland = { + enable = true; + enableNvidiaPatches = true; + xwayland.enable = true; + }; + }; + + environment.systemPackages = with pkgs; [ + blueman # Bluetooth manager + dunst # Notification daemon + eww-wayland + firefox # My browser of choice + foot # Wayland native terminal + hyprland-autoname-workspaces + hyprpaper + kanshi # Autorandr substitute + libnotify # Send messages to notification daemon + libreoffice # MSOffice btfo + pinentry-rofi # Rofi frontend for pinentry program + pyprland # Plugin manager for Hyprland + rofi # Menu prompt program + rofi-pass # Rofi frontend for password store + swaylock # Wayland session locker + swww # Sets background images + texlive.combined.scheme-full # LaTeX to create documents + typst # Cool, minimal LaTeX alternative + ungoogled-chromium # If I need a special chrome feature + waybar # Status bar + wdisplays # Arnadr substitute + wlr-randr # Xrandr substitute + + # GTK Themes + lxappearance-gtk2 # Theme switcher + gruvbox-dark-gtk + ]; + + nixpkgs.overlays = [ + (self: super: { + wlroots-hyprland-nvidia = super.wlroots-hyprland-nvidia.overrideAttrs (oa: { + patches = (oa.patches or [ ]) ++ [ + /home/vince/misc/DisplayLink_v2.patch + ]; + }); + }) + ]; +} + diff --git a/.config/nixos/profiles/desktop_x.nix b/.config/nixos/profiles/desktop_x.nix new file mode 100644 index 0000000..9a65e96 --- /dev/null +++ b/.config/nixos/profiles/desktop_x.nix @@ -0,0 +1,89 @@ +{ config, pkgs, ... }: + +{ + security.sudo.extraConfig = '' + %wheel ALL=(ALL:ALL) NOPASSWD: ${pkgs.systemd}/bin/systemctl restart autorandr + ''; + + i18n = { + defaultLocale = "en_US.UTF-8"; + inputMethod = { + # Have to install fcitx5 through here so that the binary is patched to be able to see the addons. + # If also installed through system packages, the binary without addonds will take precedence. + enabled = "fcitx5"; + fcitx5.addons = with pkgs; [ + fcitx5-configtool + fcitx5-rime + fcitx5-chinese-addons + ]; + }; + }; + + fonts.packages = with pkgs; [ + source-han-sans + source-han-serif + (nerdfonts.override { fonts = [ "FiraCode" ]; }) + ]; + + # X Server + services.xserver = { + enable = true; + autorun = false; + + autoRepeatDelay = 300; + autoRepeatInterval = 50; + + # Configure keymap in X11 + layout = "us"; + xkbOptions = "eurosign:e,caps:escape"; + + # Touchpad stuff + libinput = { + enable = true; + touchpad.naturalScrolling = true; + }; + + displayManager = { + lightdm.enable = false; + startx.enable = true; + }; + + windowManager.dwm.enable = true; + }; + + # Monitor switching service. Allow users to restart the service without password + services.autorandr.enable = true; + + environment.systemPackages = with pkgs; [ + arandr # Visually move relative positions of monitors + autorandr # Save and load xrandr profiles + blueman # Bluetooth manager + dunst # Notification daemon + dwmblocks # Suckless statusbar for DWM + dwm # Suckless tiling window manager + feh # Image viewer I use for background setting + firefox # My browser of choice + libnotify # Send messages to notification daemon + libreoffice # MSOffice btfo + maim # Screenshot utility + picom # X Compositor + pinentry-rofi # Rofi frontend for pinentry program + rofi # Menu prompt program + rofi-pass # Rofi frontend for password store + st # Suckless terminal + sxhkd # Hotkey daemon + texlive.combined.scheme-full # LaTeX to create documents + typst # Cool, minimal LaTeX alternative + ungoogled-chromium # If I need a special chrome feature + xsecurelock # Session locker + + # GTK Themes + lxappearance-gtk2 # Theme switcher + gruvbox-dark-gtk + + # X tools + xorg.xauth + xclip + ]; +} + diff --git a/.config/nixos/profiles/minimal.nix b/.config/nixos/profiles/minimal.nix index 65dc666..910252f 100644 --- a/.config/nixos/profiles/minimal.nix +++ b/.config/nixos/profiles/minimal.nix @@ -1,9 +1,7 @@ { config, pkgs, ... }: { - config { - environment.systemPackages = with pkgs; [ - ]; - }; + environment.systemPackages = with pkgs; [ + ]; }