Compare commits

..

3 Commits

Author SHA1 Message Date
4a483febf9
a 2024-01-23 02:11:22 +03:00
702e593259
stuff exists again 2024-01-14 22:05:39 +03:00
dfc0eaba77
a 2023-11-24 17:02:44 +03:00
27 changed files with 568 additions and 376 deletions

File diff suppressed because it is too large Load Diff

View File

@ -59,6 +59,12 @@
discordrp-mpris.url = "github:yusdacra/discordrp-mpris-flake"; discordrp-mpris.url = "github:yusdacra/discordrp-mpris-flake";
discordrp-mpris.inputs.nixpkgs.follows = "nixpkgs"; discordrp-mpris.inputs.nixpkgs.follows = "nixpkgs";
s3s.url = "github:yusdacra/s3s-flake";
s3s.inputs.nixpkgs.follows = "nixpkgs";
naked-shell.url = "github:yusdacra/mk-naked-shell";
naked-shell.flake = false;
# vfio.url = "github:yusdacra/nixos-vfio"; # vfio.url = "github:yusdacra/nixos-vfio";
# vfio.inputs.nixpkgs.follows = "nixpkgs"; # vfio.inputs.nixpkgs.follows = "nixpkgs";

View File

@ -68,10 +68,22 @@
services.xserver.videoDrivers = ["nvidia" "amdgpu"]; services.xserver.videoDrivers = ["nvidia" "amdgpu"];
hardware = { hardware = {
nvidia.prime = { nvidia = {
package = config.boot.kernelPackages.nvidiaPackages.production;
modesetting.enable = true;
powerManagement.enable = false;
powerManagement.finegrained = true;
open = false;
nvidiaSettings = true;
prime = {
offload = {
enable = true;
enableOffloadCmd = true;
};
amdgpuBusId = "PCI:5:0:0"; amdgpuBusId = "PCI:5:0:0";
nvidiaBusId = "PCI:1:0:0"; nvidiaBusId = "PCI:1:0:0";
}; };
};
opengl = { opengl = {
driSupport = true; driSupport = true;
driSupport32Bit = true; driSupport32Bit = true;

View File

@ -0,0 +1 @@
../../../modules/de/budgie/default.nix

View File

@ -0,0 +1,4 @@
{
services.joycond.enable = true;
hardware.xpadneo.enable = true;
}

View File

@ -0,0 +1,17 @@
{pkgs, ...}: let
_wellKnownFile =
pkgs.writeText "server" "did:plc:dfl62fgb7wtjj3fcbb72naae";
wellKnownFile = pkgs.runCommand "well-known" {} ''
mkdir -p $out
cp ${_wellKnownFile} $out/atproto-did
'';
in
{
services.nginx.virtualHosts."gaze.systems" = {
locations."/.well-known/".extraConfig = ''
add_header content-type text/plain;
add_header access-control-allow-origin *;
alias ${wellKnownFile}/;
'';
};
}

View File

@ -0,0 +1,18 @@
{config, ...}: {
services.hedgedoc = {
enable = true;
settings = {
port = 3333;
domain = "doc.gaze.systems";
protocolUseSSL = true;
allowEmailRegister = false;
allowAnonymous = false;
};
};
services.nginx.virtualHosts."doc.gaze.systems" = {
useACMEHost = "gaze.systems";
forceSSL = true;
locations."/".proxyPass = "http://${config.services.hedgedoc.settings.host}:${toString config.services.hedgedoc.settings.port}";
};
}

View File

@ -20,6 +20,7 @@
"ms.gaze.systems" "ms.gaze.systems"
"mq.gaze.systems" "mq.gaze.systems"
"couchdb.gaze.systems" "couchdb.gaze.systems"
"doc.gaze.systems"
]; ];
}; };
certs."limbus.company" = { certs."limbus.company" = {

View File

@ -0,0 +1,33 @@
{
pkgs,
lib,
...
}: {
services.xserver = {
enable = true;
desktopManager = {
budgie.enable = true;
xterm.enable = false;
};
displayManager = {
gdm = {
enable = true;
wayland = false;
};
startx.enable = false;
};
};
systemd.services = {
"getty@tty1".enable = false;
"autovt@tty1".enable = false;
};
services.power-profiles-daemon.enable = false;
environment.systemPackages = with pkgs; [
ffmpegthumbnailer
webp-pixbuf-loader
yaru-theme
];
# environment.etc."environment.d/10-use-amd.conf".text = ''
# __EGL_VENDOR_LIBRARY_FILENAMES=/run/opengl-driver/glvnd/egl_vendor.d/50_mesa.json
# '';
}

View File

@ -19,7 +19,7 @@
services.tumbler.enable = true; services.tumbler.enable = true;
programs = { programs = {
geary.enable = lib.mkForce false; geary.enable = lib.mkForce false;
gnome-terminal.enable = lib.mkForce false; gnome-terminal.enable = true;
evince.enable = true; evince.enable = true;
}; };
services.xserver = { services.xserver = {
@ -29,13 +29,9 @@
xterm.enable = false; xterm.enable = false;
}; };
displayManager = { displayManager = {
autoLogin = {
enable = true;
user = "patriot";
};
gdm = { gdm = {
enable = true; enable = true;
wayland = true; wayland = false;
}; };
startx.enable = false; startx.enable = false;
}; };

View File

@ -1,25 +1,10 @@
{pkgs, ...}: let {pkgs, ...}: {
run-sway = pkgs.writeText "run-sway.sh" ''
export _JAVA_AWT_WM_NONREPARENTING=1
export XDG_CURRENT_DESKTOP=sway
export QT_QPA_PLATFORM=wayland
export QT_QPA_PLATFORMTHEME=qt5ct
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
export GDK_BACKEND=wayland
export WLR_DRM_DEVICES=/dev/dri/card0
export WL_DRM_DEVICES=/dev/dri/card0
sway --unsupported-gpu
'';
in {
services.greetd = { services.greetd = {
enable = true; enable = true;
settings = { settings = {
terminal.vt = 1; terminal.vt = 1;
default_session = { default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --issue --time --cmd 'bash --login ${run-sway}'"; command = "${pkgs.greetd.tuigreet}/bin/tuigreet --issue --time --cmd 'sway --unsupported-gpu'";
user = "greeter"; user = "greeter";
}; };
}; };

View File

@ -1,7 +1,10 @@
{ {config, ...}: {
imports = [../dns ../iwd]; imports = [../dns ../iwd];
networking.networkmanager = { networking.networkmanager = {
enable = true; enable = true;
wifi.powersave = true; wifi.powersave = true;
}; };
environment.persistence."${config.system.persistDir}" = {
directories = ["/etc/NetworkManager/system-connections"];
};
} }

View File

@ -32,6 +32,7 @@
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
config.allowBroken = true; config.allowBroken = true;
config.permittedInsecurePackages = ["electron-25.9.0"];
overlays = overlays ++ newPkgs; overlays = overlays ++ newPkgs;
}; };
pkgsToExport = import ./pkgs-to-export.nix pkgs; pkgsToExport = import ./pkgs-to-export.nix pkgs;

View File

@ -1,2 +0,0 @@
# {inputs}: (import "${inputs.nixpkgs-wayland}/overlay.nix")
final: prev: prev

View File

@ -1,5 +1,6 @@
{tlib, ...}: {tlib, inputs, ...}:
tlib.genPkgs (pkgs: let tlib.genPkgs (pkgs: let
mkNakedShell = pkgs.callPackage inputs.naked-shell {};
agenix-wrapped = pkgs.writeShellApplication { agenix-wrapped = pkgs.writeShellApplication {
name = "agenix"; name = "agenix";
runtimeInputs = [pkgs.agenix]; runtimeInputs = [pkgs.agenix];
@ -12,10 +13,10 @@ tlib.genPkgs (pkgs: let
''; '';
}; };
in { in {
default = with pkgs; default =
mkShell { mkNakedShell {
name = "prts"; name = "prts";
buildInputs = [git git-crypt alejandra helix agenix-wrapped rage]; packages = with pkgs; [git git-crypt alejandra helix agenix-wrapped rage];
shellHook = '' shellHook = ''
echo \"$(tput bold)welcome to PRTS, $USER$(tput sgr0)\" echo \"$(tput bold)welcome to PRTS, $USER$(tput sgr0)\"
''; '';

View File

@ -12,12 +12,12 @@
bbenoist.nix bbenoist.nix
svelte.svelte-vscode svelte.svelte-vscode
bradlc.vscode-tailwindcss bradlc.vscode-tailwindcss
(rust-lang.rust-analyzer.overrideAttrs (old: { # (rust-lang.rust-analyzer.overrideAttrs (old: {
src = old.src.overrideAttrs (old: { # src = old.src.overrideAttrs (old: {
outputHash = "sha256-k9eDTY9y2ejg4jTApji8X6UmKYK/eCLMZJbiYuoTuyY="; # outputHash = "sha256-k9eDTY9y2ejg4jTApji8X6UmKYK/eCLMZJbiYuoTuyY=";
}); # });
})) # }))
# explodingcamera."1am" rust-lang.rust-analyzer
]; ];
userSettings = { userSettings = {
"files.associations" = { "files.associations" = {

View File

@ -33,18 +33,4 @@
# ''; # '';
}); });
in [pkg]; in [pkg];
systemd.user.services.premid = {
Install = {
WantedBy = ["default.target"];
};
Unit = {
Description = "premid";
After = "network.target";
};
Service = {
ExecStart = "${pkgs.premid}/bin/premid";
Restart = "on-failure";
RestartSec = 5;
};
};
} }

View File

@ -0,0 +1,39 @@
[global]
# Enable debug level logging or configure level directly
debug = false
log_level = "WARNING"
poll_interval = 10
reconnect_wait = 1
# The following can be overridden per player.
[options]
# Whether to show status for paused players.
show_paused = true
# Whether to show status for previously active and now stopped player.
show_stopped = false
# Available values are: "elapsed", "remaining" or "none".
show_time = "elapsed"
# Upload images to the host
# Note: if this set to true, valid image_host must be set.
# meant to be set to true with all online players
upload_images = true
# Use image host to show local album covers
# There is two conditions to use host:
# 1) image is sent via HTTP POST
# 2) The response will be a text which only contains URL of the uploaded image.
image_host = "https://0x0.st"
# Whether to ignore a player. Supposed to be overridden.
ignore = false
# Maximum number of bytes in the title field
max_title_len = 64
# informational string, usually is just artist and title
# you can use theese formatters here: artist, albumArtist, title, album, position, length, player, state
details = "{title}\nby {artist}"
# You can override any of the [options] options
# for each player individually.
# The player name to use as the key
# is shown in your Discord Rich Presence (hover the icons).
[player.Spotify]
ignore = true

View File

@ -12,4 +12,5 @@
RestartSec = 5; RestartSec = 5;
}; };
}; };
xdg.configFile."discordrp-mpris/config.toml".source = ./config.toml;
} }

View File

@ -10,7 +10,7 @@
home.packages = [(pkgs.lib.hiPrio pkgs.floorp)]; home.packages = [(pkgs.lib.hiPrio pkgs.floorp)];
programs.firefox = { programs.firefox = {
enable = true; enable = true;
package = pkgs.firefox-wayland.override { package = pkgs.firefox.override {
extraPrefs = '' extraPrefs = ''
lockPref("privacy.resistFingerprinting.letterboxing", false); lockPref("privacy.resistFingerprinting.letterboxing", false);
lockPref("browser.startup.homepage", "about:home"); lockPref("browser.startup.homepage", "about:home");

View File

@ -0,0 +1,10 @@
{pkgs, ...}: {
xsession.enable = true;
xsession.windowManager.fluxbox = {
enable = true;
menu = ''
[exec] (Floorp) {/etc/profiles/per-user/patriot/bin/floorp}
[exec] (urxvt) {/etc/profiles/per-user/patriot/bin/urxvt}
'';
};
}

View File

@ -0,0 +1,15 @@
{pkgs, ...}: {
systemd.user.services.premid = {
Install = {
WantedBy = ["default.target"];
};
Unit = {
Description = "premid";
};
Service = {
ExecStart = "${pkgs.premid}/bin/premid";
Restart = "on-failure";
RestartSec = 5;
};
};
}

View File

@ -0,0 +1,4 @@
{config, inputs, ...}: {
imports = [inputs.s3s.homeManagerModule];
services.s3s.enable = true;
}

View File

@ -69,9 +69,9 @@
exec export SFILE="${shotFile}.png" && mkdir -p ${shotDir} && ${grim} -g "$(${slurp})" "$SFILE" && ${cat} "$SFILE" | ${wl-copy} -t image/png exec export SFILE="${shotFile}.png" && mkdir -p ${shotDir} && ${grim} -g "$(${slurp})" "$SFILE" && ${cat} "$SFILE" | ${wl-copy} -t image/png
''; '';
# Record screen # Record screen
"Mod1+r" = ''exec mkdir -p ${shotDir} && ${wf-recorder} -f "${shotFile}.mp4"''; "Mod1+r" = ''exec mkdir -p ${shotDir} && ${wf-recorder} -x yuv420p -f "${shotFile}.mp4"'';
# Record an area # Record an area
"Mod1+Shift+r" = ''exec mkdir -p ${shotDir} && ${wf-recorder} -g "$(${slurp})" -f "${shotFile}.mp4"''; "Mod1+Shift+r" = ''exec mkdir -p ${shotDir} && ${wf-recorder} -x yuv420p -g "$(${slurp})" -f "${shotFile}.mp4"'';
# Stop recording # Stop recording
"Mod1+c" = "exec pkill -INT wf-recorder"; "Mod1+c" = "exec pkill -INT wf-recorder";
"XF86AudioRaiseVolume" = "exec ${pactl} set-sink-volume 0 +5%"; "XF86AudioRaiseVolume" = "exec ${pactl} set-sink-volume 0 +5%";
@ -111,7 +111,7 @@
adaptive_sync = "on"; adaptive_sync = "on";
}; };
"HDMI-A-1" = { "HDMI-A-1" = {
mode = "1920x1080@60.000Hz"; mode = "1920x1080@74.973Hz";
}; };
}; };
}; };

View File

@ -0,0 +1,9 @@
{...}: {
programs.urxvt = {
enable = true;
keybindings = {
"Shift-Control-C" = "eval:selection_to_clipboard";
"Shift-Control-V" = "eval:paste_clipboard";
};
};
}

View File

@ -107,6 +107,7 @@ in {
# wm # wm
# ["hyprland" "foot"] # ["hyprland" "foot"]
["sway" "wayland" "foot"] ["sway" "wayland" "foot"]
# ["fluxbox" "urxvt"]
# desktop stuff # desktop stuff
# ["wayland" "foot"] # ["wayland" "foot"]
["obsidian" "firefox"] ["obsidian" "firefox"]
@ -114,9 +115,10 @@ in {
["zoxide" "zsh" "fzf" "starship" "direnv"] ["zoxide" "zsh" "fzf" "starship" "direnv"]
# dev stuff # dev stuff
["helix" "git" "ssh"] ["helix" "git" "ssh"]
["godot"] # ["godot"]
["musikcube" "musikcubed"] ["musikcube" "musikcubed"]
["arrpc" "discordrp-mpris"] ["arrpc"]
["s3s"]
]; ];
in in
l.flatten [ l.flatten [
@ -160,6 +162,7 @@ in {
"dconf" "dconf"
"retroarch" "retroarch"
"yuzu" "yuzu"
"blender"
]; ];
files = l.flatten [ files = l.flatten [
".config/gnome-initial-setup-done" ".config/gnome-initial-setup-done"
@ -186,16 +189,16 @@ in {
gtk.theme.package = pkgs.yaru-theme; gtk.theme.package = pkgs.yaru-theme;
gtk.theme.name = "Yaru-dark"; gtk.theme.name = "Yaru-dark";
home.sessionVariables.QT_QPA_PLATFORMTHEME = "qt5ct"; # home.sessionVariables.QT_QPA_PLATFORMTHEME = "qt5ct";
xdg.configFile = { # xdg.configFile = {
"environment.d/20-apply-qtct.conf".text = '' # "environment.d/20-apply-qtct.conf".text = ''
QT_QPA_PLATFORMTHEME=qt5ct # QT_QPA_PLATFORMTHEME=qt5ct
''; # '';
}; # };
qt.enable = true; # qt.enable = true;
qt.platformTheme = "qtct"; # qt.platformTheme = "qtct";
qt.style.name = "phantom"; # qt.style.name = "phantom";
qt.style.package = pkgs.phantom; # qt.style.package = pkgs.phantom;
stylix.targets.gnome.enable = lib.mkForce false; stylix.targets.gnome.enable = lib.mkForce false;
stylix.targets.gtk.enable = lib.mkForce false; stylix.targets.gtk.enable = lib.mkForce false;
@ -217,31 +220,34 @@ in {
mupdf mupdf
xdg-utils xdg-utils
protontricks protontricks
# fractal-next
# obs-studio
libreoffice-fresh libreoffice-fresh
helvum helvum
nix-output-monitor nix-output-monitor
inputs.nh.packages.${pkgs.system}.default inputs.nh.packages.${pkgs.system}.default
prismlauncher
# steamPackages.steamcmd # steamPackages.steamcmd
# steam-tui # steam-tui
gtkcord4 # fractal-next
gh # gtkcord4
# gh
transmission_4-gtk transmission_4-gtk
kdenlive
### music prod
yabridge yabridge
yabridgectl yabridgectl
bitwig-studio bitwig-studio
# reaper ### stream / record
# ardour obs-studio
(retroarch.override { ### gayming
cores = with libretro; [desmume citra]; # prismlauncher
}) # (retroarch.override {
yuzu # cores = with libretro; [desmume citra];
# })
# yuzu
# wineWowPackages.stagingFull # wineWowPackages.stagingFull
# lutris # lutris
distrobox # distrobox
bottles bottles
blender
]; ];
}; };
programs = { programs = {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 MiB

After

Width:  |  Height:  |  Size: 969 KiB