initial switch to hyprland

This commit is contained in:
alsaiduq-lab 2025-10-06 13:02:01 -06:00
parent 1daf9cf44b
commit 6c8c5c43d4
41 changed files with 562 additions and 501 deletions

View file

@ -10,12 +10,10 @@
};
environment.systemPackages = with pkgs; [
cava
pulseaudio
alsa-utils
portaudio
alsa-lib
pavucontrol
clang
];
}

View file

@ -6,13 +6,11 @@
gawk
psmisc
unzip
bash
maim
wrk
bitwarden
hashcat
cachix
gcc
gcc14
gnumake
cmake
ninja
@ -28,5 +26,8 @@
libclang
argc
appimage-run
clang
rsync
openssl
];
}

View file

@ -3,62 +3,62 @@
lib,
config,
...
}: let
t = config.theme;
in {
environment.shellInit = ''
if [ -d "$HOME/.cargo/bin" ]; then
export PATH="$PATH:$HOME/.cargo/bin"
fi
'';
}: {
environment.variables = {
EDITOR = "nvim";
VISUAL = "nvim";
TERM = "ghostty";
BROWSER = "thorium";
XCURSOR_THEME = t.cursorName;
XCURSOR_SIZE = toString t.cursorSize;
EDITOR = config.theme.Editor;
TERM = config.theme.Terminal;
BROWSER = config.theme.Browser;
XCURSOR_THEME = config.theme.cursorName;
XCURSOR_SIZE = toString config.theme.cursorSize;
GTK_THEME = "${config.theme.gtkTheme}:${config.theme.gtkThemeMode}";
QT_QPA_PLATFORMTHEME = config.theme.qtTheme;
QT_STYLE_OVERRIDE = config.theme.qtOverride;
XDG_SESSION_TYPE = "wayland";
XDG_CURRENT_DESKTOP = "Hyprland";
XDG_SESSION_DESKTOP = "Hyprland";
GDK_BACKEND = "wayland,x11";
QT_QPA_PLATFORM = "wayland;xcb";
SDL_VIDEODRIVER = "wayland";
MOZ_ENABLE_WAYLAND = "1";
NIXOS_OZONE_WL = "1";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
GBM_BACKEND = "nvidia-drm";
LIBVA_DRIVER_NAME = "nvidia";
CC = "${pkgs.gcc}/bin/gcc";
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
LUA_PATH = "${pkgs.luajit}/share/lua/5.1/?.lua;${pkgs.luajit}/share/lua/5.1/?/init.lua;;";
LUA_CPATH = "${pkgs.luajit}/lib/lua/5.1/?.so;;";
PKG_CONFIG_PATH = lib.makeSearchPath "lib/pkgconfig" [
pkgs.mesa
pkgs.openssl.dev
pkgs.libxml2.dev
pkgs.zlib.dev
pkgs.portaudio
pkgs.alsa-lib
pkgs.stdenv.cc.cc
pkgs.xorg.libX11.dev
pkgs.xorg.libXtst
pkgs.xorg.libXi.dev
];
LD_LIBRARY_PATH = lib.makeLibraryPath [
pkgs.libglvnd
pkgs.mesa
pkgs.gcc-unwrapped.lib
pkgs.linuxPackages.nvidia_x11
pkgs.cudatoolkit
pkgs.mangohud
pkgs.portaudio
pkgs.alsa-lib
pkgs.stdenv.cc.cc.lib
pkgs.xorg.libX11
pkgs.xorg.libXtst
pkgs.xorg.libXi
pkgs.wayland
pkgs.libxkbcommon
pkgs.glib
];
CUDA_HOME = "${pkgs.cudatoolkit}";
CUDA_HOME = pkgs.cudatoolkit;
CPATH = "${pkgs.cudatoolkit}/include";
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang}/lib";
};
environment.pathsToLink = [
"/share/fish"
"/share/${config.theme.Shell}"
"/bin"
"/share/icons"
"/share/pixmaps"

View file

@ -12,6 +12,7 @@
kochi-substitute
clear-sans
binary-font
fontconfig
];
fontconfig = {
enable = true;

View file

@ -2,39 +2,32 @@
config,
pkgs,
...
}: let
t = config.theme;
cursorName = t.cursorName;
cursorSize = toString t.cursorSize;
gtkTheme = t.gtkTheme;
iconTheme = t.iconTheme;
fontName = t.fontName;
in {
}: {
environment.etc = {
"gtk-2.0/gtkrc".text = ''
gtk-theme-name=${gtkTheme}
gtk-icon-theme-name=${iconTheme}
gtk-font-name=${fontName}
gtk-cursor-theme-name=${cursorName}
gtk-cursor-theme-size=${cursorSize}
gtk-theme-name=${config.theme.gtkTheme}
gtk-icon-theme-name=${config.theme.iconTheme}
gtk-font-name=${config.theme.font}
gtk-cursor-theme-name=${config.theme.cursorName}
gtk-cursor-theme-size="${builtins.toString config.theme.cursorSize}"
'';
"gtk-3.0/settings.ini".text = ''
[Settings]
gtk-application-prefer-dark-theme=1
gtk-theme-name=${gtkTheme}
gtk-icon-theme-name=${iconTheme}
gtk-font-name=${fontName}
gtk-cursor-theme-name=${cursorName}
gtk-cursor-theme-size=${cursorSize}
gtk-application-prefer-${config.theme.gtkThemeMode}-theme=1
gtk-theme-name=${config.theme.gtkTheme}
gtk-icon-theme-name=${config.theme.iconTheme}
gtk-font-name=${config.theme.font}
gtk-cursor-theme-name=${config.theme.cursorName}
gtk-cursor-theme-size="${builtins.toString config.theme.cursorSize}"
'';
"gtk-4.0/settings.ini".text = ''
[Settings]
gtk-application-prefer-dark-theme=1
gtk-theme-name=${gtkTheme}
gtk-icon-theme-name=${iconTheme}
gtk-font-name=${fontName}
gtk-cursor-theme-name=${cursorName}
gtk-cursor-theme-size=${cursorSize}
gtk-application-prefer-${config.theme.gtkThemeMode}-theme=1
gtk-theme-name=${config.theme.gtkTheme}
gtk-icon-theme-name=${config.theme.iconTheme}
gtk-font-name=${config.theme.font}
gtk-cursor-theme-name=${config.theme.cursorName}
gtk-cursor-theme-size="${builtins.toString config.theme.cursorSize}"
'';
};
@ -42,11 +35,16 @@ in {
programs.dconf.profiles.user.databases = [
{
settings."org/gnome/desktop/interface" = {
gtk-theme = gtkTheme;
icon-theme = iconTheme;
cursor-theme = cursorName;
font-name = fontName;
gtk-theme = config.theme.gtkTheme;
icon-theme = config.theme.iconTheme;
cursor-theme = config.theme.cursorName;
font-name = config.theme.font;
color-scheme = "prefer-${config.theme.gtkThemeMode}";
};
}
];
environment.sessionVariables = {
GTK_THEME = "${config.theme.gtkTheme}:${config.theme.gtkThemeMode}";
};
}

View file

@ -0,0 +1,57 @@
{
lib,
config,
pkgs,
...
}: {
services.xserver.enable = false;
programs.hyprland = {
enable = true;
xwayland.enable = true;
};
services.greetd = {
enable = true;
package = pkgs.greetd.tuigreet;
settings.default_session = {
user = "greeter";
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --cmd ${pkgs.hyprland}/bin/Hyprland";
};
};
xdg.portal = {
enable = true;
extraPortals = with pkgs; [xdg-desktop-portal-hyprland xdg-desktop-portal-gtk];
config = {
common.default = ["gtk"];
hyprland.default = ["hyprland" "gtk"];
};
};
systemd.user.services.xdg-desktop-portal-hyprland.unitConfig.ConditionPathExists = "%t/wayland-0";
security.polkit.enable = true;
environment.systemPackages = with pkgs; [
qt5.qtwayland
qt6.qtwayland
polkit_gnome
candy-icons
hu-tao-animated-cursor
tokyonight-gtk-theme
hyprlock
wlogout
wl-clipboard
xclip
wofi
hyprshot
hypridle
polkit_gnome
grim
slurp
swappy
imv
syshud
hyprpaper
];
}

View file

@ -1,69 +0,0 @@
{pkgs, ...}: {
services.xserver = {
enable = true;
xkb = {
layout = "us";
variant = "";
};
windowManager.i3 = {
enable = true;
package = pkgs.i3-gaps;
extraSessionCommands = ''
if [ -f /var/lib/lightdm-background/.last-wallpaper ]; then
${pkgs.feh}/bin/feh --bg-fill "$(cat /var/lib/lightdm-background/.last-wallpaper)"
fi
'';
};
# this is actually here because i get peeved personally when I see a none in "none+i3"
desktopManager.xfce = {
enable = true;
noDesktop = true;
enableXfwm = false;
};
desktopManager.session = [
{
name = "xfce+i3";
start = ''
if [ -f /var/lib/lightdm-background/.last-wallpaper ]; then
${pkgs.feh}/bin/feh --bg-fill "$(cat /var/lib/lightdm-background/.last-wallpaper)"
fi
export XDG_DATA_DIRS="${pkgs.tokyonight-gtk-theme}/share:${pkgs.candy-icons}/share:${pkgs.hicolor-icon-theme}/share:${pkgs.adwaita-icon-theme}/share:$XDG_DATA_DIRS"
${pkgs.xfce.xfce4-session}/bin/xfce4-session --with-ck-launch &
${pkgs.i3-gaps}/bin/i3
'';
}
];
};
environment.systemPackages = with pkgs; [
dmenu
i3status
i3lock-color
i3blocks
picom
feh
i3-auto-layout
yt-dlp
flameshot
imagemagick
slop
ghostscript
via
arandr
xsettingsd
lxappearance
gsettings-desktop-schemas
adwaita-qt
candy-icons
tokyonight-gtk-theme
hicolor-icon-theme
adwaita-icon-theme
gnome-themes-extra
findutils
coreutils
hu-tao-animated-cursor
];
}

View file

@ -1,17 +1,11 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
linuxHeaders
freetype.dev
pixman
mesa
libglvnd
dbus.dev
openssl
openssl.dev
libxml2
zlib
zlib.dev
texlive.combined.scheme-full
poppler_utils
libnotify
egl-wayland
vulkan-tools
libva-utils
vdpauinfo
];
}

View file

@ -3,6 +3,7 @@
networkmanagerapplet
wget
curl
aria2
cloudflared
nmap
httpie

View file

@ -9,27 +9,35 @@
package = config.boot.kernelPackages.nvidiaPackages.stable;
open = true;
modesetting.enable = true; # must be true for Wayland
powerManagement.enable = false;
powerManagement.enable = false; # laptops need this
nvidiaSettings = true;
nvidiaPersistenced = true;
};
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [nvidia-vaapi-driver];
};
programs.nix-ld = {
enable = true;
libraries = with pkgs; [
stdenv.cc.cc.lib
cudaPackages.cudatoolkit.lib
cudaPackages.cudatoolkit
cudaPackages.cudnn
cudaPackages.nccl
config.hardware.nvidia.package
];
};
environment.systemPackages = with pkgs; [
glxinfo
mesa-demos
vulkan-tools
vulkan-headers
vulkan-validation-layers
libva-utils
vdpauinfo
egl-wayland
cudaPackages.cudatoolkit
];
}

View file

@ -1,8 +1,7 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
(python311.withPackages (ps:
(python312.withPackages (ps:
with ps; [
i3ipc
requests
ipython
six
@ -19,10 +18,10 @@
datasets
debugpy
pynvim
pkginfo
]))
isort
uv
python311
ruff
];
}

View file

@ -1,4 +1,9 @@
{pkgs, ...}: {
{
lib,
config,
pkgs,
...
}: {
services.hardware.openrgb = {
enable = true;
package = pkgs.openrgb-with-all-plugins;
@ -6,9 +11,16 @@
server.port = 6742;
};
services.udev.packages = [pkgs.openrgb-with-all-plugins];
boot.kernelModules = ["i2c-dev" "i2c-piix4"];
users.groups.i2c.members = ["cobray"];
services.udev.packages = [pkgs.openrgb-with-all-plugins];
systemd.services.openrgb.serviceConfig.Environment = "QT_QPA_PLATFORM=offscreen";
users.groups = {
i2c = {};
plugdev = {};
};
users.users.${config.theme.user}.extraGroups = ["i2c" "plugdev"];
systemd.services.openrgb.serviceConfig.Environment = ["QT_QPA_PLATFORM=offscreen"];
environment.sessionVariables.QT_QPA_PLATFORM = "wayland;xcb";
}

View file

@ -17,7 +17,7 @@ in {
server = {
bind_address = "127.0.0.1";
port = 11212;
limiter = true;
limiter = false;
image_proxy = true;
base_url = lib.mkIf (domain != null) "https://${domain}";
};
@ -27,18 +27,25 @@ in {
};
search = {
safe_search = 0;
autocomplete = "google";
default_engine = "google_web";
default_categories = ["general" "it" "images" "videos" "map"];
autocomplete = "duckduckgo";
default_engine = "";
default_categories = ["general" "it" "images" "videos" "map" "news" "science"];
formats = ["html" "json"];
};
enabled_plugins = ["hash" "self_info" "tracker_url_remover" "hostname_replace"];
enabled_plugins = [
"hash"
"self_info"
"tracker_url_remover"
"hostname_replace"
"open_access_doi_rewrite"
];
engines = [
{
name = "duckduckgo_web";
engine = "duckduckgo";
disabled = false;
categories = ["general"];
weight = 0.9;
weight = 1.0;
timeout = 3.0;
}
{
@ -46,7 +53,7 @@ in {
engine = "google";
disabled = false;
categories = ["general"];
weight = 0.75;
weight = 1.0;
timeout = 4.0;
}
{
@ -54,7 +61,39 @@ in {
engine = "bing";
disabled = false;
categories = ["general"];
weight = 0.4;
weight = 1.0;
timeout = 4.0;
}
{
name = "brave";
engine = "brave";
disabled = false;
categories = ["general"];
weight = 1.0;
timeout = 3.0;
}
{
name = "mojeek";
engine = "mojeek";
disabled = false;
categories = ["general"];
weight = 0.9;
timeout = 3.0;
}
{
name = "qwant";
engine = "qwant";
disabled = false;
categories = ["general"];
weight = 0.8;
timeout = 3.0;
}
{
name = "startpage";
engine = "startpage";
disabled = false;
categories = ["general"];
weight = 0.9;
timeout = 4.0;
}
{
@ -64,6 +103,13 @@ in {
categories = ["general"];
timeout = 3.0;
}
{
name = "wikidata";
engine = "wikidata";
disabled = false;
categories = ["general"];
timeout = 3.0;
}
{
name = "wikibooks";
engine = "wikibooks";
@ -78,6 +124,27 @@ in {
categories = ["general"];
timeout = 3.0;
}
{
name = "arxiv";
engine = "arxiv";
disabled = false;
categories = ["science"];
timeout = 4.0;
}
{
name = "crossref";
engine = "crossref";
disabled = false;
categories = ["science"];
timeout = 4.0;
}
{
name = "semantic_scholar";
engine = "semantic_scholar";
disabled = false;
categories = ["science"];
timeout = 4.0;
}
{
name = "github_code";
engine = "github";
@ -85,6 +152,13 @@ in {
categories = ["it"];
timeout = 4.0;
}
{
name = "stackoverflow";
engine = "stackoverflow";
disabled = false;
categories = ["it"];
timeout = 4.0;
}
{
name = "wikicommons_img";
engine = "wikicommons";

View file

@ -1,25 +0,0 @@
{lib, ...}:
with lib; {
options.theme = {
cursorName = mkOption {
type = types.str;
default = "Hu-Tao-Animated-Cursor";
};
cursorSize = mkOption {
type = types.int;
default = 24;
};
gtkTheme = mkOption {
type = types.str;
default = "Tokyonight-Dark";
};
iconTheme = mkOption {
type = types.str;
default = "candy-icons";
};
fontName = mkOption {
type = types.str;
default = "Clear Sans 10";
};
};
}

View file

@ -18,14 +18,6 @@
protontricks
gamemode
mangohud
vulkan-tools
vulkan-loader
vulkan-headers
vulkan-validation-layers
libstrangle
piper
portaudio
alsa-lib
libglvnd
];
}

View file

@ -0,0 +1,9 @@
{
config,
pkgs,
...
}: {
security.polkit.enable = true;
services.udisks2.enable = true;
services.gvfs.enable = true;
}

View file

@ -1,10 +1,14 @@
{pkgs, ...}: {
# Define a user account. Don't forget to set a password with 'passwd'.
users.users.cobray = {
{
pkgs,
lib,
config,
...
}: {
users.users.${config.theme.user} = {
isNormalUser = true;
description = "Mon Aie";
extraGroups = ["networkmanager" "wheel" "docker" "video"];
shell = pkgs.fish;
shell = builtins.getAttr config.theme.Shell pkgs;
extraGroups = ["wheel" "networkmanager" "docker" "video" "render" "input" "audio"];
linger = true;
};
security.sudo = {
@ -12,7 +16,7 @@
wheelNeedsPassword = true;
};
programs.fish = {
enable = true;
};
programs."${config.theme.Shell}".enable = true;
nix.settings.trusted-users = ["root" config.theme.user];
}

View file

@ -1,12 +0,0 @@
# For xorgsisters only
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
xorg.xdpyinfo
slop
xorg.libX11
xorg.libXtst
xorg.libXi
xorg.xorgproto
xclip
];
}