Compare commits

..

9 Commits

Author SHA1 Message Date
Jan-Bulthuis 9d73b0d728 Removed some imports 2025-01-28 09:21:01 +01:00
Jan-Bulthuis 115a27d1c6 Added networkmanager 2025-01-28 09:20:50 +01:00
Jan-Bulthuis 66c619883b Removed some old packages 2025-01-28 09:14:33 +01:00
Jan-Bulthuis 3bb401859d Added eduvpn 2025-01-28 09:03:45 +01:00
Jan-Bulthuis cb35b1afd9 Back to ES-DE 2025-01-26 15:11:52 +01:00
Jan-Bulthuis b3298359b4 Moved to pegasus 2025-01-26 13:53:54 +01:00
Jan-Bulthuis 99928ddb16 Added exception for insecure dependency 2025-01-26 13:31:23 +01:00
Jan-Bulthuis 1a2d9b6490 Added ES-DE 2025-01-26 13:28:36 +01:00
Jan-Bulthuis 8e0e511335 Reorganization 2025-01-26 13:16:06 +01:00
36 changed files with 150 additions and 1573 deletions

View File

@ -366,11 +366,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737669579, "lastModified": 1737762889,
"narHash": "sha256-v9WQ3c4ctwPMfdBZMZxpdM9xXev4uChce4BxOpvsu0E=", "narHash": "sha256-5HGG09bh/Yx0JA8wtBMAzt0HMCL1bYZ93x4IqzVExio=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "7b9ece1bf3c8780cde9b975b28c2d9ccd7e9cdb9", "rev": "daf04c5950b676f47a794300657f1d3d14c1a120",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -387,11 +387,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737630279, "lastModified": 1737762889,
"narHash": "sha256-wJQCxyMRc4P26zDrHmZiRD5bbfcJpqPG3e2djdGG3pk=", "narHash": "sha256-5HGG09bh/Yx0JA8wtBMAzt0HMCL1bYZ93x4IqzVExio=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "0db5c8bfcce78583ebbde0b2abbc95ad93445f7c", "rev": "daf04c5950b676f47a794300657f1d3d14c1a120",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -493,11 +493,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1737469691, "lastModified": 1737746512,
"narHash": "sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk=", "narHash": "sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab", "rev": "825479c345a7f806485b7f00dbe3abb50641b083",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -509,11 +509,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1737525964, "lastModified": 1737717945,
"narHash": "sha256-3wFonKmNRWKq1himW9N3TllbeGIHFACI5vmLpk6moF8=", "narHash": "sha256-ET91TMkab3PmOZnqiJQYOtSGvSTvGeHoegAv4zcTefM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5757bbb8bd7c0630a0cc4bb19c47e588db30b97c", "rev": "ecd26a469ac56357fd333946a99086e992452b6a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -552,11 +552,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1737667561, "lastModified": 1737832569,
"narHash": "sha256-BKUapQPTji3V2uxymGq62/UWF1XMjfHvKd565jj1HlA=", "narHash": "sha256-VkK73VRVgvSQOPw9qx9HzvbulvUM9Ae4nNd3xNP+pkI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "aab2b81792567237c104b90c3936e073d28a9ac6", "rev": "d7df58321110d3b0e12a829bbd110db31ccd34b1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -574,11 +574,11 @@
"treefmt-nix": "treefmt-nix_2" "treefmt-nix": "treefmt-nix_2"
}, },
"locked": { "locked": {
"lastModified": 1737676011, "lastModified": 1737897819,
"narHash": "sha256-NqRCQ98D1LY1txY8juG8ufvdSCfvvnoYjV6U6KLRHQ8=", "narHash": "sha256-oVr0st3IHSgIPLDCoDtbI/TiLcMqs85KGBfLqFV3xQU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "470a60434e82a09ea60adb564919923e1017feb7", "rev": "ee6e560d3cbfdbb2d92d1d95c83aaa434ed42dc5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -640,11 +640,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1737657729, "lastModified": 1737861120,
"narHash": "sha256-TIDR1zKoP2uaqRot/LnarugfAC9U7geycjbJqA1naVM=", "narHash": "sha256-V/GWU1BQwbxyZif9RBvwn10S1KX+86uPkkI41KQEcQQ=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "e594886eb0951a0a0c28ffa333a9df6fb13857a1", "rev": "d6951d0b2ffe74e4779a180e9b6a0e17627756e1",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -44,6 +44,11 @@
nixvim.homeManagerModules.nixvim nixvim.homeManagerModules.nixvim
nur.modules.homeManager.default nur.modules.homeManager.default
{ {
# TODO: Remove insecure package exception
nixpkgs.config.permittedInsecurePackages = [
"freeimage-unstable-2021-11-01" # For emulation station
"electron-31.7.7" # For feishin
];
nixpkgs.overlays = [ nixpkgs.overlays = [
nix-matlab.overlay nix-matlab.overlay
]; ];

View File

@ -61,7 +61,7 @@ in
neovim.enable = true; neovim.enable = true;
systemd-boot.enable = true; systemd-boot.enable = true;
tuigreet.enable = true; tuigreet.enable = true;
# tailscale.enable = true; networkmanager.enable = true;
}; };
# TODO: Remove everything below, it is here out of convenience and should be elsewhere # TODO: Remove everything below, it is here out of convenience and should be elsewhere

View File

@ -21,6 +21,7 @@ with lib;
./greeter/greetd/tuigreet.nix ./greeter/greetd/tuigreet.nix
./locale/default.nix ./locale/default.nix
./neovim/default.nix ./neovim/default.nix
./networkmanager/default.nix
./power-saving/default.nix ./power-saving/default.nix
./sound/pipewire.nix ./sound/pipewire.nix
./users/default.nix ./users/default.nix

View File

@ -0,0 +1,25 @@
{
lib,
config,
...
}:
with lib;
let
cfg = config.modules.power-saving;
in
{
options.modules.networkmanager = {
enable = mkEnableOption "networkmanager";
};
config = mkIf cfg.enable {
machine.sudo-groups = [ "networkmanager" ];
networking = {
networkmanager = {
enable = true;
wifi.powersave = true;
};
};
};
}

View File

@ -1,7 +1,6 @@
{ {
lib, lib,
config, config,
pkgs,
... ...
}: }:

View File

@ -1,59 +0,0 @@
{
fetchFromGitHub,
lib,
linux-pam,
rustPlatform,
testers,
lemurs,
pkgs,
}:
rustPlatform.buildRustPackage rec {
pname = "jellyfin-tui";
version = "1.0.1";
src = fetchFromGitHub {
owner = "dhonus";
repo = "jellyfin-tui";
rev = "v${version}";
hash = "sha256-jHjTckdyPMJO1INF1AdJvvWTJ0ZJJGOxkBc0YZx9HWI=";
};
cargoHash = "sha256-H6JTupGh1ec6/RIkoAPMl2agNSbF9B5CuJlxDNEwDc4=";
buildInputs = with pkgs; [
mpv
];
nativeBuildInputs = with pkgs; [
pkg-config
openssl
openssl.dev
];
desktopItems =
let
desktopEntry = pkgs.makeDesktopItem {
name = "siyuan";
desktopName = "SiYuan";
comment = "Refactor your thinking";
terminal = true;
exec = "jellyfin-tui";
};
in
[
desktopEntry
];
PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig";
meta = with lib; {
description = "Jellyfin TUI music client written in Rust";
homepage = "https://github.com/dhonus/jellyfin-tui";
license = with licenses; [
gpl3
];
maintainers = with maintainers; [ ];
mainProgram = "jellyfin-tui";
};
}

View File

@ -4,15 +4,11 @@
{ {
nixpkgs.config = { nixpkgs.config = {
# android_sdk.accept_license = true; # TODO: Move to android module
packageOverrides = pkgs: { packageOverrides = pkgs: {
dina-vector = pkgs.callPackage ./fonts/dina-vector.nix { }; dina-vector = pkgs.callPackage ./fonts/dina-vector.nix { };
wqy-zenhei = pkgs.callPackage ./fonts/wqy-zenhei.nix { }; wqy-zenhei = pkgs.callPackage ./fonts/wqy-zenhei.nix { };
wqy-microhei = pkgs.callPackage ./fonts/wqy-microhei.nix { }; wqy-microhei = pkgs.callPackage ./fonts/wqy-microhei.nix { };
wqy-bitmapsong = pkgs.callPackage ./fonts/wqy-bitmapsong.nix { }; wqy-bitmapsong = pkgs.callPackage ./fonts/wqy-bitmapsong.nix { };
temp-quickgui = pkgs.callPackage ./temp/quickgui.nix { };
# qutebrowser = pkgs.callPackage ./fixes/qutebrowser/default.nix { };
jellyfin-tui = pkgs.callPackage ./custom/jellyfin-tui.nix { };
}; };
}; };
} }

View File

@ -1,167 +0,0 @@
{
pkgs,
stdenv,
lib,
fetchurl,
fetchzip,
python3,
glib-networking,
asciidoc,
docbook_xml_dtd_45,
docbook_xsl,
libxml2,
libxslt,
withPdfReader ? true,
pipewireSupport ? stdenv.hostPlatform.isLinux,
pipewire,
enableWideVine ? false,
widevine-cdm,
# can cause issues on some graphics chips
enableVulkan ? false,
vulkan-loader,
}:
let
# Load in Qt packages.
qtbase = pkgs.kdePackages.qtbase;
qtwebengine = pkgs.kdePackages.qtwebengine;
qtwayland = pkgs.kdePackages.qtwayland;
wrapQtAppsHook = pkgs.kdePackages.wrapQtAppsHook;
isQt6 = lib.versions.major qtbase.version == "6";
pdfjs =
let
version = "4.2.67";
in
fetchzip {
url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/pdfjs-${version}-dist.zip";
hash = "sha256-7kfT3+ZwoGqZ5OwkO9h3DIuBFd0v8fRlcufxoBdcy8c=";
stripRoot = false;
};
version = "3.2.1";
in
python3.pkgs.buildPythonApplication {
pname = "qutebrowser" + lib.optionalString (!isQt6) "-qt5";
inherit version;
src = fetchurl {
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/qutebrowser-${version}.tar.gz";
hash = "sha256-AqevKmxds42HsiWwuEEsgNmDgzXzLQ6KOPbX+804iX0=";
};
# Needs tox
doCheck = false;
buildInputs =
[
qtbase
glib-networking
]
++ lib.optionals stdenv.hostPlatform.isLinux [
qtwayland
];
nativeBuildInputs = [
wrapQtAppsHook
asciidoc
docbook_xml_dtd_45
docbook_xsl
libxml2
libxslt
];
dependencies = with python3.pkgs; [
colorama
pyyaml
(if isQt6 then pyqt6-webengine else pyqtwebengine)
jinja2
pygments
# scripts and userscripts libs
tldextract
beautifulsoup4
readability-lxml
pykeepass
stem
pynacl
# extensive ad blocking
adblock
# for the qute-bitwarden user script to be able to copy the TOTP token to clipboard
pyperclip
];
patches = [
./fix-restart.patch
];
dontWrapQtApps = true;
postPatch =
''
substituteInPlace qutebrowser/misc/quitter.py --subst-var-by qutebrowser "$out/bin/qutebrowser"
sed -i "s,/usr,$out,g" qutebrowser/utils/standarddir.py
''
+ lib.optionalString withPdfReader ''
sed -i "s,/usr/share/pdf.js,${pdfjs},g" qutebrowser/browser/pdfjs.py
'';
installPhase = ''
runHook preInstall
make -f misc/Makefile \
PYTHON=${(python3.pythonOnBuildForHost.withPackages (ps: with ps; [ setuptools ])).interpreter} \
PREFIX=. \
DESTDIR="$out" \
DATAROOTDIR=/share \
install
runHook postInstall
'';
postInstall = ''
# Patch python scripts
buildPythonPath "$out $propagatedBuildInputs"
scripts=$(grep -rl python "$out"/share/qutebrowser/{user,}scripts/)
for i in $scripts; do
patchPythonScript "$i"
done
'';
preFixup =
let
libPath = lib.makeLibraryPath [ pipewire ];
in
''
makeWrapperArgs+=(
# Force the app to use QT_PLUGIN_PATH values from wrapper
--unset QT_PLUGIN_PATH
"''${qtWrapperArgs[@]}"
# avoid persistant warning on starup
--set QT_STYLE_OVERRIDE Fusion
${lib.optionalString pipewireSupport ''--prefix LD_LIBRARY_PATH : ${libPath}''}
${lib.optionalString (enableVulkan) ''
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ vulkan-loader ]}
--set-default QSG_RHI_BACKEND vulkan
''}
${lib.optionalString enableWideVine ''--add-flags "--qt-flag widevine-path=${widevine-cdm}/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"''}
--set QTWEBENGINE_RESOURCES_PATH "${qtwebengine}/resources"
)
'';
meta = with lib; {
homepage = "https://github.com/qutebrowser/qutebrowser";
changelog = "https://github.com/qutebrowser/qutebrowser/blob/v${version}/doc/changelog.asciidoc";
description = "Keyboard-focused browser with a minimal GUI";
license = licenses.gpl3Plus;
mainProgram = "qutebrowser";
platforms = if enableWideVine then [ "x86_64-linux" ] else qtwebengine.meta.platforms;
maintainers = with maintainers; [
jagajaga
rnhmjoj
ebzzry
dotlambda
nrdxp
];
};
}

View File

@ -1,19 +0,0 @@
diff --git a/quitter.py b/quitter.py
index a42b9d0..f544ccb 100644
--- a/qutebrowser/misc/quitter.py
+++ b/qutebrowser/misc/quitter.py
@@ -112,13 +112,7 @@ class Quitter(QObject):
Return:
The commandline as a list of strings.
"""
- if os.path.basename(sys.argv[0]) == 'qutebrowser':
- # Launched via launcher script
- args = [sys.argv[0]]
- elif hasattr(sys, 'frozen'):
- args = [sys.executable]
- else:
- args = [sys.executable, '-m', 'qutebrowser']
+ args = ['@qutebrowser@']
# Add all open pages so they get reopened.
page_args = [] # type: typing.MutableSequence[str]

View File

@ -1,6 +1,4 @@
{ {
lib,
config,
pkgs, pkgs,
... ...
}: }:

View File

@ -1,6 +1,4 @@
{ {
lib,
config,
pkgs, pkgs,
... ...
}: }:

View File

@ -1,6 +1,4 @@
{ {
lib,
config,
pkgs, pkgs,
... ...
}: }:

View File

@ -1,6 +1,4 @@
{ {
lib,
config,
pkgs, pkgs,
... ...
}: }:

View File

@ -1,20 +0,0 @@
{
lib,
config,
pkgs,
...
}:
pkgs.rustPlatform.buildRustPackage rec {
pname = "owm";
version = "0.1.0";
src = pkgs.fetchFromGitHub {
owner = "justinlovinger";
repo = pname;
rev = "master";
sha256 = "sha256-l9usg0XGtghCX8elvjExYJgMuMGeujOoS2n1hCQkN78=";
};
cargoSha256 = "";
}

File diff suppressed because it is too large Load Diff

View File

@ -1,70 +0,0 @@
{
fetchFromGitHub,
makeDesktopItem,
copyDesktopItems,
lib,
flutter,
quickemu,
zenity,
}:
flutter.buildFlutterApplication rec {
pname = "quickgui";
version = "1.2.10";
src = fetchFromGitHub {
owner = "quickemu-project";
repo = "quickgui";
rev = version;
hash = "sha256-M2Qy66RqsjXg7ZpHwaXCN8qXRIsisnIyaENx3KqmUfQ=";
};
pubspecLock = lib.importJSON ./pubspec.lock.json;
gitHashes = {
window_size = "sha256-XelNtp7tpZ91QCEcvewVphNUtgQX7xrp5QP0oFo6DgM=";
};
extraWrapProgramArgs = "--prefix PATH : ${
lib.makeBinPath [
quickemu
zenity
]
}";
nativeBuildInputs = [
copyDesktopItems
];
postFixup = ''
for SIZE in 16 32 48 64 128 256 512; do
mkdir -p $out/share/icons/hicolor/$SIZEx$SIZE/apps/
cp -av assets/resources/quickgui_$SIZE.png $out/share/icons/hicolor/$SIZEx$SIZE/apps/quickgui.png
done
'';
desktopItems = [
(makeDesktopItem {
name = "quickgui";
exec = "quickgui";
icon = "quickgui";
desktopName = "Quickgui";
comment = "An elegant virtual machine manager for the desktop";
categories = [
"Development"
"System"
];
})
];
meta = with lib; {
description = "Elegant virtual machine manager for the desktop";
homepage = "https://github.com/quickemu-project/quickgui";
changelog = "https://github.com/quickemu-project/quickgui/releases/";
license = licenses.mit;
maintainers = with maintainers; [
flexiondotorg
heyimnova
];
platforms = [ "x86_64-linux" ];
mainProgram = "quickgui";
};
}

View File

@ -11,18 +11,11 @@
./desktop/default.nix ./desktop/default.nix
./development/default.nix ./development/default.nix
./discord/default.nix ./discord/default.nix
./eduvpn/default.nix
./feishin/default.nix ./feishin/default.nix
./fontconfig/default.nix ./fontconfig/default.nix
./games/modrinth.nix ./gaming/default.nix
./git/default.nix ./git/default.nix
./language/cpp.nix
./language/haskell.nix
./language/js.nix
./language/jupyter.nix
./language/nix.nix
./language/python.nix
./language/rust.nix
./language/tex.nix
./mako/default.nix ./mako/default.nix
./neovim/default.nix ./neovim/default.nix
./obsidian/default.nix ./obsidian/default.nix
@ -32,7 +25,6 @@
./shell/bash.nix ./shell/bash.nix
./shell/fish.nix ./shell/fish.nix
./spotify/default.nix ./spotify/default.nix
./steam/default.nix
./terminal/default.nix ./terminal/default.nix
./terminal/foot/default.nix ./terminal/foot/default.nix
./theming/default.nix ./theming/default.nix

View File

@ -3,6 +3,14 @@
{ {
imports = [ imports = [
./ide/matlab.nix ./ide/matlab.nix
./utilities/docker.nix ./language/cpp.nix
./language/haskell.nix
./language/js.nix
./language/jupyter.nix
./language/nix.nix
./language/python.nix
./language/rust.nix
./language/tex.nix
./utility/docker.nix
]; ];
} }

View File

@ -0,0 +1,23 @@
{
lib,
config,
pkgs,
...
}:
with lib;
let
cfg = config.modules.eduvpn;
in
{
options.modules.eduvpn = {
enable = mkEnableOption "EduVPN";
};
config = mkIf cfg.enable {
# Development packages
home.packages = with pkgs; [
eduvpn-client
];
};
}

View File

@ -13,9 +13,6 @@ in
options.modules.feishin.enable = mkEnableOption "feishin"; options.modules.feishin.enable = mkEnableOption "feishin";
config = mkIf cfg.enable { config = mkIf cfg.enable {
# TODO: Remove insecure package exception
nixpkgs.config.permittedInsecurePackages = [ "electron-31.7.7" ];
# TODO: Move to audioling # TODO: Move to audioling
home.packages = with pkgs; [ feishin ]; home.packages = with pkgs; [ feishin ];
}; };

View File

@ -0,0 +1,10 @@
{ ... }:
{
imports = [
./emulators/ryujinx.nix
./launchers/es-de.nix
./launchers/modrinth.nix
./launchers/steam.nix
];
}

View File

@ -0,0 +1,22 @@
{
lib,
config,
pkgs,
...
}:
with lib;
let
cfg = config.modules.ryujinx;
in
{
options.modules.ryujinx = {
enable = mkEnableOption "ryujinx";
};
config = mkIf cfg.enable {
home.packages = with pkgs; [
ryujinx
];
};
}

View File

@ -0,0 +1,26 @@
{
lib,
config,
pkgs,
...
}:
with lib;
let
cfg = config.modules.es-de;
in
{
options.modules.es-de = {
enable = mkEnableOption "Emulation Station Desktop Edition";
};
config = mkIf cfg.enable {
home.packages = with pkgs; [
emulationstation-de
];
home.sessionVariables = {
ESDE_APPDATA_DIR = "$HOME/.config/ES-DE";
};
};
}

View File

@ -10,4 +10,6 @@ with lib;
options.modules.steam = { options.modules.steam = {
enable = mkEnableOption "steam"; enable = mkEnableOption "steam";
}; };
# The rest of the configuration is in a systemwide module
} }

View File

@ -65,6 +65,8 @@
# Gaming # Gaming
steam.enable = true; steam.enable = true;
modrinth.enable = true; modrinth.enable = true;
es-de.enable = true;
ryujinx.enable = true;
# Media # Media
spotify.enable = true; spotify.enable = true;
@ -83,6 +85,7 @@
winbox.enable = true; winbox.enable = true;
obsidian.enable = true; obsidian.enable = true;
zathura.enable = true; zathura.enable = true;
eduvpn.enable = true;
# Development # Development
neovim.enable = true; neovim.enable = true;