From 48d18fb5174c82c69e84859fe65f1ee8037fd981 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Tue, 17 Oct 2023 04:00:39 +0200 Subject: Desktop stuff --- flake.nix | 2 + host/Rory-desktop/configuration.nix | 80 ++++++++++++++++---------------- modules/base-client.nix | 2 + modules/base.nix | 9 ++++ modules/environments/home.nix | 17 ++++--- modules/packages/discord-screenaudio.nix | 57 +++++++++++++++++++++++ modules/packages/dotnet-pack.nix | 26 +++++++++++ modules/users/Rory.nix | 20 +++++++- 8 files changed, 167 insertions(+), 46 deletions(-) create mode 100644 modules/packages/discord-screenaudio.nix create mode 100644 modules/packages/dotnet-pack.nix diff --git a/flake.nix b/flake.nix index a30d9a8..b8c8b6d 100755 --- a/flake.nix +++ b/flake.nix @@ -81,6 +81,8 @@ ]; specialArgs = { inherit home-manager; + inherit (inputs) mtxclientSrc; + inherit (inputs) nhekoSrc; }; }; diff --git a/host/Rory-desktop/configuration.nix b/host/Rory-desktop/configuration.nix index 6d7f3d0..78c684a 100644 --- a/host/Rory-desktop/configuration.nix +++ b/host/Rory-desktop/configuration.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, ... }: +{ config, pkgs, lib, nhekoSrc, mtxclientSrc, ... }: { imports = @@ -6,6 +6,7 @@ ../../modules/base-client.nix ../../modules/packages/vim.nix ../../modules/environments/home.nix + ../../modules/software-templates/profilers.nix ]; boot = { @@ -37,6 +38,7 @@ prefixLength = 24; } ]; + defaultGateway = "192.168.0.1"; # useDHCP = true; }; @@ -51,7 +53,23 @@ libinput.enable = true; layout = "us"; #modules = [ pkgs.xorg.xf86videointel ]; + windowManager.i3.enable = true; + windowManager.i3.extraPackages = with pkgs; [ + dmenu + i3status + polybarFull + dunst + ]; + windowManager.i3.extraSessionCommands = '' + xrandr --output DP-5 --auto --pos -1920x1080 + xrandr --output HDMI-0 --auto --primary --pos 1920x0 + polybar & + dunst & + ''; }; + picom.enable = true; + picom.vSync = false; + picom.backend = "glx"; gnome = { core-developer-tools.enable = false; core-utilities.enable = false; @@ -66,6 +84,7 @@ gnome-initial-setup.enable = false; gnome-browser-connector.enable = false; games.enable = false; + gnome-keyring.enable = lib.mkForce false; evolution-data-server.enable = lib.mkForce false; at-spi2-core.enable = lib.mkForce false; }; @@ -105,60 +124,37 @@ }; environment.systemPackages = with pkgs; [ - wget - neofetch - lnav - pciutils - git - lsd - duf - htop - btop - udisks - gparted - kitty.terminfo - glxinfo - jq - yq - pv - dig - cloud-utils - sshfs cinnamon.nemo firefox-bin - #epiphany + schildichat-desktop + gnome-console feh - # Various extensions... - # - Gnome - #gnomeExtensions.vitals - #gnomeExtensions.runcat - # - Dont work on gnome 43: - #gnomeExtensions.undecorate - #gnomeExtensions.inactivity - #gnomeExtensions.left-clock - # - Vim - vimPlugins.vim-nix - # - zsh - zsh - zsh-powerlevel10k - zsh-nix-shell - zsh-you-should-use - zsh-syntax-highlighting - zsh-completions + easyeffects + kitty + youtube-music # - IDEs jetbrains-toolbox + jetbrains.rider + dbeaver insomnia + vscode + + # - Languages + #dotnet-sdk_7 + #dotnet-sdk_8 + (callPackage ../../modules/packages/dotnet-pack.nix { inherit pkgs; }) #games osu-lazer-bin #steam steam-run steam-acf - + + (callPackage ../../modules/packages/nheko-git.nix { inherit nhekoSrc; inherit mtxclientSrc; }) ]; programs.steam.enable = true; programs.steam.gamescopeSession.enable = true; @@ -223,6 +219,12 @@ package = config.boot.kernelPackages.nvidiaPackages.stable; }; + environment.etc."resolv.conf".text = '' + nameserver 8.8.8.8 + nameserver 8.4.4.8 + nameserver 1.1.1.1 + nameserver 1.0.0.1 + ''; system.stateVersion = "22.11"; # DO NOT EDIT! } diff --git a/modules/base-client.nix b/modules/base-client.nix index c5ebd22..7304ffe 100755 --- a/modules/base-client.nix +++ b/modules/base-client.nix @@ -36,10 +36,12 @@ gparted arandr discord-development + gnome.gnome-screenshot ]; fonts.fonts = with pkgs; [ (nerdfonts.override { fonts = [ "JetBrainsMono" ]; }) + cozette ]; systemd.coredump.extraConfig = lib.mkDefault '' diff --git a/modules/base.nix b/modules/base.nix index 22c1d3b..5727f00 100755 --- a/modules/base.nix +++ b/modules/base.nix @@ -94,6 +94,15 @@ cloud-utils nix-output-monitor expect + + + # - zsh + zsh + zsh-powerlevel10k + zsh-nix-shell + zsh-you-should-use + zsh-syntax-highlighting + zsh-completions ]; systemd.coredump.extraConfig = lib.mkDefault '' diff --git a/modules/environments/home.nix b/modules/environments/home.nix index 9bfb80e..0658abb 100755 --- a/modules/environments/home.nix +++ b/modules/environments/home.nix @@ -3,20 +3,24 @@ { nix = { distributedBuilds = true; - - buildMachines = [ - #"self" = { - # - #}; +# + buildMachines = builtins.filter (machine: !builtins.any (ip: ip == machine.hostName) (builtins.map (iface: iface.ipv4.addresses) (builtins.attrValues config.networking.interfaces))) [ { systems = [ "x86_64-linux" "i686-linux" ]; hostName = "192.168.0.3"; sshUser = "Rory"; sshKey = "/home/Rory/.ssh/id_ed25519"; maxJobs = 6; - #cores = 2; speedFactor = 43200; } + { + systems = [ "x86_64-linux" "i686-linux" ]; + hostName = "192.168.0.59"; + sshUser = "Rory"; + sshKey = "/home/Rory/.ssh/id_ed25519"; + maxJobs = 2; + speedFactor = 16000; + } ]; #ssh://Rory@192.168.0.3 x86_64-linux,i686-linux /home/Rory/.ssh/id_ed25519 12 1 - - - @@ -35,6 +39,7 @@ "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" "numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE=" ]; + trusted-users = [ "root" "@wheel" "Rory" ]; }; }; diff --git a/modules/packages/discord-screenaudio.nix b/modules/packages/discord-screenaudio.nix new file mode 100644 index 0000000..4bf7c11 --- /dev/null +++ b/modules/packages/discord-screenaudio.nix @@ -0,0 +1,57 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, wrapQtAppsHook +, pkg-config +, qtbase +, qtwebengine +, knotifications +, kxmlgui +, kglobalaccel +, pipewire +, xdg-desktop-portal +}: + +stdenv.mkDerivation rec { + pname = "discord-screenaudio"; + version = "1.9.0"; + + src = fetchFromGitHub { + owner = "maltejur"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-PPP/+7x0dcQHowB7hUZu85LK/G+ohrPeRB0vv6e3PBg="; + fetchSubmodules = true; + }; + + cmakeFlags = [ + "-DPipeWire_INCLUDE_DIRS=${pipewire.dev}/include/pipewire-0.3" + "-DSpa_INCLUDE_DIRS=${pipewire.dev}/include/spa-0.2" + ]; + + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + qtwebengine + knotifications + kxmlgui + kglobalaccel + pipewire + pipewire.pulse + xdg-desktop-portal + ]; + + meta = with lib; { + homepage = "https://github.com/maltejur/discord-screenaudio"; + description = "A custom discord client that supports streaming with audio on Linux"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ michaelBelsanti ]; + }; +} diff --git a/modules/packages/dotnet-pack.nix b/modules/packages/dotnet-pack.nix new file mode 100644 index 0000000..27c419d --- /dev/null +++ b/modules/packages/dotnet-pack.nix @@ -0,0 +1,26 @@ +{ pkgs ? import {} }: + +#pkgs.stdenv.mkDerivation { +# name = "dotnet-pack"; +# dontUnpack = true; +# buildInputs = with pkgs; [ dotnet-sdk dotnet-sdk_7 dotnet-sdk_8 ]; +# +# # Define the build phase +# buildPhase = '' +# mkdir -p $out +# ln -sf ${pkgs.dotnet-sdk}/* $out/ +# ln -sf ${pkgs.dotnet-sdk_7}/* $out/ +# ln -sf ${pkgs.dotnet-sdk_8}/* $out/ +# ''; +#} + +pkgs.symlinkJoin { + name = "dotnet-pack"; + paths = [ pkgs.dotnet-sdk_8 pkgs.dotnet-sdk_7 pkgs.dotnet-sdk ]; + postBuild = '' + rm -rfv $out/bin + rm -rfv $out/dotnet + cp -rv ${pkgs.dotnet-sdk_8}/dotnet $out/ + cp -rv ${pkgs.dotnet-sdk_8}/bin $out/ + ''; +} \ No newline at end of file diff --git a/modules/users/Rory.nix b/modules/users/Rory.nix index 25ab725..e57c220 100755 --- a/modules/users/Rory.nix +++ b/modules/users/Rory.nix @@ -127,7 +127,25 @@ Install = { WantedBy = [ "default.target" ]; }; - Service = { ExecStart = "${pkgs.keepassxc}/bin/keepassxc ~/.secrets.kdbx"; }; + Service = { + ExecStart = "${pkgs.keepassxc}/bin/keepassxc ~/.secrets.kdbx"; + Restart = "always"; + }; + }; + + systemd.user.services.easyeffects = { + Unit = { + Description = "EasyEffects"; + #After = [ "graphical-session-pre.target" ]; + PartOf = [ "default.target" ]; + }; + + Install = { WantedBy = [ "default.target" ]; }; + + Service = { + ExecStart = "${pkgs.easyeffects}/bin/easyeffects"; + Restart = "always"; + }; }; programs.neovim.plugins = with pkgs.vimPlugins; [ -- cgit 1.4.1