Compare commits

..

4 commits

Author SHA1 Message Date
15e00efe3e [nvidia] Attempts to fix flicker
Switch to nouveau
2024-03-04 16:54:28 +01:00
e810827331 Fix rename 2024-03-04 16:52:53 +01:00
4004a048f6 [sway] Add history log to dmenu 2024-03-04 16:49:09 +01:00
1ac8bc985c [hyprland] Add module 2024-03-04 16:47:34 +01:00
8 changed files with 72 additions and 20 deletions

View file

@ -45,6 +45,7 @@
"spotify" "spotify"
"steam" "steam-original" "steam-run" "steam" "steam-original" "steam-run"
"vista-fonts" "vista-fonts"
"nvidia-persistenced" # Docker
]; ];
in in
utils.lib.mkFlake { utils.lib.mkFlake {

View file

@ -6,6 +6,8 @@
]; ];
sisyphus = { sisyphus = {
desktop.sway.enable = true;
hardware.nvidia = { hardware.nvidia = {
enable = true; enable = true;
model = "Quadro T2000"; model = "Quadro T2000";

View file

@ -1,6 +1,7 @@
{ {
imports = [ imports = [
./gnome ./gnome
./hyprland
./plasma ./plasma
./sway ./sway
]; ];

View file

@ -0,0 +1,15 @@
{ config, lib, ... }:
let
cfg = config.sisyphus.desktop.hyprland;
in {
options.sisyphus.desktop.hyprland.enable = lib.mkEnableOption "Hyprland";
config = lib.mkIf cfg.enable {
programs.hyprland = {
enable = true;
xwayland.enable = true;
};
};
}

View file

@ -38,6 +38,26 @@ let
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
gnome_schema=org.gnome.desktop.interface gnome_schema=org.gnome.desktop.interface
# gsettings set $gnome_schema gtk-theme 'Dracula' # gsettings set $gnome_schema gtk-theme 'Dracula'
# https://github.com/crispyricepc/sway-nvidia/blob/2101a18698151a61266740f1297158119bf660ac/wlroots-env-nvidia.sh
# Hardware cursors not yet working on wlroots
export WLR_NO_HARDWARE_CURSORS=1
# Set wlroots renderer to Vulkan to avoid flickering
export WLR_RENDERER=vulkan
# General wayland environment variables
export XDG_SESSION_TYPE=wayland
export QT_QPA_PLATFORM=wayland
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
# Firefox wayland environment variable
export MOZ_ENABLE_WAYLAND=1
export MOZ_USE_XINPUT2=1
# OpenGL Variables
export GBM_BACKEND=nvidia-drm
export __GL_GSYNC_ALLOWED=0
export __GL_VRR_ALLOWED=0
export __GLX_VENDOR_LIBRARY_NAME=nvidia
# Xwayland compatibility
export XWAYLAND_NO_GLAMOR=1
''; '';
}; };
in { in {
@ -74,7 +94,7 @@ in {
SCRIPT_DIR = ../../../../scripts; SCRIPT_DIR = ../../../../scripts;
}; };
fonts.fonts = with pkgs; [ fonts.packages = with pkgs; [
dejavu_fonts dejavu_fonts
font-awesome font-awesome
noto-fonts noto-fonts
@ -100,14 +120,17 @@ in {
power-profiles-daemon.enable = true; power-profiles-daemon.enable = true;
xserver.displayManager.session = [{ xserver = {
manage = "window"; displayManager.session = [{
name = "Sway"; manage = "window";
start = '' name = "Sway";
${pkgs.sway}/bin/sway --unsupported-gpu & start = ''
waitPID=$! ${pkgs.sway}/bin/sway --unsupported-gpu &
''; waitPID=$!
}]; '';
}];
videoDrivers = [ "nouveau" ];
};
}; };
xdg.portal = { xdg.portal = {

View file

@ -3,6 +3,7 @@
let let
cfg = config.sisyphus.hardware.nvidia; cfg = config.sisyphus.hardware.nvidia;
# The graphics cards for which to do offloading
do-offloading = builtins.elem cfg.model [ "Quadro T2000" ]; do-offloading = builtins.elem cfg.model [ "Quadro T2000" ];
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" '' nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
export __NV_PRIME_RENDER_OFFLOAD=1 export __NV_PRIME_RENDER_OFFLOAD=1
@ -24,8 +25,17 @@ in {
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
services.xserver.videoDrivers = [ "nvidia" ]; # boot = {
# extraModprobeConfig = "options nvidia-drm modeset=1";
#
# initrd.kernelModules = [
# "nvidia"
# "nvidia_modeset"
# "nvidia_uvm"
# "nvidia_drm"
# ];
# };
hardware = { hardware = {
opengl = { opengl = {
enable = true; enable = true;
@ -33,7 +43,7 @@ in {
driSupport32Bit = true; driSupport32Bit = true;
}; };
nvidia = { nvidia = {
open = true; open = false;
package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;
modesetting.enable = true; modesetting.enable = true;
nvidiaSettings = cfg.gui-settings; nvidiaSettings = cfg.gui-settings;
@ -42,6 +52,9 @@ in {
finegrained = do-offloading; finegrained = do-offloading;
}; };
# Avoid flickering
forceFullCompositionPipeline = true;
prime = lib.mkMerge [ prime = lib.mkMerge [
(lib.mkIf do-offloading { (lib.mkIf do-offloading {
offload = { offload = {

View file

@ -61,9 +61,6 @@ in {
icosystem # Personal icon theme icosystem # Personal icon theme
spotify-adblock spotify-adblock
]) ++ (with pkgs-unstable; [ ]) ++ (with pkgs-unstable; [
# logseq
# obsidian
brave brave
chafa # Terminal image viewer chafa # Terminal image viewer
duf # Df alternative duf # Df alternative
@ -72,6 +69,7 @@ in {
jellyfin-media-player jellyfin-media-player
kitty kitty
libreoffice-fresh libreoffice-fresh
logseq
mpv mpv
nextcloud-client nextcloud-client
nsxiv # Lightweight image viewer nsxiv # Lightweight image viewer
@ -96,9 +94,7 @@ in {
]); ]);
pointerCursor = { pointerCursor = {
package = cursor.package; inherit (cursor) package name size;
name = cursor.name;
size = cursor.size;
gtk.enable = true; gtk.enable = true;
x11.enable = true; x11.enable = true;
}; };

View file

@ -15,8 +15,9 @@ set {
$scrollUp button4 $scrollUp button4
$scrollDown button5 $scrollDown button5
$term kitty || alacritty || foot # $term kitty || alacritty || foot
$menu j4-dmenu-desktop --dmenu "rofi -dmenu -i" $term kitty
$menu j4-dmenu-desktop --dmenu "rofi -dmenu -i" --usage-log="/home/tdpeuter/.local/state/dmenu.log"
# TODO Find better location and better way to reference this. # TODO Find better location and better way to reference this.
$window_switcher /home/tdpeuter/projects/fzf-jump/new.sh $window_switcher /home/tdpeuter/projects/fzf-jump/new.sh
$lock swaylock -f $lock swaylock -f