Compare commits

..

1 Commits

Author SHA1 Message Date
62a507e703 (wip) trying to improve shortcuts... 2024-10-19 10:43:15 -07:00
23 changed files with 332 additions and 327 deletions

121
flake.lock generated
View File

@@ -1,44 +1,5 @@
{
"nodes": {
"doomemacs": {
"flake": false,
"locked": {
"lastModified": 1733434763,
"narHash": "sha256-sebujw5VvBWMS+wXyjiGF81iyjPM/QQDnw5l7tDJCvk=",
"owner": "doomemacs",
"repo": "doomemacs",
"rev": "ba1dca322f9a07bc2b7bec6a98f2c3c55c0bbd77",
"type": "github"
},
"original": {
"owner": "doomemacs",
"repo": "doomemacs",
"type": "github"
}
},
"emacs-overlay": {
"inputs": {
"nixpkgs": [
"nix-doom-emacs-unstraightened"
],
"nixpkgs-stable": [
"nix-doom-emacs-unstraightened"
]
},
"locked": {
"lastModified": 1734315266,
"narHash": "sha256-k6ekQwIK/TASoPwTyeY2JiBHzwmPZSLGrYNXF+fLhC8=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "fce2b6224adae5f9b6d43d74ecb996a3133a63f4",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "emacs-overlay",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -46,11 +7,11 @@
]
},
"locked": {
"lastModified": 1734344598,
"narHash": "sha256-wNX3hsScqDdqKWOO87wETUEi7a/QlPVgpC/Lh5rFOuA=",
"lastModified": 1728041527,
"narHash": "sha256-03liqiJtk9UP7YQHW4r8MduKCK242FQzud8iWvvlK+o=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "83ecd50915a09dca928971139d3a102377a8d242",
"rev": "509dbf8d45606b618e9ec3bbe4e936b7c5bc6c1e",
"type": "github"
},
"original": {
@@ -59,36 +20,13 @@
"type": "github"
}
},
"nix-doom-emacs-unstraightened": {
"inputs": {
"doomemacs": "doomemacs",
"emacs-overlay": "emacs-overlay",
"nixpkgs": [
"nixpkgs"
],
"systems": "systems"
},
"locked": {
"lastModified": 1734338553,
"narHash": "sha256-KEuh2nsgl8iiPWMg4wfrnCoZqPssw6dbMCy9MheLJZg=",
"owner": "marienz",
"repo": "nix-doom-emacs-unstraightened",
"rev": "728040b0b7c2c0baa47fb3365b57bd3e1658207a",
"type": "github"
},
"original": {
"owner": "marienz",
"repo": "nix-doom-emacs-unstraightened",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1734119587,
"narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=",
"lastModified": 1727802920,
"narHash": "sha256-HP89HZOT0ReIbI7IJZJQoJgxvB2Tn28V6XS3MNKnfLs=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "3566ab7246670a43abd2ffa913cc62dad9cdf7d5",
"rev": "27e30d177e57d912d614c88c622dcfdb2e6e6515",
"type": "github"
},
"original": {
@@ -98,6 +36,22 @@
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1725762081,
"narHash": "sha256-vNv+aJUW5/YurRy1ocfvs4q/48yVESwlC/yHzjkZSP8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "dc454045f5b5d814e5862a6d057e7bb5c29edc05",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"plasma-manager": {
"inputs": {
"home-manager": [
@@ -108,11 +62,11 @@
]
},
"locked": {
"lastModified": 1733858086,
"narHash": "sha256-h2BDIDKiqgMpA6E+mu0RgMGy3FeM6k+EuJ9xgOQ1+zw=",
"lastModified": 1728750492,
"narHash": "sha256-9IHlIsH4gLqQjS2lFbEnsl/ItdqzBBLWLsyXS0k0jf8=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "7e2010249529931a3848054d5ff0dbf24675ab68",
"rev": "c6d4b6f3e0138c08f37d66fcfbcbe37dab08f108",
"type": "github"
},
"original": {
@@ -124,7 +78,6 @@
"root": {
"inputs": {
"home-manager": "home-manager",
"nix-doom-emacs-unstraightened": "nix-doom-emacs-unstraightened",
"nixpkgs": "nixpkgs",
"plasma-manager": "plasma-manager",
"sops-nix": "sops-nix"
@@ -134,14 +87,15 @@
"inputs": {
"nixpkgs": [
"nixpkgs"
]
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1733965552,
"narHash": "sha256-GZ4YtqkfyTjJFVCub5yAFWsHknG1nS/zfk7MuHht4Fs=",
"lastModified": 1727423009,
"narHash": "sha256-+4B/dQm2EnORIk0k2wV3aHGaE0WXTBjColXjj7qWh10=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "2d73fc6ac4eba4b9a83d3cb8275096fbb7ab4004",
"rev": "127a96f49ddc377be6ba76964411bab11ae27803",
"type": "github"
},
"original": {
@@ -149,21 +103,6 @@
"repo": "sops-nix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",

View File

@@ -19,11 +19,6 @@
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
nix-doom-emacs-unstraightened = {
url = "github:marienz/nix-doom-emacs-unstraightened";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, ... } @ inputs: let
@@ -34,10 +29,7 @@
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.sharedModules = [
inputs.plasma-manager.homeManagerModules.plasma-manager
inputs.nix-doom-emacs-unstraightened.hmModule
];
home-manager.sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
}
];
in {
@@ -48,6 +40,8 @@
./machines/z790prors/configuration.nix
{
home-manager.users.johno = import ./home/home-z790prors.nix;
home-manager.extraSpecialArgs.customPkgs =
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
}
];
};
@@ -58,6 +52,8 @@
./machines/nix-book/configuration.nix
{
home-manager.users.johno = import ./home/home-nix-book.nix;
home-manager.extraSpecialArgs.customPkgs =
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
}
];
};
@@ -69,6 +65,8 @@
inputs.home-manager.nixosModules.home-manager
{
home-manager.users.johno = import ./home/home-default.nix;
home-manager.extraSpecialArgs.customPkgs =
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
}
];
};

View File

@@ -1,8 +1,5 @@
{ pkgs, customPkgs, ... }:
let
customPkgs = pkgs.callPackage ../packages {};
in
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
@@ -98,7 +95,6 @@ in
# /etc/profiles/per-user/johno/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
ENABLE_GAMESCOPE_WSI = "1";
};
home.sessionPath = [

View File

@@ -3,6 +3,7 @@
{
imports = [
./home-default.nix
./modules/hyprland/nix-book.nix
];
home.i3_sway.extraSwayConfig = {

View File

@@ -3,5 +3,6 @@
{
imports = [
./home-default.nix
./modules/hyprland/z790prors.nix
];
}

View File

@@ -2,15 +2,21 @@
with lib;
{
let
doomSync = (let
git = pkgs.git;
in ''
export PATH=${pkgs.emacs}/bin:${git}/bin:$PATH
${config.xdg.configHome}/emacs/bin/doom sync -u -j $((`nproc`/4*3))
'');
in {
config = {
home.packages = [
pkgs.emacs-all-the-icons-fonts
pkgs.fontconfig
pkgs.graphviz
pkgs.isort
pkgs.nerd-fonts.fira-code
pkgs.nerd-fonts.droid-sans-mono
pkgs.nerdfonts
pkgs.nil # nix lsp language server
pkgs.nixfmt-rfc-style
(pkgs.ripgrep.override {withPCRE2 = true;})
@@ -19,15 +25,43 @@ with lib;
pkgs.python3
];
programs.doom-emacs = {
enable = true;
doomDir = ./doom;
};
fonts.fontconfig.enable = true;
home.file = {
".config/emacs" = {
source = fetchGit {
url = "https://github.com/doomemacs/doomemacs.git";
# When updating me, remember to run `doom sync`
rev = "5ad99220b86ae1bf421861dfad24492d768ac4d9";
};
# We need to use recursive mode here or else doom fails to sync for
# some reason related to the permissions on the synced path. I'm not
# quite sure of everything that's going on here.
recursive = true;
# Because `recursive = true` will cause this to sync every single
# activation, we turn this off here.
#
# There's probably a way we could do better detection of this within
# our onChange shell?
#
# onChange = doomSync;
};
};
home.sessionVariables = {
DOOMLOCALDIR = "${config.xdg.dataHome}/doom";
EDITOR = "emacs -nw";
};
home.sessionPath = [
"${config.xdg.configHome}/emacs/bin"
];
xdg.configFile."doom" = {
source = ./doom;
# Sync doom if we updated the config
onChange = doomSync;
};
};
}

View File

@@ -28,7 +28,6 @@
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
;; refresh your font settings. If Emacs still can't find your font, it likely
;; wasn't installed correctly. Font issues are rarely Doom issues!
(setq doom-font (font-spec :family "Fira Code"))
;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the

View File

@@ -149,7 +149,7 @@
;;lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
(nix +tree-sitter) ; I hereby declare "nix geht mehr!"
(nix +tree-sitter +lsp) ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org +roam2) ; organize your plain life in plain text
;;php ; perl's insecure younger brother

View File

@@ -0,0 +1,94 @@
{ inputs, ... }:
{
imports = [
./hyprpaper.nix
];
wayland.windowManager.hyprland = {
enable = true;
plugins = [ inputs.hy3.packages.x86_64-linux.hy3 ];
settings = {
"$mod" = "SUPER";
"$terminal" = "kitty";
"$fileManager" = "dolphin";
"$menu" = "wofi --show drun";
exec-once = [
"waybar"
"dunst"
];
xwayland = {
force_zero_scaling = true;
};
input = {
kb_layout = "us";
kb_options = "caps:escape";
follow_mouse = 1;
touchpad.natural_scroll = false;
};
windowrulev2 = [
# I can guess, but I should figure out what this actually does
"suppressevent maximize, class:.*"
];
general.layout = "hy3";
bind =
[
"SHIFT_$mod, Q, killactive"
"SHIFT_$mod, M, exit"
"$mod, D, exec, $menu"
"$mod, Return, exec, $terminal"
"$mod, H, hy3:movefocus, l"
"$mod, L, hy3:movefocus, r"
"$mod, K, hy3:movefocus, u"
"$mod, J, hy3:movefocus, d"
"SHIFT_$mod, H, hy3:movewindow, l"
"SHIFT_$mod, L, hy3:movewindow, r"
"SHIFT_$mod, K, hy3:movewindow, u"
"SHIFT_$mod, J, hy3:movewindow, d"
"$mod, V, hy3:makegroup, opposite"
"$mod, W, hy3:changegroup, toggletab"
"$mod, A, hy3:changefocus, raise"
"SHIFT_$mod, A, hy3:changefocus, lower"
"$mod, M, fullscreen, 0"
"$mod, E, hy3:expand, expand"
"SHIFT_$mod, E, hy3:expand, base"
"$mod, Q, hy3:warpcursor"
]
++ (
# workspaces
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
builtins.concatLists (builtins.genList (
x: let
ws = let
c = (x + 1) / 10;
in
builtins.toString (x + 1 - (c * 10));
in [
"$mod, ${ws}, workspace, ${toString (x + 1)}"
"$mod SHIFT, ${ws}, hy3:movetoworkspace, ${toString (x + 1)}"
]
)
10)
);
bindm =
[
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
};
};
}

View File

@@ -0,0 +1,21 @@
{ config, lib, pkgs, ... }:
{
services.hyprpaper = {
enable = true;
settings = {
ipc = "on";
splash = false;
preload = [
"${config.xdg.dataHome}/wallpaper.jpg"
];
wallpaper = [
",${config.xdg.dataHome}/wallpaper.jpg"
];
};
};
xdg.dataFile."wallpaper.jpg" = {
source = ./wallpaper.jpg;
};
}

View File

@@ -0,0 +1,5 @@
{ config, lib, pkgs, ... }:
{
wayland.windowManager.hyprland.settings.monitor = ",preferred,2880x1800@90.00Hz,1.33333";
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 KiB

View File

@@ -0,0 +1,16 @@
{ config, lib, pkgs, ... }:
{
wayland.windowManager.hyprland.settings.monitor = "DP-1,3440x1440@164.90,0x0,1.33333,vrr,1";
wayland.windowManager.hyprland.settings.env = [
"LIBVA_DRIVER_NAME,nvidia"
"XDG_SESSION_TYPE,wayland"
"GBM_BACKEND,nvidia-drm"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
"NVD_BACKEND,direct"
"ELECTRON_OZONE_PLATFORM_HINT,auto"
"NIXOS_OZONE_WL,1"
];
wayland.windowManager.hyprland.settings.cursor.no_hardware_cursors = true;
}

View File

@@ -1,21 +1,30 @@
{ config, lib, pkgs, ... }:
# The current KDE config can be output with the command:
# The following can be generated with the command:
# nix run github:nix-community/plasma-manager
#
# Plasma-manager options documentation
# https://nix-community.github.io/plasma-manager/options.xhtml
#
# TODO: (ambitious) Add Kmail support to plasma-manager
# Polonium usage
# https://github.com/zeroxoneafour/polonium/blob/master/docs/usage.md
#
# TODO: Extract this configuration into something that's a bit easier to manage
# TODO: Update shortcuts for better window/tiling/desktop management akin to i3wm
# TODO(ambitious): Add Kmail support to plasma-manager
{
programs.plasma = {
enable = true;
overrideConfig = true;
kwin = {
scripts.polonium.enable = true;
};
hotkeys.commands."launch-konsole" = {
name = "Launch Konsole";
key = "Meta+Return";
key = "Meta+Enter";
command = "konsole";
};
@@ -43,7 +52,7 @@
};
ksmserver = {
"Lock Session" = ["Meta+Ctrl+Q" "Screensaver" "Screensaver,Lock Session"];
"Lock Session" = ["Meta+Ctrl+Q" "Screensaver,Meta+L" "Screensaver,Lock Session"];
};
kwin = {
@@ -58,7 +67,46 @@
"Activate Window Demanding Attention" = "Meta+Ctrl+A";
"PoloniumCycleEngine" = "Meta+|,none,Polonium: Cycle Engine";
"PoloniumFocusAbove" = "Meta+K,none,Polonium: Focus Above";
"PoloniumFocusBelow" = "Meta+J,none,Polonium: Focus Below";
"PoloniumFocusLeft" = "Meta+H,none,Polonium: Focus Left";
"PoloniumFocusRight" = "Meta+L,none,Polonium: Focus Right";
"PoloniumInsertAbove" = "Meta+Shift+K,none,Polonium: Insert Above";
"PoloniumInsertBelow" = "Meta+Shift+J,none,Polonium: Insert Below";
"PoloniumInsertLeft" = "Meta+Shift+H,none,Polonium: Insert Left";
"PoloniumInsertRight" = "Meta+Shift+L,none,Polonium: Insert Right";
"PoloniumOpenSettings" = "Meta+\\\\,none,Polonium: Open Settings Dialog";
"PoloniumResizeAbove" = "Meta+Ctrl+K,none,Polonium: Resize Above";
"PoloniumResizeBelow" = "Meta+Ctrl+J,none,Polonium: Resize Below";
"PoloniumResizeLeft" = "Meta+Ctrl+H,none,Polonium: Resize Left";
"PoloniumResizeRight" = "Meta+Ctrl+L,none,Polonium: Resize Right";
"PoloniumRetileWindow" = "Meta+Shift+Space,none,Polonium: Retile Window";
"PoloniumSwitchBTree" = [ ];
"PoloniumSwitchHalf" = [ ];
"PoloniumSwitchKwin" = [ ];
"PoloniumSwitchMonocle" = [ ];
"PoloniumSwitchThreeColumn" = [ ];
"Show Desktop" = "Meta+D";
"Switch to Desktop 1" = "Meta+1,,Switch to Desktop 1";
"Switch to Desktop 2" = "Meta+2,,Switch to Desktop 2";
"Switch to Desktop 3" = "Meta+3,,Switch to Desktop 3";
"Switch to Desktop 4" = "Meta+4,,Switch to Desktop 4";
"Switch to Desktop 5" = "Meta+5,,Switch to Desktop 5";
"Switch to Desktop 6" = "none,,Switch to Desktop 6";
"Switch to Desktop 7" = "none,,Switch to Desktop 7";
"Switch to Desktop 8" = "none,,Switch to Desktop 8";
"Switch to Desktop 9" = "none,,Switch to Desktop 9";
"Window to Desktop 1" = "Meta+!,,Window to Desktop 1";
"Window to Desktop 2" = "Meta+@,,Window to Desktop 2";
"Window to Desktop 3" = "Meta+#,,Window to Desktop 3";
"Window to Desktop 4" = "Meta+$,,Window to Desktop 4";
"Window to Desktop 5" = "Meta+%,,Window to Desktop 5";
"Window to Desktop 6" = "none,,Window to Desktop 6";
"Window to Desktop 7" = "none,,Window to Desktop 7";
"Window to Desktop 8" = "none,,Window to Desktop 8";
"Window to Desktop 9" = "none,,Window to Desktop 9";
"Walk Through Windows" = "Alt+Tab";
"Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
@@ -89,39 +137,14 @@
"org_kde_powerdevil"."Turn Off Screen" = [ ];
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B,Battery" "Meta+B,Switch Power Profile"];
plasmashell = {
"activate application launcher" = ["Meta" "Alt+F1,Meta" "Alt+F1,Activate Application Launcher"];
"activate task manager entry 1" = "none,,";
"activate task manager entry 2" = "none,,";
"activate task manager entry 3" = "none,,";
"activate task manager entry 4" = "none,,";
"activate task manager entry 5" = "none,,";
"activate task manager entry 6" = "none,,";
"activate task manager entry 7" = "none,,";
"activate task manager entry 8" = "none,,";
"activate task manager entry 9" = "none,,";
"activate task manager entry 10" = "none,,";
"show activity switcher" = "none,,";
};
"plasmashell"."activate application launcher" = ["Meta" "Alt+F1,Meta" "Alt+F1,Activate Application Launcher"];
};
configFile = {
kwinrc.Desktops.Number = {
value = 10;
value = 9;
immutable = true;
};
kcminputrc.Libinput = {
AccelerationProfile = "adaptive";
PointerAcceleration = 0.5;
};
kcminputrc.Mouse = {
X11LibInputXAccelProfileFlat = false;
XLbInptAccelProfileFlat = false;
};
kdeglobals.KDE.LookAndFeelPackage = "org.kde.breezedark.desktop";
};
};
}

View File

@@ -12,10 +12,7 @@
roles = {
audio.enable = true;
bluetooth.enable = true;
desktop = {
enable = true;
waylandOnly = true;
};
desktop.enable = true;
nfs-mounts.enable = true;
printing.enable = true;
spotifyd.enable = true;

View File

@@ -1,7 +1,7 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, modulesPath, pkgs, ... }:
{ config, lib, modulesPath, ... }:
{
imports =
@@ -15,7 +15,6 @@
"nvidia_uvm"
"nvidia_drm"
];
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelParams = [
"nvidia_drm.fbdev=1"
"nvidia_drm.modeset=1"
@@ -33,19 +32,7 @@
powerManagement.finegrained = false;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.latest;
#package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
#version = "555.58";
#sha256_64bit = "sha256-bXvcXkg2kQZuCNKRZM5QoTaTjF4l2TtrsKUvyicj5ew=";
#sha256_aarch64 = lib.fakeSha256;
#openSha256 = lib.fakeSha256;
#settingsSha256 = "sha256-vWnrXlBCb3K5uVkDFmJDVq51wrCoqgPF03lSjZOuU8M=";
#persistencedSha256 = lib.fakeSha256;
#};
};
environment.sessionVariables = {
KWIN_DRM_ALLOW_NVIDIA_COLORSPACE = "1";
package = config.boot.kernelPackages.nvidiaPackages.production;
};
fileSystems."/" =
@@ -58,6 +45,11 @@
fsType = "vfat";
};
fileSystems."/arch" =
{ device = "/dev/disk/by-label/endeavouros";
fsType = "btrfs";
};
swapDevices = [ ];
services.beesd.filesystems = {

View File

@@ -1,6 +1,4 @@
{ pkgs, ... }:
{
nextcloudTalkDesktop = pkgs.callPackage ./nextcloud-talk-desktop {};
modrinthNvidia = pkgs.callPackage ./modrinth-nvidia {};
vulkanHDRLayer = pkgs.callPackage ./vulkan-hdr-layer {};
}

View File

@@ -1,43 +0,0 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.stdenv.mkDerivation {
pname = "modrinth-nvidia";
version = "0.1.0";
src = null;
dontUnpack = true;
dontBuild = true;
dontConfigure = true;
nativeBuildInputs = [ pkgs.makeWrapper
pkgs.modrinth-app ];
# Propagate the required Java versions so they are available at runtime
propagatedBuildInputs = [
pkgs.openjdk8
pkgs.openjdk17
pkgs.openjdk21
];
installPhase = ''
mkdir -p $out/bin
# Copy the original binary
cp ${pkgs.modrinth-app}/bin/ModrinthApp $out/bin/modrinth-nvidia-real
chmod +x $out/bin/modrinth-nvidia-real
# Wrap the binary with makeWrapper, producing a new script at 'modrinth-nvidia'
makeWrapper $out/bin/modrinth-nvidia-real $out/bin/modrinth-nvidia \
--set WEBKIT_DISABLE_DMABUF_RENDERER 1 \
--set WEBKIT_DISABLE_COMPOSITING_MODE 1
mkdir -p $out/share/applications
cat > $out/share/applications/modrinth-nvidia.desktop <<EOF
[Desktop Entry]
Name=Modrinth (NVIDIA)
Comment=Launch Modrinth with environment variables tuned for NVIDIA systems
Exec=$out/bin/modrinth-nvidia
Icon=modrinth-app
Terminal=false
Type=Application
Categories=Game;
EOF
'';
}

View File

@@ -1,40 +1,39 @@
{
lib,
stdenv,
fetchzip,
autoPatchelfHook,
nss,
cairo,
xorg,
libxkbcommon,
alsa-lib,
at-spi2-core,
mesa,
pango,
libdrm,
vivaldi-ffmpeg-codecs,
gtk3,
libGL,
libglvnd,
systemd,
{ lib
, stdenv
, fetchzip
, autoPatchelfHook
, nss
, cairo
, xorg
, libxkbcommon
, alsa-lib
, at-spi2-core
, mesa
, pango
, libdrm
, vivaldi-ffmpeg-codecs
, gtk3
, libGL
, libglvnd
, systemd
}:
stdenv.mkDerivation (finalAttrs: rec {
stdenv.mkDerivation (finalAttrs: {
pname = "nextcloud-talk-desktop";
version = "0.39.0";
version = "0.29.0";
# Building from source would require building also building Server and Talk components
# See https://github.com/nextcloud/talk-desktop?tab=readme-ov-file#%EF%B8%8F-prerequisites
src = fetchzip {
url = "https://github.com/nextcloud-releases/talk-desktop/releases/download/v${finalAttrs.version}/Nextcloud.Talk-linux-x64-${finalAttrs.version}.zip";
hash = "sha256-f8X6I2Je9wgstMTuYGaX7AXAqpZC92RUAltDVsHr9Vo=";
hash = "sha256-fBIeNv8tfrVTFExLQDBPhIazvbsJ7a76+W9G0cuQDlw=";
stripRoot = false;
};
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs =
[
buildInputs = [
nss
cairo
alsa-lib
@@ -47,15 +46,7 @@ stdenv.mkDerivation (finalAttrs: rec {
mesa
libGL
libglvnd
]
++ (with xorg; [
libX11
libXcomposite
libXdamage
libXrandr
libXfixes
libXcursor
]);
] ++ (with xorg; [libX11 libXcomposite libXdamage libXrandr libXfixes libXcursor]);
# Required to launch the application and proceed past the zygote_linux fork() process
# Fixes `Zygote could not fork`
@@ -64,23 +55,25 @@ stdenv.mkDerivation (finalAttrs: rec {
preInstall = ''
mkdir -p $out/bin
mkdir -p $out/opt
cp -r $src/* $out/opt/
'';
installPhase = ''
runHook preInstall
# Link the application in $out/bin away from contents of `preInstall`
ln -s "$out/opt/Nextcloud Talk" $out/bin/nextcloud-talk-desktop
ln -s "$out/opt/Nextcloud Talk-linux-x64/Nextcloud Talk" $out/bin/${finalAttrs.pname}
runHook postInstall
'';
meta = with lib; {
description = "Nextcloud Talk Desktop Client";
description = "Nextcloud Talk Desktop Client Preview";
homepage = "https://github.com/nextcloud/talk-desktop";
changelog = "https://github.com/nextcloud/talk-desktop/blob/${finalAttrs.version}/CHANGELOG.md";
license = licenses.agpl3Only;
maintainers = with maintainers; [ kashw2 ];
mainProgram = "nextcloud-talk-desktop";
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
mainProgram = finalAttrs.pname;
};
})

View File

@@ -1,34 +0,0 @@
{ lib, stdenv, fetchFromGitHub, meson, pkg-config, vulkan-loader, ninja, writeText, vulkan-headers, vulkan-utility-libraries, jq, libX11, libXrandr, libxcb, wayland, wayland-scanner }:
stdenv.mkDerivation rec {
pname = "vulkan-hdr-layer";
version = "63d2eec";
src = (fetchFromGitHub {
owner = "Zamundaaa";
repo = "VK_hdr_layer";
rev = "869199cd2746e7f69cf19955153080842b6dacfc";
fetchSubmodules = true;
hash = "sha256-xfVYI+Aajmnf3BTaY2Ysg5fyDO6SwDFGyU0L+F+E3is=";
}).overrideAttrs (_: {
GIT_CONFIG_COUNT = 1;
GIT_CONFIG_KEY_0 = "url.https://github.com/.insteadOf";
GIT_CONFIG_VALUE_0 = "git@github.com:";
});
nativeBuildInputs = [ vulkan-headers meson ninja pkg-config jq ];
buildInputs = [ vulkan-headers vulkan-loader vulkan-utility-libraries libX11 libXrandr libxcb wayland wayland-scanner ];
# Help vulkan-loader find the validation layers
setupHook = writeText "setup-hook" ''
addToSearchPath XDG_DATA_DIRS @out@/share
'';
meta = with lib; {
description = "Layers providing Vulkan HDR";
homepage = "https://github.com/Zamundaaa/VK_hdr_layer";
platforms = platforms.linux;
license = licenses.mit;
};
}

View File

@@ -31,25 +31,16 @@ with lib;
};
time.timeZone = "America/Los_Angeles";
# Don't go to emergency mode if we aren't able to mount filesystems.
# This is silly if you have multiple hard drives or partitions
# configured on a machine and then one goes away intentionally or
# unintentionally. If the system is already booting, let it continue
# to try and boot.
systemd.enableEmergencyMode = false;
# Enable the OpenSSH daemon.
services.openssh.enable = true;
environment.systemPackages = with pkgs; [
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
git
pciutils
vim
usbutils
];
nix = {
package = pkgs.nix;
package = pkgs.nixFlakes;
distributedBuilds = true;
buildMachines = [{
hostName = "z790prors.oglehome";
@@ -65,14 +56,9 @@ with lib;
max-jobs = "auto";
trusted-users = [ "johno" ];
substituters = [
"https://hyprland.cachix.org"
];
};
gc = {
automatic = true;
randomizedDelaySec = "14m";
options = "--delete-older-than 10d";
};
};
nixpkgs.config.allowUnfree = true;

View File

@@ -5,19 +5,14 @@ with lib;
let
cfg = config.roles.desktop;
customPackages = pkgs.callPackage ../../packages {};
basePackages = with pkgs; [
brightnessctl
mangohud # Should probably get refactored with steam/gamescope out to a gaming role
modrinth-app
protonup-qt
#customPackages.vulkanHDRLayer
polonium # auto tiling kwin addon
];
x11BasePackages = with pkgs; [
customPackages.modrinthNvidia
];
x11OnlyPackages = with pkgs; [
@@ -42,10 +37,6 @@ in
type = types.bool;
default = false;
};
waylandOnly = mkOption {
type = types.bool;
default = false;
};
};
config = mkIf cfg.enable
@@ -114,9 +105,6 @@ in
gamescopeSession = {
enable = true;
};
extraCompatPackages = with pkgs; [
proton-ge-bin
];
#package = pkgs.steam.override {
#withJava = true;
#withPrimus = true;
@@ -125,7 +113,7 @@ in
};
services.sunshine = {
enable = true;
autoStart = false;
autoStart = true;
capSysAdmin = true;
openFirewall = true;
};
@@ -135,10 +123,11 @@ in
environment.systemPackages = with pkgs; mkMerge [
basePackages
(mkIf (!cfg.waylandOnly) x11BasePackages)
x11BasePackages
(mkIf cfg.x11Only x11OnlyPackages)
# TODO: Do we need a "wayland only" mode?
(mkIf (!cfg.x11Only) waylandBasePackages)
(mkIf (cfg.waylandOnly) waylandOnlyPackages)
(mkIf (!cfg.x11Only) waylandOnlyPackages)
];
};

View File

@@ -25,7 +25,7 @@ in
users.users.johno = {
isNormalUser = true;
description = "John Ogle";
extraGroups = [ "wheel" "networkmanager" "audio" "video" ] ++ cfg.extraGroups;
extraGroups = [ "wheel" "networkmanager" "audio" ] ++ cfg.extraGroups;
};
users.users.eli = mkIf cfg.kids {