Compare commits
4 Commits
ceff2a381f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 8bf191eefc | |||
| 0ace7b6ad1 | |||
| c04feaaba0 | |||
|
|
e8b8791267 |
474
]
Normal file
474
]
Normal file
@@ -0,0 +1,474 @@
|
|||||||
|
# Edit this configuration file to define what should be installed on
|
||||||
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
|
{ config, pkgs, master, lib, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ # Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# Bootloader.
|
||||||
|
boot.loader.grub.enable = true;
|
||||||
|
boot.loader.grub.devices = ["nodev"];
|
||||||
|
boot.loader.grub.useOSProber = true;
|
||||||
|
boot.loader.grub.efiSupport = true;
|
||||||
|
boot.initrd.systemd.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
boot.loader.grub.timeoutStyle = "hidden";
|
||||||
|
services.avahi = {
|
||||||
|
enable = true;
|
||||||
|
nssmdns4 = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
|
||||||
|
plymouth = {
|
||||||
|
enable = true;
|
||||||
|
theme = "square_hud";
|
||||||
|
themePackages = with pkgs; [
|
||||||
|
# By default we would install all themes
|
||||||
|
(adi1090x-plymouth-themes.override {
|
||||||
|
selected_themes = [ "square_hud" ];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable "Silent Boot"
|
||||||
|
consoleLogLevel = 0;
|
||||||
|
initrd.verbose = false;
|
||||||
|
kernelPackages = pkgs.linuxPackages_zen;
|
||||||
|
/*kernelPatches = [
|
||||||
|
{
|
||||||
|
name = "dsc";
|
||||||
|
patch = ../../patches/vesa-dsc-fixed-bpp.patch;
|
||||||
|
}
|
||||||
|
];*/
|
||||||
|
kernelParams = [
|
||||||
|
"quiet"
|
||||||
|
"splash"
|
||||||
|
"boot.shell_on_fail"
|
||||||
|
"loglevel=3"
|
||||||
|
"rd.systemd.show_status=false"
|
||||||
|
"rd.udev.log_level=3"
|
||||||
|
"udev.log_priority=3"
|
||||||
|
];
|
||||||
|
# Hide the OS choice for bootloaders.
|
||||||
|
# It's still possible to open the bootloader list by pressing any key
|
||||||
|
# It will just not appear on screen unless a key is pressed
|
||||||
|
loader.timeout = 0;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
ACTION=="add", KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0101", TAG+="uaccess", MODE="0660"
|
||||||
|
'';
|
||||||
|
|
||||||
|
boot.extraModulePackages = with config.boot.kernelPackages; [ hid-tmff2 ];
|
||||||
|
|
||||||
|
networking.hostName = "nixos"; # Define your hostname.
|
||||||
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
|
|
||||||
|
# Configure network proxy if necessary
|
||||||
|
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||||
|
|
||||||
|
# Enable networking
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
security.pki.certificateFiles = [ ./certs/beammp.pem ];
|
||||||
|
|
||||||
|
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
hardware.bluetooth.package = pkgs.bluez;
|
||||||
|
|
||||||
|
nixpkgs.config.permittedInsecurePackages = [
|
||||||
|
"electron-31.7.7"
|
||||||
|
"mbedtls-2.28.10"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.variables.AMD_VULKAN_ICD = "RADV";
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
|
time.timeZone = "America/Chicago";
|
||||||
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
|
environment.sessionVariables.SDL_GAMECONTROLLERCONFIG = "03002f67c4100000c082000011010000,Shifter,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,platform:Linux";
|
||||||
|
# Select internationalisation properties.
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
|
i18n.extraLocaleSettings = {
|
||||||
|
LC_ADDRESS = "en_US.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||||
|
LC_MEASUREMENT = "en_US.UTF-8";
|
||||||
|
LC_MONETARY = "en_US.UTF-8";
|
||||||
|
LC_NAME = "en_US.UTF-8";
|
||||||
|
LC_NUMERIC = "en_US.UTF-8";
|
||||||
|
LC_PAPER = "en_US.UTF-8";
|
||||||
|
LC_TELEPHONE = "en_US.UTF-8";
|
||||||
|
LC_TIME = "en_US.UTF-8";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable the X11 windowing sytem.
|
||||||
|
services.xserver.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
# Enable the GNOME Desktop Environment.
|
||||||
|
services.desktopManager.plasma6.enable = false;
|
||||||
|
services.displayManager.sddm.enable = false;
|
||||||
|
services.displayManager.cosmic-greeter.enable = false;
|
||||||
|
services.desktopManager.cosmic.enable = true;
|
||||||
|
services.desktopManager.gnome.enable = false;
|
||||||
|
services.displayManager.gdm.enable = false;
|
||||||
|
/*services.displayManager = {
|
||||||
|
autoLogin.enable = true;
|
||||||
|
autoLogin.user = "joshuaelm";
|
||||||
|
};*/
|
||||||
|
security.pam.services.hyprlock = {};
|
||||||
|
programs.noisetorch.enable = true;
|
||||||
|
|
||||||
|
services.greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = rec {
|
||||||
|
initial_session = {
|
||||||
|
command = "dbus-launch ${pkgs.hyprland}/bin/Hyprland";
|
||||||
|
user = "joshuaelm";
|
||||||
|
};
|
||||||
|
default_session = initial_session;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Steam Deck Gamemode
|
||||||
|
programs.steam.gamescopeSession.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
# Polkit
|
||||||
|
|
||||||
|
security.polkit.enable = true;
|
||||||
|
services.udisks2.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
# Configure keymap in X11
|
||||||
|
services.xserver = {
|
||||||
|
xkb.layout = "us";
|
||||||
|
xkb.variant = "";
|
||||||
|
excludePackages = [ pkgs.xterm ];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Enable Swap
|
||||||
|
|
||||||
|
/*swapDevices = [ {
|
||||||
|
device = "/var/lib/swapfile";
|
||||||
|
size = 16*1024;
|
||||||
|
}];*/
|
||||||
|
|
||||||
|
# Enable CUPS to print documents.
|
||||||
|
services.printing.enable = true;
|
||||||
|
|
||||||
|
# Enable sound with pipewire.
|
||||||
|
services.pulseaudio.enable = false;
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
wireplumber.enable = true;
|
||||||
|
# If you want to use JACK applications, uncomment this
|
||||||
|
#jack.enable = true;
|
||||||
|
|
||||||
|
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||||
|
# no need to redefine it in your config for now)
|
||||||
|
#media-session.enable = true;
|
||||||
|
wireplumber.configPackages = [
|
||||||
|
(pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/alsa.conf" ''
|
||||||
|
monitor.alsa.rules = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{
|
||||||
|
device.name = "~alsa_card.*"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
actions = {
|
||||||
|
update-props = {
|
||||||
|
# Device settings
|
||||||
|
api.alsa.use-acp = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{
|
||||||
|
node.name = "~alsa_input.*"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
node.name = "~alsa_output.*"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
actions = {
|
||||||
|
# Node settings
|
||||||
|
update-props = {
|
||||||
|
session.suspend-timeout-seconds = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
|
services.pulseaudio.configFile = pkgs.runCommand "default.pa" {} ''
|
||||||
|
sed 's/module-udev-detect$/module-udev-detect tsched=0/' \
|
||||||
|
${pkgs.pulseaudio}/etc/pulse/default.pa > $out
|
||||||
|
'';
|
||||||
|
environment.etc."wireplumber/main.lua.d/90-suspend-timeout.lua" = {
|
||||||
|
text = ''
|
||||||
|
session.suspend-timeout-seconds = 0
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
services.pipewire.extraConfig.pipewire-pulse."92-low-latency" = {
|
||||||
|
context.modules = [
|
||||||
|
{
|
||||||
|
name = "libpipewire-module-protocol-pulse";
|
||||||
|
args = {
|
||||||
|
pulse.min.req = "32/48000";
|
||||||
|
pulse.default.req = "32/48000";
|
||||||
|
pulse.max.req = "32/48000";
|
||||||
|
pulse.min.quantum = "32/48000";
|
||||||
|
pulse.max.quantum = "32/48000";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
stream.properties = {
|
||||||
|
node.latency = "32/48000";
|
||||||
|
resample.quality = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
hardware.pulseaudio.extraConfig = ''
|
||||||
|
.nofail
|
||||||
|
unload-module module-suspend-on-idle
|
||||||
|
.fail
|
||||||
|
'';
|
||||||
|
|
||||||
|
|
||||||
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
|
# services.xserver.libinput.enable = true;
|
||||||
|
|
||||||
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
|
programs.adb.enable = true;
|
||||||
|
users.users.joshuaelm = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "Joshua Elmasri";
|
||||||
|
extraGroups = [ "networkmanager" "input" "wheel" "adbusers" ];
|
||||||
|
packages = with pkgs; [
|
||||||
|
# thunderbird
|
||||||
|
];
|
||||||
|
shell = pkgs.fish;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.fish.enable = true;
|
||||||
|
|
||||||
|
nix.optimise.automatic = true;
|
||||||
|
|
||||||
|
# Allow unfree packages
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
# Configure drives
|
||||||
|
|
||||||
|
fileSystems."/mnt/Games" = {
|
||||||
|
device = "/dev/nvme0n1p1";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [
|
||||||
|
"users"
|
||||||
|
"nofail"
|
||||||
|
"x-gvfs-show"
|
||||||
|
"exec"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*fileSystems."/mnt/More-Games" = {
|
||||||
|
device = "/dev/sdb1";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [
|
||||||
|
"users"
|
||||||
|
"nofail"
|
||||||
|
"x-gvfs-show"
|
||||||
|
"exec"
|
||||||
|
];
|
||||||
|
};*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Fonts
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
fira-code
|
||||||
|
fira-code-symbols
|
||||||
|
roboto
|
||||||
|
nerd-fonts.fira-code
|
||||||
|
nerd-fonts.jetbrains-mono
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
services.moltengamepad.enable = true;
|
||||||
|
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
(pkgs.buildFHSEnv {
|
||||||
|
name = "fhs";
|
||||||
|
targetPkgs = pkgs: with pkgs; [
|
||||||
|
alsa-lib atk cairo cups curl dbus expat file fish fontconfig freetype
|
||||||
|
fuse glib gtk3 libGL libnotify libxml2 libxslt netcat nspr nss openjdk8
|
||||||
|
openssl.dev cava pango appimage-run pkg-config strace udev vulkan-loader watch wget which
|
||||||
|
xorg.libX11 icu xorg.libxcb xorg.libXcomposite xorg.libXcursor
|
||||||
|
xorg.libXdamage xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr
|
||||||
|
xorg.libXrender xorg.libXScrnSaver openssl xorg.libxshmfence xorg.libXtst
|
||||||
|
xorg.xcbutilkeysyms zlib fontconfig.lib SDL2 libGL libuuid xorg.libXft
|
||||||
|
];
|
||||||
|
profile = ''export FHS=1'';
|
||||||
|
runScript = "fish";
|
||||||
|
})
|
||||||
|
git
|
||||||
|
bibata-cursors
|
||||||
|
killall
|
||||||
|
usbutils
|
||||||
|
mangohud
|
||||||
|
# cemu broken with latest update
|
||||||
|
oterm
|
||||||
|
wget
|
||||||
|
wlx-overlay-s
|
||||||
|
labymod-launcher
|
||||||
|
unzip
|
||||||
|
winetricks
|
||||||
|
cowsay
|
||||||
|
pfetch
|
||||||
|
ryubing
|
||||||
|
gomatrix
|
||||||
|
python3
|
||||||
|
pavucontrol
|
||||||
|
bluebubbles
|
||||||
|
xfce.thunar
|
||||||
|
parallel-launcher
|
||||||
|
wiremix
|
||||||
|
termsonic
|
||||||
|
steamtinkerlaunch
|
||||||
|
kdePackages.kdenlive
|
||||||
|
wineWowPackages.wayland
|
||||||
|
blueman
|
||||||
|
lapce
|
||||||
|
prismlauncher
|
||||||
|
protonup-qt
|
||||||
|
openjdk23
|
||||||
|
heroic
|
||||||
|
protontricks
|
||||||
|
gamescope
|
||||||
|
playerctl
|
||||||
|
wine
|
||||||
|
#alvr
|
||||||
|
libreoffice
|
||||||
|
neovide
|
||||||
|
flatpak
|
||||||
|
];
|
||||||
|
|
||||||
|
# VirtualBox
|
||||||
|
|
||||||
|
virtualisation.virtualbox.host.enable = false;
|
||||||
|
users.extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" ];
|
||||||
|
|
||||||
|
services.flatpak.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
services.sunshine = {
|
||||||
|
enable = true;
|
||||||
|
autoStart = false;
|
||||||
|
capSysAdmin = true;
|
||||||
|
openFirewall = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
# Enable Steam
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||||
|
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||||
|
};
|
||||||
|
hardware.steam-hardware.enable=true;
|
||||||
|
services.monado = {
|
||||||
|
enable = true;
|
||||||
|
defaultRuntime = true; # Register as default OpenXR runtime
|
||||||
|
};
|
||||||
|
systemd.user.services.monado.environment = {
|
||||||
|
STEAMVR_LH_ENABLE = "1";
|
||||||
|
XRT_COMPOSITOR_COMPUTE = "1";
|
||||||
|
WMR_HANDTRACKING = "0";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
|
steam = pkgs.steam.override {
|
||||||
|
extraLibraries = pkgs: [ pkgs.xorg.libxcb ];
|
||||||
|
extraPkgs = pkgs: with pkgs; [
|
||||||
|
xorg.libXcursor
|
||||||
|
xorg.libXi
|
||||||
|
xorg.libXinerama
|
||||||
|
xorg.libXScrnSaver
|
||||||
|
libpng
|
||||||
|
libpulseaudio
|
||||||
|
libvorbis
|
||||||
|
stdenv.cc.cc.lib
|
||||||
|
libkrb5
|
||||||
|
keyutils
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.gamescope = {
|
||||||
|
enable = true;
|
||||||
|
capSysNice = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.nix-ld.enable = true;
|
||||||
|
|
||||||
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
|
# started in user sessions.
|
||||||
|
# programs.mtr.enable = true;
|
||||||
|
# programs.gnupg.agent = {
|
||||||
|
# enable = true;
|
||||||
|
# enableSSHSupport = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# List services that you want to enable:
|
||||||
|
|
||||||
|
# Enable the OpenSSH daemon.
|
||||||
|
services.openssh.enable = true;
|
||||||
|
services.openssh.allowSFTP = true;
|
||||||
|
services.openssh.settings.PasswordAuthentication = true;
|
||||||
|
|
||||||
|
# Open ports in the firewall.
|
||||||
|
networking.firewall.allowedTCPPorts = [ 7860 3042 3246 9943 9944 7801 11434 47990 48010 5001 ];
|
||||||
|
networking.firewall.allowedUDPPorts = [ 7860 9943 9944 3042 47990 3246 11434 7801 4800 48010 ];
|
||||||
|
# Or disable the firewall altogether.
|
||||||
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "23.11"; # Did you read the comment?
|
||||||
|
# Enable lakes
|
||||||
|
nix = {
|
||||||
|
extraOptions = ''
|
||||||
|
experimental-features = nix-command flakes
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
226
flake.lock
generated
226
flake.lock
generated
@@ -7,11 +7,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757497936,
|
"lastModified": 1764173295,
|
||||||
"narHash": "sha256-BSfvr7wdY5SbathVlrOW7vCyI9UGVIe2b9rTJ0O5IKo=",
|
"narHash": "sha256-Jh4VtPcK2Ov+RTcV9FtyQRsxiJmXFQGfqX6jjM7/mgc=",
|
||||||
"owner": "aylur",
|
"owner": "aylur",
|
||||||
"repo": "astal",
|
"repo": "astal",
|
||||||
"rev": "344a6dce56437a190b99e516a6cab8332cccf19e",
|
"rev": "7d1fac8a4b2a14954843a978d2ddde86168c75ef",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -41,27 +41,28 @@
|
|||||||
"base16-fish": {
|
"base16-fish": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1622559957,
|
"lastModified": 1765809053,
|
||||||
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
|
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
|
||||||
"owner": "tomyun",
|
"owner": "tomyun",
|
||||||
"repo": "base16-fish",
|
"repo": "base16-fish",
|
||||||
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
|
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "tomyun",
|
"owner": "tomyun",
|
||||||
"repo": "base16-fish",
|
"repo": "base16-fish",
|
||||||
|
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"base16-helix": {
|
"base16-helix": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752979451,
|
"lastModified": 1760703920,
|
||||||
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
|
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "base16-helix",
|
"repo": "base16-helix",
|
||||||
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
|
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -90,11 +91,11 @@
|
|||||||
"firefox-gnome-theme": {
|
"firefox-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756083905,
|
"lastModified": 1764724327,
|
||||||
"narHash": "sha256-UqYGTBgI5ypGh0Kf6zZjom/vABg7HQocB4gmxzl12uo=",
|
"narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=",
|
||||||
"owner": "rafaelmardojai",
|
"owner": "rafaelmardojai",
|
||||||
"repo": "firefox-gnome-theme",
|
"repo": "firefox-gnome-theme",
|
||||||
"rev": "b655eaf16d4cbec9c3472f62eee285d4b419a808",
|
"rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -126,11 +127,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756770412,
|
"lastModified": 1765495779,
|
||||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
"narHash": "sha256-MhA7wmo/7uogLxiewwRRmIax70g6q1U/YemqTGoFHlM=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
"rev": "5635c32d666a59ec9a55cab87e898889869f7b71",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -147,11 +148,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756770412,
|
"lastModified": 1763759067,
|
||||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -160,24 +161,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fromYaml": {
|
"fromYaml": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -197,18 +180,20 @@
|
|||||||
"gnome-shell": {
|
"gnome-shell": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748186689,
|
"host": "gitlab.gnome.org",
|
||||||
"narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
|
"lastModified": 1764524476,
|
||||||
|
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
|
||||||
"owner": "GNOME",
|
"owner": "GNOME",
|
||||||
"repo": "gnome-shell",
|
"repo": "gnome-shell",
|
||||||
"rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
|
"rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22",
|
||||||
"type": "github"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
"host": "gitlab.gnome.org",
|
||||||
"owner": "GNOME",
|
"owner": "GNOME",
|
||||||
"ref": "48.2",
|
"ref": "gnome-49",
|
||||||
"repo": "gnome-shell",
|
"repo": "gnome-shell",
|
||||||
"type": "github"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
@@ -218,11 +203,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1758719930,
|
"lastModified": 1765823531,
|
||||||
"narHash": "sha256-DgHe1026Ob49CPegPMiWj1HNtlMTGQzfSZQQVlHC950=",
|
"narHash": "sha256-tyNJjd48hfgsyEfsq1Ueufg4oJv6b8xBA6NYRJrLPyg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "142acd7a7d9eb7f0bb647f053b4ddfd01fdfbf1d",
|
"rev": "8315c1544f383b791a3115c9959d1f27920e8320",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -231,41 +216,13 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ixx": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": [
|
|
||||||
"nixvim",
|
|
||||||
"nuschtosSearch",
|
|
||||||
"flake-utils"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixvim",
|
|
||||||
"nuschtosSearch",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1754860581,
|
|
||||||
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
|
|
||||||
"owner": "NuschtOS",
|
|
||||||
"repo": "ixx",
|
|
||||||
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NuschtOS",
|
|
||||||
"ref": "v0.1.1",
|
|
||||||
"repo": "ixx",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"master": {
|
"master": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1758742491,
|
"lastModified": 1765823699,
|
||||||
"narHash": "sha256-A+RQ4I6mLcbKQEpx3hQLYhZBP50WXw2RmOrjvUKUNc4=",
|
"narHash": "sha256-BdYVSKAvhBxGA4xO8UWKHg4IlqD88HeGIKLGof60OXk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "333add93dbfea789e04fc97990eeb2c96da650e9",
|
"rev": "ef3ade20ba7bfbcbf6bcd83eccf75e0fd5082c7a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -283,11 +240,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1758525110,
|
"lastModified": 1765528634,
|
||||||
"narHash": "sha256-iEF0aG6df4NjPV88uqwAph/WujIabENZabS7C9Ljf0A=",
|
"narHash": "sha256-uIavvJkDwTZD1QY/oSkDtPN9xwkLwQayoZ5xOni4SBY=",
|
||||||
"owner": "tpwrules",
|
"owner": "tpwrules",
|
||||||
"repo": "nixos-apple-silicon",
|
"repo": "nixos-apple-silicon",
|
||||||
"rev": "9eb8ad09af823be7088dcfa908071e71cc19359a",
|
"rev": "fc1440d6e6adb24d9b2650670744bae35654c867",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -298,11 +255,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1758427187,
|
"lastModified": 1765472234,
|
||||||
"narHash": "sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc=",
|
"narHash": "sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "554be6495561ff07b6c724047bdd7e0716aa7b46",
|
"rev": "2fbfb1d73d239d2402a8fe03963e37aab15abe8b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -311,21 +268,34 @@
|
|||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765644376,
|
||||||
|
"narHash": "sha256-yqHBL2wYGwjGL2GUF2w3tofWl8qO9tZEuI4wSqbCrtE=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "23735a82a828372c4ef92c660864e82fbe2f5fbe",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixvim": {
|
"nixvim": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs"
|
"systems": "systems"
|
||||||
],
|
|
||||||
"nuschtosSearch": "nuschtosSearch",
|
|
||||||
"systems": "systems_2"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1758718199,
|
"lastModified": 1765796308,
|
||||||
"narHash": "sha256-xbkAs3NM9K2sPEhz0MB9kDfDPBXNkkEDueKpPkZzzSc=",
|
"narHash": "sha256-szKgoF0JbDUvWkqjB2AyyFagmsF5ZFEjajZRUiUV9mU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "fd835f3dd13872841ef394e97be71276f75957b9",
|
"rev": "12a76dd12beccd8d18249b05d10d6acda4e722e0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -346,11 +316,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756961635,
|
"lastModified": 1764773531,
|
||||||
"narHash": "sha256-hETvQcILTg5kChjYNns1fD5ELdsYB/VVgVmBtqKQj9A=",
|
"narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "6ca27b2654ac55e3f6e0ca434c1b4589ae22b370",
|
"rev": "1d9616689e98beded059ad0384b9951e967a17fa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -359,29 +329,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nuschtosSearch": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"ixx": "ixx",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixvim",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1758662783,
|
|
||||||
"narHash": "sha256-igrxT+/MnmcftPOHEb+XDwAMq3Xg1Xy7kVYQaHhPlAg=",
|
|
||||||
"owner": "NuschtOS",
|
|
||||||
"repo": "search",
|
|
||||||
"rev": "7d4c0fc4ffe3bd64e5630417162e9e04e64b27a4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NuschtOS",
|
|
||||||
"repo": "search",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"astal": "astal",
|
"astal": "astal",
|
||||||
@@ -407,7 +354,7 @@
|
|||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"systems": "systems_3",
|
"systems": "systems_2",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
"tinted-schemes": "tinted-schemes",
|
"tinted-schemes": "tinted-schemes",
|
||||||
@@ -415,11 +362,11 @@
|
|||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1758716250,
|
"lastModified": 1765812876,
|
||||||
"narHash": "sha256-PvOo4vSk7WAOhSifgL+rzExihquU9DOIOQPrUVuFHpE=",
|
"narHash": "sha256-mML2DlWmvwPOzn8K9QEsiKGdt67iHW/LaK6Xw+ZENMk=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "526c882800837cce7676f3e11bb3e13e975c6032",
|
"rev": "9ba353558a288eb9d6fc3057bb418509dd8b4c01",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -458,21 +405,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tinted-foot": {
|
"tinted-foot": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -509,11 +441,11 @@
|
|||||||
"tinted-schemes": {
|
"tinted-schemes": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754779259,
|
"lastModified": 1763914658,
|
||||||
"narHash": "sha256-8KG2lXGaXLUE0F/JVwLQe7kOVm21IDfNEo0gfga5P4M=",
|
"narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "schemes",
|
"repo": "schemes",
|
||||||
"rev": "097d751b9e3c8b97ce158e7d141e5a292545b502",
|
"rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -525,11 +457,11 @@
|
|||||||
"tinted-tmux": {
|
"tinted-tmux": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754788770,
|
"lastModified": 1764465359,
|
||||||
"narHash": "sha256-LAu5nBr7pM/jD9jwFc6/kyFY4h7Us4bZz7dvVvehuwo=",
|
"narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "tinted-tmux",
|
"repo": "tinted-tmux",
|
||||||
"rev": "fb2175accef8935f6955503ec9dd3c973eec385c",
|
"rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -541,11 +473,11 @@
|
|||||||
"tinted-zed": {
|
"tinted-zed": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755613540,
|
"lastModified": 1764464512,
|
||||||
"narHash": "sha256-zBFrrTxHLDMDX/OYxkCwGGbAhPXLi8FrnLhYLsSOKeY=",
|
"narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "base16-zed",
|
"repo": "base16-zed",
|
||||||
"rev": "937bada16cd3200bdbd3a2f5776fc3b686d5cba0",
|
"rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -564,11 +496,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1758731146,
|
"lastModified": 1765764138,
|
||||||
"narHash": "sha256-PavIsqbvGzUMNVhIDnjjokgr8U3Z7GhPTtga/yMQlcU=",
|
"narHash": "sha256-Nb5y5xSDQLMeUYiA1bQkbmHffGm0d/XXWoJjFu8ovw0=",
|
||||||
"owner": "0xc000022070",
|
"owner": "0xc000022070",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "ce268148d6d6f9522d9cda5e6d8f05619e92d07f",
|
"rev": "bd8815d0a686267386268e7cc70315124e21362b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
13
flake.nix
13
flake.nix
@@ -16,7 +16,7 @@
|
|||||||
home-manager.url = "github:nix-community/home-manager";
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
nixvim = {
|
nixvim = {
|
||||||
url = "github:nix-community/nixvim";
|
url = "github:nix-community/nixvim";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
#inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nixos-apple-silicon = {
|
nixos-apple-silicon = {
|
||||||
url = "github:tpwrules/nixos-apple-silicon";
|
url = "github:tpwrules/nixos-apple-silicon";
|
||||||
@@ -30,11 +30,18 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, stylix, astal, nixpkgs, home-manager, zen-browser, master, nixos-apple-silicon, nixvim }@inputs:
|
outputs = { self, stylix, astal, nixpkgs, home-manager, zen-browser, master, nixos-apple-silicon, nixvim }@inputs:
|
||||||
{
|
let
|
||||||
|
system = "x86_64-linux";
|
||||||
|
lib = nixpkgs.lib;
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
pkgs-master = master.legacyPackages.${system};
|
||||||
|
username = "joshuaelm";
|
||||||
|
name = "Joshua";
|
||||||
|
in {
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
nixos = nixpkgs.lib.nixosSystem {
|
nixos = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = {inherit nixvim;};
|
specialArgs = {inherit nixvim; inherit pkgs-master;};
|
||||||
specialArgs.inputs = inputs;
|
specialArgs.inputs = inputs;
|
||||||
modules = [
|
modules = [
|
||||||
#stylix.nixosModules.stylix
|
#stylix.nixosModules.stylix
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
#Edit this configuration file to define what should be installed on
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
{ config, pkgs, master, lib, inputs, ... }:
|
{ config, pkgs, master, lib, pkgs-master, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
@@ -17,13 +17,14 @@
|
|||||||
boot.loader.grub.efiSupport = true;
|
boot.loader.grub.efiSupport = true;
|
||||||
boot.initrd.systemd.enable = true;
|
boot.initrd.systemd.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
boot.loader.grub.timeoutStyle = "hidden";
|
|
||||||
services.avahi = {
|
services.avahi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nssmdns4 = true;
|
nssmdns4 = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hardware.graphics.enable = true;
|
||||||
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
|
||||||
@@ -41,7 +42,22 @@ boot = {
|
|||||||
# Enable "Silent Boot"
|
# Enable "Silent Boot"
|
||||||
consoleLogLevel = 0;
|
consoleLogLevel = 0;
|
||||||
initrd.verbose = false;
|
initrd.verbose = false;
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
kernelPackages = pkgs.linuxPackages_zen;
|
||||||
|
kernelModules = [ "amdgpu" ];
|
||||||
|
kernelPatches = [
|
||||||
|
/*{
|
||||||
|
name = "dsc";
|
||||||
|
patch = ../../patches/bigscreen_1.patch;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "dsc2";
|
||||||
|
patch = ../../patches/bigscreen_2.patch;
|
||||||
|
}*/
|
||||||
|
/*{
|
||||||
|
name = "dsc15";
|
||||||
|
patch = ../../patches/bigscreen_15.patch;
|
||||||
|
}*/
|
||||||
|
];
|
||||||
kernelParams = [
|
kernelParams = [
|
||||||
"quiet"
|
"quiet"
|
||||||
"splash"
|
"splash"
|
||||||
@@ -51,14 +67,22 @@ boot = {
|
|||||||
"rd.udev.log_level=3"
|
"rd.udev.log_level=3"
|
||||||
"udev.log_priority=3"
|
"udev.log_priority=3"
|
||||||
];
|
];
|
||||||
|
extraModprobeConfig = ''
|
||||||
|
options bluetooth disable_ertm=Y
|
||||||
|
'';
|
||||||
# Hide the OS choice for bootloaders.
|
# Hide the OS choice for bootloaders.
|
||||||
# It's still possible to open the bootloader list by pressing any key
|
# It's still possible to open the bootloader list by pressing any key
|
||||||
# It will just not appear on screen unless a key is pressed
|
# It will just not appear on screen unless a key is pressed
|
||||||
loader.timeout = 0;
|
loader.timeout = 5;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.extraModulePackages = with config.boot.kernelPackages; [ hid-tmff2 ];
|
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
ACTION=="add", KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0101", TAG+="uaccess", MODE="0660"
|
||||||
|
'';
|
||||||
|
|
||||||
|
boot.extraModulePackages = with config.boot.kernelPackages; [ hid-tmff2 xpadneo ];
|
||||||
|
|
||||||
networking.hostName = "nixos"; # Define your hostname.
|
networking.hostName = "nixos"; # Define your hostname.
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
@@ -72,10 +96,12 @@ boot = {
|
|||||||
|
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
hardware.bluetooth.package = pkgs.bluez;
|
|
||||||
|
hardware.xpadneo.enable = true;
|
||||||
|
|
||||||
nixpkgs.config.permittedInsecurePackages = [
|
nixpkgs.config.permittedInsecurePackages = [
|
||||||
"electron-31.7.7"
|
"electron-31.7.7"
|
||||||
|
"mbedtls-2.28.10"
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.variables.AMD_VULKAN_ICD = "RADV";
|
environment.variables.AMD_VULKAN_ICD = "RADV";
|
||||||
@@ -83,6 +109,7 @@ boot = {
|
|||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
time.timeZone = "America/Chicago";
|
time.timeZone = "America/Chicago";
|
||||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
|
environment.sessionVariables.SDL_GAMECONTROLLERCONFIG = "03002f67c4100000c082000011010000,Shifter,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,platform:Linux";
|
||||||
# Select internationalisation properties.
|
# Select internationalisation properties.
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
@@ -109,6 +136,10 @@ boot = {
|
|||||||
services.desktopManager.cosmic.enable = true;
|
services.desktopManager.cosmic.enable = true;
|
||||||
services.desktopManager.gnome.enable = false;
|
services.desktopManager.gnome.enable = false;
|
||||||
services.displayManager.gdm.enable = false;
|
services.displayManager.gdm.enable = false;
|
||||||
|
programs.hyprland = {
|
||||||
|
withUWSM = true;
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
/*services.displayManager = {
|
/*services.displayManager = {
|
||||||
autoLogin.enable = true;
|
autoLogin.enable = true;
|
||||||
autoLogin.user = "joshuaelm";
|
autoLogin.user = "joshuaelm";
|
||||||
@@ -131,6 +162,7 @@ boot = {
|
|||||||
programs.steam.gamescopeSession.enable = true;
|
programs.steam.gamescopeSession.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Polkit
|
# Polkit
|
||||||
|
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
@@ -171,6 +203,42 @@ boot = {
|
|||||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||||
# no need to redefine it in your config for now)
|
# no need to redefine it in your config for now)
|
||||||
#media-session.enable = true;
|
#media-session.enable = true;
|
||||||
|
wireplumber.configPackages = [
|
||||||
|
(pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/alsa.conf" ''
|
||||||
|
monitor.alsa.rules = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{
|
||||||
|
device.name = "~alsa_card.*"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
actions = {
|
||||||
|
update-props = {
|
||||||
|
# Device settings
|
||||||
|
api.alsa.use-acp = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{
|
||||||
|
node.name = "~alsa_input.*"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
node.name = "~alsa_output.*"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
actions = {
|
||||||
|
# Node settings
|
||||||
|
update-props = {
|
||||||
|
session.suspend-timeout-seconds = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
services.pulseaudio.configFile = pkgs.runCommand "default.pa" {} ''
|
services.pulseaudio.configFile = pkgs.runCommand "default.pa" {} ''
|
||||||
sed 's/module-udev-detect$/module-udev-detect tsched=0/' \
|
sed 's/module-udev-detect$/module-udev-detect tsched=0/' \
|
||||||
@@ -187,20 +255,20 @@ boot = {
|
|||||||
{
|
{
|
||||||
name = "libpipewire-module-protocol-pulse";
|
name = "libpipewire-module-protocol-pulse";
|
||||||
args = {
|
args = {
|
||||||
pulse.min.req = "32/48000";
|
pulse.min.req = "128/48000";
|
||||||
pulse.default.req = "32/48000";
|
pulse.default.req = "128/48000";
|
||||||
pulse.max.req = "32/48000";
|
pulse.max.req = "128/48000";
|
||||||
pulse.min.quantum = "32/48000";
|
pulse.min.quantum = "128/48000";
|
||||||
pulse.max.quantum = "32/48000";
|
pulse.max.quantum = "128/48000";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
stream.properties = {
|
stream.properties = {
|
||||||
node.latency = "32/48000";
|
node.latency = "128/48000";
|
||||||
resample.quality = 1;
|
resample.quality = 1;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
hardware.pulseaudio.extraConfig = ''
|
services.pulseaudio.extraConfig = ''
|
||||||
.nofail
|
.nofail
|
||||||
unload-module module-suspend-on-idle
|
unload-module module-suspend-on-idle
|
||||||
.fail
|
.fail
|
||||||
@@ -216,13 +284,18 @@ hardware.pulseaudio.extraConfig = ''
|
|||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "Joshua Elmasri";
|
description = "Joshua Elmasri";
|
||||||
extraGroups = [ "networkmanager" "input" "wheel" "adbusers" ];
|
extraGroups = [ "networkmanager" "input" "wheel" "adbusers" ];
|
||||||
shell = pkgs.fish;
|
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
# thunderbird
|
# thunderbird
|
||||||
];
|
];
|
||||||
|
shell = pkgs.bash;
|
||||||
};
|
};
|
||||||
|
/*programs.bash.interactiveShellInit = ''
|
||||||
|
if ! [ "$TERM" = "dumb" ] && [ -z "$BASH_EXECUTION_STRING" ]; then
|
||||||
|
exec nu
|
||||||
|
fi
|
||||||
|
'';*/
|
||||||
|
|
||||||
programs.fish.enable = true;
|
programs.fish.enable = false;
|
||||||
|
|
||||||
nix.optimise.automatic = true;
|
nix.optimise.automatic = true;
|
||||||
|
|
||||||
@@ -243,8 +316,8 @@ hardware.pulseaudio.extraConfig = ''
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
fileSystems."/mnt/More-Games" = {
|
/*fileSystems."/mnt/More-Games" = {
|
||||||
device = "/dev/disk/by-uuid/fdbbe9a8-da6e-4ef2-b4e5-5154f181ee66";
|
device = "/dev/sdb1";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [
|
options = [
|
||||||
"users"
|
"users"
|
||||||
@@ -252,7 +325,7 @@ hardware.pulseaudio.extraConfig = ''
|
|||||||
"x-gvfs-show"
|
"x-gvfs-show"
|
||||||
"exec"
|
"exec"
|
||||||
];
|
];
|
||||||
};
|
};*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -268,33 +341,8 @@ hardware.pulseaudio.extraConfig = ''
|
|||||||
nerd-fonts.jetbrains-mono
|
nerd-fonts.jetbrains-mono
|
||||||
];
|
];
|
||||||
|
|
||||||
services.open-webui = {
|
|
||||||
enable = true;
|
|
||||||
port = 3246;
|
|
||||||
host = "0.0.0.0";
|
|
||||||
environment = {
|
|
||||||
ANONYMIZED_TELEMETRY = "False";
|
|
||||||
DO_NOT_TRACK = "True";
|
|
||||||
SCARF_NO_ANALYTICS = "True";
|
|
||||||
OLLAMA_API_BASE_URL = "http://127.0.0.1:11434/api";
|
|
||||||
OLLAMA_BASE_URL = "http://127.0.0.1:11434";
|
|
||||||
ENABLE_RAG_WEB_SEARCH = "True";
|
|
||||||
RAG_WEB_SEARCH_ENGINE = "kagi";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.ollama = {
|
services.input-remapper.enable = true;
|
||||||
# package = pkgs.unstable.ollama; # If you want to use the unstable channel package for example
|
|
||||||
enable = true;
|
|
||||||
host = "0.0.0.0";
|
|
||||||
acceleration = "rocm"; # Or "rocm"
|
|
||||||
environmentVariables = { # I haven't been able to get this to work, but please see the serviceConfig workaround below
|
|
||||||
# HOME = "/home/ollama";
|
|
||||||
# OLLAMA_MODELS = "/home/ollama/models";
|
|
||||||
OLLAMA_HOST = "0.0.0.0:11434"; # Make Ollama accesible outside of localhost
|
|
||||||
# OLLAMA_ORIGINS = "http://localhost:8080,http://192.168.0.10:*"; # Allow access, otherwise Ollama returns 403 forbidden due to CORS
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
# List packages installed in system profile. To search, run:
|
||||||
# $ nix search wget
|
# $ nix search wget
|
||||||
@@ -316,78 +364,53 @@ hardware.pulseaudio.extraConfig = ''
|
|||||||
git
|
git
|
||||||
bibata-cursors
|
bibata-cursors
|
||||||
killall
|
killall
|
||||||
|
usbutils
|
||||||
mangohud
|
mangohud
|
||||||
aonsoku
|
ffmpeg
|
||||||
cemu
|
oversteer
|
||||||
teamspeak6-client
|
# cemu broken with latest update
|
||||||
oterm
|
oterm
|
||||||
unetbootin
|
wget
|
||||||
labymod-launcher
|
wlx-overlay-s
|
||||||
unzip
|
unzip
|
||||||
winetricks
|
winetricks
|
||||||
cowsay
|
cowsay
|
||||||
pfetch
|
pfetch
|
||||||
ryubing
|
ryubing
|
||||||
hyprpolkitagent
|
|
||||||
gomatrix
|
gomatrix
|
||||||
python3
|
python3
|
||||||
pavucontrol
|
pavucontrol
|
||||||
bluebubbles
|
bluebubbles
|
||||||
gnomeExtensions.tray-icons-reloaded
|
|
||||||
cider
|
|
||||||
xfce.thunar
|
xfce.thunar
|
||||||
gnomeExtensions.open-bar
|
|
||||||
parallel-launcher
|
parallel-launcher
|
||||||
wallust
|
corectrl
|
||||||
|
wiremix
|
||||||
termsonic
|
termsonic
|
||||||
steamtinkerlaunch
|
steamtinkerlaunch
|
||||||
grub2
|
|
||||||
vivaldi
|
|
||||||
cargo
|
|
||||||
#inputs.zen-browser.packages."${system}".default
|
|
||||||
kdePackages.kdenlive
|
kdePackages.kdenlive
|
||||||
wineWowPackages.wayland
|
wineWowPackages.wayland
|
||||||
blueman
|
blueman
|
||||||
fuse
|
|
||||||
linux-wallpaperengine
|
|
||||||
ntfs3g
|
|
||||||
lapce
|
lapce
|
||||||
prismlauncher
|
prismlauncher
|
||||||
librewolf
|
|
||||||
protonup-qt
|
protonup-qt
|
||||||
mlt
|
|
||||||
nspr
|
|
||||||
nss_latest
|
|
||||||
nssTools
|
|
||||||
dconf
|
|
||||||
openjdk23
|
|
||||||
heroic
|
heroic
|
||||||
protontricks
|
protontricks
|
||||||
gamescope
|
gamescope
|
||||||
playerctl
|
playerctl
|
||||||
wine
|
wine
|
||||||
#alvr
|
|
||||||
bottles
|
|
||||||
cava
|
|
||||||
pop-icon-theme
|
|
||||||
gnome-tweaks
|
|
||||||
libnotify
|
|
||||||
libreoffice
|
libreoffice
|
||||||
hunspell
|
|
||||||
hunspellDicts.en_US
|
|
||||||
neovide
|
neovide
|
||||||
flatpak
|
flatpak
|
||||||
gradience
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# VirtualBox
|
# VirtualBox
|
||||||
|
|
||||||
virtualisation.virtualbox.host.enable = true;
|
virtualisation.virtualbox.host.enable = false;
|
||||||
users.extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" ];
|
users.extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" ];
|
||||||
|
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
|
|
||||||
|
services.xserver.enableTCP = true;
|
||||||
services.sunshine = {
|
services.sunshine = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autoStart = false;
|
autoStart = false;
|
||||||
@@ -401,6 +424,23 @@ hardware.pulseaudio.extraConfig = ''
|
|||||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||||
};
|
};
|
||||||
|
hardware.steam-hardware.enable=true;
|
||||||
|
services.monado = {
|
||||||
|
enable = false;
|
||||||
|
defaultRuntime = true; # Register as default OpenXR runtime
|
||||||
|
};
|
||||||
|
services.wivrn.enable = true;
|
||||||
|
services.wivrn.package = pkgs-master.wivrn;
|
||||||
|
services.wivrn.defaultRuntime = true;
|
||||||
|
systemd.user.services.monado.environment = {
|
||||||
|
STEAMVR_LH_ENABLE = "1";
|
||||||
|
XRT_COMPOSITOR_COMPUTE = "1";
|
||||||
|
WMR_HANDTRACKING = "0";
|
||||||
|
};
|
||||||
|
programs.alvr.enable = true;
|
||||||
|
programs.alvr.openFirewall = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
steam = pkgs.steam.override {
|
steam = pkgs.steam.override {
|
||||||
@@ -440,10 +480,11 @@ hardware.pulseaudio.extraConfig = ''
|
|||||||
# Enable the OpenSSH daemon.
|
# Enable the OpenSSH daemon.
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
services.openssh.allowSFTP = true;
|
services.openssh.allowSFTP = true;
|
||||||
|
services.openssh.settings.PasswordAuthentication = true;
|
||||||
|
|
||||||
# Open ports in the firewall.
|
# Open ports in the firewall.
|
||||||
networking.firewall.allowedTCPPorts = [ 7860 3042 3246 9943 9944 7801 11434 47990 48010 5001 ];
|
networking.firewall.allowedTCPPorts = [ 7860 3042 3246 9943 9944 7801 11434 47990 48010 5001 8188 ];
|
||||||
networking.firewall.allowedUDPPorts = [ 7860 9943 9944 3042 47990 3246 11434 7801 4800 48010 ];
|
networking.firewall.allowedUDPPorts = [ 7860 8188 9943 9944 3042 47990 3246 11434 7801 4800 48010 ];
|
||||||
# Or disable the firewall altogether.
|
# Or disable the firewall altogether.
|
||||||
# networking.firewall.enable = false;
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
|||||||
@@ -10,16 +10,16 @@
|
|||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-uuid/56963958-ba4d-413a-bb5e-30440a85f911";
|
{ device = "/dev/disk/by-uuid/6452f60b-602c-42ae-bff6-7b0a35e59bfb";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
{ device = "/dev/disk/by-uuid/DC02-0B36";
|
{ device = "/dev/disk/by-uuid/9947-B99A";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
home.username = "joshuaelm";
|
home.username = "joshuaelm";
|
||||||
home.homeDirectory = "/home/joshuaelm";
|
home.homeDirectory = "/home/joshuaelm";
|
||||||
|
|
||||||
imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_desktop.nix ../../modules/ashell ../../modules/waybar/waybar.nix ../../modules/zen ../../modules/rofi ../../modules/kitty ];
|
imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr ../../modules/ashell ../../modules/waybar/waybar.nix ../../modules/zen ../../modules/rofi ../../modules/kitty ../../modules/cava ../../modules/starship ../../modules/fuzzel ../../modules/nushell ];
|
||||||
|
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
@@ -25,7 +25,6 @@
|
|||||||
programs.cava.enable = true;
|
programs.cava.enable = true;
|
||||||
programs.btop.enable = true;
|
programs.btop.enable = true;
|
||||||
services.hyprpaper.enable = true;
|
services.hyprpaper.enable = true;
|
||||||
wayland.windowManager.hyprland.enable = true;
|
|
||||||
home.shell.enableFishIntegration = true;
|
home.shell.enableFishIntegration = true;
|
||||||
|
|
||||||
home.file.".icons/default".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic";
|
home.file.".icons/default".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic";
|
||||||
|
|||||||
@@ -8,18 +8,18 @@
|
|||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "usb_storage" ];
|
boot.initrd.availableKernelModules = [ "usbhid" "usb_storage" ];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ ];
|
boot.kernelModules = [ ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-uuid/089c3a91-0f69-4a24-8ca0-e7a4a817be07";
|
{ device = "/dev/disk/by-uuid/b80e3211-820e-48b1-9c64-97c275b26de2";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
{ device = "/dev/disk/by-uuid/4267-12F5";
|
{ device = "/dev/disk/by-uuid/60EA-1224";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
};
|
};
|
||||||
@@ -31,6 +31,7 @@
|
|||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
networking.useDHCP = lib.mkDefault true;
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enu1u4c2.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
|
# networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
home.username = "joshuaelm";
|
home.username = "joshuaelm";
|
||||||
home.homeDirectory = "/home/joshuaelm";
|
home.homeDirectory = "/home/joshuaelm";
|
||||||
|
|
||||||
imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_laptop.nix ../../modules/waybar/waybar.nix ../../modules/ashell ../../modules/zen ../../modules/rofi ../../modules/kitty ];
|
imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_laptop.nix ../../modules/waybar/waybar.nix ../../modules/ashell ../../modules/zen ../../modules/rofi ../../modules/kitty ../../modules/starship ];
|
||||||
|
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
|
|||||||
5
modules/cava/default.nix
Normal file
5
modules/cava/default.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{pkgs, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.cava.enable = true;
|
||||||
|
}
|
||||||
9
modules/fish/default.nix
Normal file
9
modules/fish/default.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.fish.enable = true;
|
||||||
|
home.shell.enableFishIntegration = true;
|
||||||
|
programs.fish.functions = {
|
||||||
|
fish_greeting = "";
|
||||||
|
};
|
||||||
|
}
|
||||||
39
modules/fuzzel/default.nix
Normal file
39
modules/fuzzel/default.nix
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{pkgs, lib, config,...}:
|
||||||
|
{
|
||||||
|
programs.fuzzel.enable = true;
|
||||||
|
programs.fuzzel.settings = lib.mkAfter {
|
||||||
|
main = {
|
||||||
|
dpi-aware = false;
|
||||||
|
font = lib.mkForce "JetBrainsMono NF SemiBold:size=14";
|
||||||
|
placeholder = " Search...";
|
||||||
|
icons-enabled = true;
|
||||||
|
use-bold = true;
|
||||||
|
fields = lib.mkForce "name,generic,comment,categories,filename,keywords,exec";
|
||||||
|
terminal = "kitty";
|
||||||
|
prompt = "";
|
||||||
|
show-actions = false;
|
||||||
|
anchor = "center";
|
||||||
|
x-margin = 15;
|
||||||
|
y-margin = 0;
|
||||||
|
lines = 10;
|
||||||
|
width = 50;
|
||||||
|
horizontal-pad = 20;
|
||||||
|
vertical-pad = 20;
|
||||||
|
inner-pad = 5;
|
||||||
|
line-height = 30;
|
||||||
|
letter-spacing = 0;
|
||||||
|
image-size-ratio = 0.2;
|
||||||
|
exit-on-keyboard-focus-loss = true;
|
||||||
|
};
|
||||||
|
border = {
|
||||||
|
radius = 5;
|
||||||
|
width = 2;
|
||||||
|
};
|
||||||
|
dmenu = {
|
||||||
|
mode = "text";
|
||||||
|
};
|
||||||
|
colors = {
|
||||||
|
prompt = lib.mkForce "${config.lib.stylix.colors.base00-hex}ff";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,12 +1,16 @@
|
|||||||
{pkgs, ...}:
|
{pkgs, ...}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
services.hyprpolkitagent.enable = true;
|
||||||
|
wayland.windowManager.hyprland.enable = true;
|
||||||
|
wayland.windowManager.hyprland.package = null;
|
||||||
|
wayland.windowManager.hyprland.portalPackage = null;
|
||||||
wayland.windowManager.hyprland.extraConfig = ''
|
wayland.windowManager.hyprland.extraConfig = ''
|
||||||
autogenerated = 0 # remove this line to remove the warning
|
autogenerated = 0 # remove this line to remove the warning
|
||||||
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
monitor = HDMI-A-1, 3840x2160@60, 0x0, 1, bitdepth, 10, sdrsaturation, 1.2, sdrbrightness, 1
|
monitor = HDMI-A-1, 3840x2160@120, 0x0, auto, bitdepth, 10, sdrsaturation, 1, sdrbrightness, 1
|
||||||
#monitor = HDMI-A-1, disable
|
#monitor = HDMI-A-1, disable
|
||||||
#monitor = sunshine, highres@highrr, 0x0, 1
|
#monitor = sunshine, highres@highrr, 0x0, 1
|
||||||
monitor = DP-1, highres@highrr, 0x0, 1
|
monitor = DP-1, highres@highrr, 0x0, 1
|
||||||
@@ -14,7 +18,7 @@ monitor = DP-1, highres@highrr, 0x0, 1
|
|||||||
exec-once = hyprctl dispatch workspace 1
|
exec-once = hyprctl dispatch workspace 1
|
||||||
#exec-once = linux-wallpaperengine --screen-root HDMI-A-1 --silent --fps 60 3000562427
|
#exec-once = linux-wallpaperengine --screen-root HDMI-A-1 --silent --fps 60 3000562427
|
||||||
exec-once = hyprlock
|
exec-once = hyprlock
|
||||||
exec-once = ashell
|
exec-once = waybar
|
||||||
exec-once = pw-metadata -n settings 0 clock.force-quantum 2048
|
exec-once = pw-metadata -n settings 0 clock.force-quantum 2048
|
||||||
# exec-once = ashell
|
# exec-once = ashell
|
||||||
exec-once = systemctl --user start hyprpolkitagent
|
exec-once = systemctl --user start hyprpolkitagent
|
||||||
@@ -27,9 +31,10 @@ exec-once = sunshine
|
|||||||
debug:full_cm_proto=true
|
debug:full_cm_proto=true
|
||||||
|
|
||||||
# Set programs that you use
|
# Set programs that you use
|
||||||
$terminal = kitty
|
$terminal = kitty nu
|
||||||
$fileManager = thunar
|
$fileManager = thunar
|
||||||
$menu = rofi -show drun
|
$menu = fuzzel
|
||||||
|
$bar = waybar
|
||||||
|
|
||||||
# Some default env vars.
|
# Some default env vars.
|
||||||
env = XCURSOR_SIZE,24
|
env = XCURSOR_SIZE,24
|
||||||
@@ -75,7 +80,7 @@ windowrulev2 = immediate, class:^(cs2)$
|
|||||||
decoration {
|
decoration {
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
|
||||||
rounding = 0
|
rounding = 5
|
||||||
|
|
||||||
blur {
|
blur {
|
||||||
enabled = yes
|
enabled = yes
|
||||||
@@ -139,7 +144,7 @@ misc {
|
|||||||
|
|
||||||
# Window Rules
|
# Window Rules
|
||||||
|
|
||||||
|
windowrule = float, class:^(Wiremix)$
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||||
$mainMod = SUPER
|
$mainMod = SUPER
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
{pkgs, ...}:
|
{pkgs, ...}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
services.hyprpolkitagent.enable
|
||||||
wayland.windowManager.hyprland.extraConfig = ''
|
wayland.windowManager.hyprland.extraConfig = ''
|
||||||
autogenerated = 0 # remove this line to remove the warning
|
autogenerated = 0 # remove this line to remove the warning
|
||||||
|
|
||||||
@@ -27,7 +28,7 @@ exec-once = systemctl --user start hyprpolkitagent
|
|||||||
# Set programs that you use
|
# Set programs that you use
|
||||||
$terminal = kitty
|
$terminal = kitty
|
||||||
$fileManager = thunar
|
$fileManager = thunar
|
||||||
$menu = rofi -show drun
|
$menu = fuzzel
|
||||||
|
|
||||||
# Some default env vars.
|
# Some default env vars.
|
||||||
env = XCURSOR_SIZE,24
|
env = XCURSOR_SIZE,24
|
||||||
|
|||||||
16
modules/nushell/default.nix
Normal file
16
modules/nushell/default.nix
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{pkgs, config, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nushell = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
$env.config.show_banner = false
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
# Fish like Autocomplete
|
||||||
|
|
||||||
|
programs.carapace = {
|
||||||
|
enable = true;
|
||||||
|
enableNushellIntegration = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
6
modules/nvim/config.nix
Normal file
6
modules/nvim/config.nix
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
programs.nixvim.opts = {
|
||||||
|
shiftwidth = 2;
|
||||||
|
tabstop = 2;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
{config, pkgs, lib, inputs, ...}:
|
{config, pkgs, lib, inputs, ...}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
imports = [ ./config.nix ];
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins.nvim-tree.enable = true;
|
plugins.nvim-tree.enable = true;
|
||||||
@@ -14,7 +15,15 @@
|
|||||||
plugins.web-devicons.enable = true;
|
plugins.web-devicons.enable = true;
|
||||||
plugins.which-key.enable = true;
|
plugins.which-key.enable = true;
|
||||||
plugins.cmp-nvim-lsp.enable = true;
|
plugins.cmp-nvim-lsp.enable = true;
|
||||||
|
plugins.bufferline.enable = true;
|
||||||
|
plugins.noice.enable = true;
|
||||||
|
plugins.mini-pairs.enable = true;
|
||||||
|
plugins.ts-comments.enable = true;
|
||||||
|
plugins.snacks.enable = true;
|
||||||
|
plugins.mini-icons.enable = true;
|
||||||
|
plugins.nui.enable = true;
|
||||||
plugins.telescope.enable = true;
|
plugins.telescope.enable = true;
|
||||||
plugins.indent-blankline.enable = true;
|
plugins.indent-blankline.enable = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
8
modules/starship/default.nix
Normal file
8
modules/starship/default.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{pkgs,...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
#stylix.targets.plymouth.enable = false;
|
#stylix.targets.plymouth.enable = false;
|
||||||
stylix.targets.kitty.enable = true;
|
stylix.targets.kitty.enable = true;
|
||||||
stylix.targets.hyprpaper.enable = true;
|
stylix.targets.hyprpaper.enable = true;
|
||||||
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-dark.yaml";
|
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/everforest.yaml";
|
||||||
stylix.targets.zen-browser.profileNames = [ "default" ];
|
stylix.targets.zen-browser.profileNames = [ "default" ];
|
||||||
stylix.targets.zen-browser.enable = true;
|
stylix.targets.zen-browser.enable = true;
|
||||||
# blue aura house
|
# blue aura house
|
||||||
@@ -19,9 +19,16 @@
|
|||||||
hash = "sha256-SNsauGNVU7p+FfZPJ97GQDz5roRfy82WbAuLmLl7iVs=";
|
hash = "sha256-SNsauGNVU7p+FfZPJ97GQDz5roRfy82WbAuLmLl7iVs=";
|
||||||
};*/
|
};*/
|
||||||
|
|
||||||
stylix.image = pkgs.fetchurl {
|
# Docks
|
||||||
url = "https://w.wallhaven.cc/full/5g/wallhaven-5g22q5.png";
|
/*stylix.image = pkgs.fetchurl {
|
||||||
hash = "sha256-snqkeQecU0opsBfIrnkl6aiV71hSCmqnZBAsibNG4w8=";
|
url = "https://gitea.base.jeditemple.com/joshuaelm/Wallpapers/raw/branch/main/generic/a_deck_with_trees_and_a_railing.jpg";
|
||||||
};
|
hash = "sha256-axG9MALOe5cNfySA29DP15YXLp1V1mcHbezPvq4J3sA=";
|
||||||
|
};*/
|
||||||
|
|
||||||
|
# Mountain Range with tree vignette
|
||||||
|
stylix.image = pkgs.fetchurl {
|
||||||
|
url = "https://gitea.base.jeditemple.com/joshuaelm/Wallpapers/raw/branch/main/generic/wallhaven-21yp59.jpg";
|
||||||
|
hash = "sha256-INsc8Zx+Slmcyd/tNekuZ0LhNSlvNLy7TNFLdnJD78Q=";
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,120 +1,222 @@
|
|||||||
{pkgs, lib,...}:
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.waybar.enable = true;
|
programs.waybar.enable = true;
|
||||||
|
|
||||||
programs.waybar.settings = [
|
programs.waybar.settings = [
|
||||||
{
|
{
|
||||||
layer = "top";
|
layer = "top";
|
||||||
position = "top";
|
position = "top";
|
||||||
#margin = "5, 5, 5, 5";
|
spacing = 0;
|
||||||
modules-left = [ "hyprland/workspaces"];
|
height = 26;
|
||||||
modules-center = [ "mpris" ];
|
|
||||||
modules-right = [ "cava" "clock" "network" "pulseaudio/slider" "tray" ];
|
|
||||||
|
|
||||||
cava = {
|
"modules-left" = [ "hyprland/workspaces" ];
|
||||||
bars = 14;
|
"modules-center" = [ "mpris" ];
|
||||||
bar_delimiter = 0;
|
"modules-right" = [
|
||||||
format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"];
|
"group/tray-expander"
|
||||||
};
|
"cava"
|
||||||
|
"clock"
|
||||||
|
"bluetooth"
|
||||||
|
"network"
|
||||||
|
"pulseaudio"
|
||||||
|
"cpu"
|
||||||
|
"battery"
|
||||||
|
];
|
||||||
|
|
||||||
network = {
|
"hyprland/workspaces" = {
|
||||||
format = "";
|
"on-click" = "activate";
|
||||||
format-disconnected = "";
|
format = "{icon}";
|
||||||
format-wifi = "({signalStrength}%) ";
|
"format-icons" = {
|
||||||
};
|
default = "";
|
||||||
|
active = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
mpris = {
|
cpu = {
|
||||||
format = "{dynamic}";
|
interval = 5;
|
||||||
dynamic-order = ["title" "album" "artist" "position" "length"];
|
format = "";
|
||||||
};
|
"on-click" = "kitty -e btop";
|
||||||
|
};
|
||||||
|
|
||||||
tray = {
|
clock = {
|
||||||
spacing = 2;
|
format = "{:L%A %H:%M}";
|
||||||
};
|
"format-alt" = "{:L%d %B W%V %Y}";
|
||||||
|
tooltip = false;
|
||||||
|
"on-click-right" = "omarchy-launch-floating-terminal-with-presentation omarchy-tz-select";
|
||||||
|
};
|
||||||
|
|
||||||
"hyprland/workspaces" = {
|
network = {
|
||||||
active-only = false;
|
"format-icons" = [ "" "" "" "" "" ];
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
format-icons = {
|
"format-wifi" = "{icon}";
|
||||||
active = "";
|
"format-ethernet" = "";
|
||||||
default = "";
|
"format-disconnected" = "";
|
||||||
};
|
"tooltip-format-wifi" = "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}";
|
||||||
};
|
"tooltip-format-ethernet" = "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}";
|
||||||
|
"tooltip-format-disconnected" = "Disconnected";
|
||||||
|
interval = 3;
|
||||||
|
spacing = 1;
|
||||||
|
"on-click" = "omarchy-launch-wifi";
|
||||||
|
};
|
||||||
|
|
||||||
}
|
battery = {
|
||||||
|
format = "{capacity}% {icon}";
|
||||||
|
"format-discharging" = "{icon}";
|
||||||
|
"format-charging" = "{icon}";
|
||||||
|
"format-plugged" = "";
|
||||||
|
"format-icons" = {
|
||||||
|
charging = [ "" "" "" "" "" "" "" "" "" "" ];
|
||||||
|
default = [ "" "" "" "" "" "" "" "" "" "" ];
|
||||||
|
};
|
||||||
|
"format-full" = "";
|
||||||
|
"tooltip-format-discharging" = "{power:>1.0f}W↓ {capacity}%";
|
||||||
|
"tooltip-format-charging" = "{power:>1.0f}W↑ {capacity}%";
|
||||||
|
interval = 5;
|
||||||
|
"on-click" = "omarchy-menu power";
|
||||||
|
states = {
|
||||||
|
warning = 20;
|
||||||
|
critical = 10;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
bluetooth = {
|
||||||
|
format = "";
|
||||||
|
"format-disabled"= "";
|
||||||
|
"format-connected"= "";
|
||||||
|
"tooltip-format" = "Devices connected: {num_connections}";
|
||||||
|
"on-click" = "blueberry";
|
||||||
|
};
|
||||||
|
|
||||||
|
pulseaudio = {
|
||||||
|
format = "{icon}";
|
||||||
|
"on-click" = "kitty --class=Wiremix -e wiremix";
|
||||||
|
"on-click-right" = "pamixer -t";
|
||||||
|
"tooltip-format" = "Playing at {volume}%";
|
||||||
|
"scroll-step" = 5;
|
||||||
|
"format-muted" = "";
|
||||||
|
"format-icons" = {
|
||||||
|
default = [ "" "" "" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mpris = {
|
||||||
|
format = "{dynamic}";
|
||||||
|
dynamic-order = ["title" "album" "artist" "position" "length"];
|
||||||
|
};
|
||||||
|
|
||||||
|
cava = {
|
||||||
|
bars = 14;
|
||||||
|
bar_delimiter = 0;
|
||||||
|
format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"group/tray-expander" = {
|
||||||
|
orientation = "inherit";
|
||||||
|
drawer = {
|
||||||
|
"transition-duration" = 600;
|
||||||
|
"children-class" = "tray-group-item";
|
||||||
|
};
|
||||||
|
modules = [ "custom/expand-icon" "tray" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"custom/expand-icon" = {
|
||||||
|
format = "";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
tray = {
|
||||||
|
"icon-size" = 12;
|
||||||
|
spacing = 17;
|
||||||
|
};
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.waybar.style = lib.mkAfter ''
|
programs.waybar.style = lib.mkAfter ''
|
||||||
* {
|
* {
|
||||||
font-family: "Roboto";
|
border: none;
|
||||||
font-size: 17px;
|
border-radius: 0;
|
||||||
border-radius: 0px;
|
min-height: 0;
|
||||||
|
font-family: 'CaskaydiaMono Nerd Font';
|
||||||
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
window#waybar {
|
.modules-left {
|
||||||
margin: 0 0px;
|
margin-left: 8px;
|
||||||
}
|
|
||||||
|
|
||||||
#network {
|
|
||||||
padding-left: 4px;
|
|
||||||
padding-right: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray {
|
|
||||||
margin-right: 5px;
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cava {
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mpris {
|
|
||||||
padding: 0 5px;
|
|
||||||
margin-left: 5px;
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*.modules-left {
|
|
||||||
background: @base02;
|
|
||||||
box-shadow: 0px 0px 5px 0px #101010;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modules-center {
|
|
||||||
background: @base02;
|
|
||||||
box-shadow: 0px 0px 5px 0px #101010;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.modules-right {
|
.modules-right {
|
||||||
background: @base02;
|
margin-right: 8px;
|
||||||
box-shadow: 0px 0px 5px 0px #101010;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
window > box {
|
|
||||||
background-color: transparent;
|
|
||||||
margin-top: 5px;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
margin-left: 5px;
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio-slider slider {
|
#workspaces button {
|
||||||
min-height: 0px;
|
all: initial;
|
||||||
min-width: 0px;
|
padding: 0 6px;
|
||||||
border-radius: 10px;
|
margin: 0 1.5px;
|
||||||
|
min-width: 9px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio-slider trough {
|
#workspaces button.empty {
|
||||||
min-width: 60px;
|
opacity: 0.5;
|
||||||
border-radius: 10px;
|
}
|
||||||
background-color: @base0D;
|
|
||||||
|
.modules-left #workspaces button.active {
|
||||||
|
border-bottom: 0px solid @base05;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-left #workspaces button {
|
||||||
|
border-bottom: 0px solid @base05;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio-slider highlight {
|
#cpu,
|
||||||
background-color: @base0C;
|
#battery,
|
||||||
border-radius: 10px;
|
#pulseaudio,
|
||||||
|
#custom-omarchy,
|
||||||
|
#custom-screenrecording-indicator,
|
||||||
|
#custom-update {
|
||||||
|
min-width: 12px;
|
||||||
|
margin: 0 7.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
margin-right: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#bluetooth {
|
||||||
|
margin-right: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
margin-right: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-expand-icon {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-update {
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
margin-left: 8.75px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-screenrecording-indicator {
|
||||||
|
min-width: 12px;
|
||||||
|
margin-left: 8.75px;
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-screenrecording-indicator.active {
|
||||||
|
color: #a55555;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,9 @@
|
|||||||
ExtensionSettings = mkExtensionSettings {
|
ExtensionSettings = mkExtensionSettings {
|
||||||
"uBlock0@raymondhill.net" = "ublock-origin";
|
"uBlock0@raymondhill.net" = "ublock-origin";
|
||||||
"search@kagi.com" = "kagi-search-for-firefox";
|
"search@kagi.com" = "kagi-search-for-firefox";
|
||||||
|
#"adnauseam@rednoise.org" = "adnauseam";
|
||||||
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = "bitwarden-password-manager";
|
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = "bitwarden-password-manager";
|
||||||
|
"{7be2ba16-0f1e-4d93-9ebc-5164397477a9}" = "videospeed";
|
||||||
};
|
};
|
||||||
DisableTelemetry = true;
|
DisableTelemetry = true;
|
||||||
};
|
};
|
||||||
|
|||||||
234
patches/bigscreen_1.patch
Normal file
234
patches/bigscreen_1.patch
Normal file
@@ -0,0 +1,234 @@
|
|||||||
|
From f8b7d3bad1225150c8909df309f8d10c365fdf3b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Yaroslav Bolyukin <iam@lach.pw>
|
||||||
|
Date: Sun, 30 Oct 2022 18:59:15 +0100
|
||||||
|
Subject: [PATCH 1/2] drm/edid: parse DRM VESA dsc bpp target
|
||||||
|
|
||||||
|
As per DisplayID v2.0 Errata E9 spec "DSC pass-through timing support"
|
||||||
|
VESA vendor-specific data block may contain target DSC bits per pixel
|
||||||
|
fields
|
||||||
|
|
||||||
|
Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
|
||||||
|
Signed-off-by: Lach <iam@lach.pw>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/drm_displayid_internal.h | 8 ++++
|
||||||
|
drivers/gpu/drm/drm_edid.c | 61 ++++++++++++++++--------
|
||||||
|
include/drm/drm_connector.h | 6 +++
|
||||||
|
include/drm/drm_modes.h | 10 ++++
|
||||||
|
4 files changed, 64 insertions(+), 21 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/drm_displayid_internal.h b/drivers/gpu/drm/drm_displayid_internal.h
|
||||||
|
index 957dd0619f5c..d008a98994bb 100644
|
||||||
|
--- a/drivers/gpu/drm/drm_displayid_internal.h
|
||||||
|
+++ b/drivers/gpu/drm/drm_displayid_internal.h
|
||||||
|
@@ -97,6 +97,10 @@ struct displayid_header {
|
||||||
|
u8 ext_count;
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
+#define DISPLAYID_BLOCK_REV GENMASK(2, 0)
|
||||||
|
+#define DISPLAYID_BLOCK_PASSTHROUGH_TIMINGS_SUPPORT BIT(3)
|
||||||
|
+#define DISPLAYID_BLOCK_DESCRIPTOR_PAYLOAD_BYTES GENMASK(6, 4)
|
||||||
|
+
|
||||||
|
struct displayid_block {
|
||||||
|
u8 tag;
|
||||||
|
u8 rev;
|
||||||
|
@@ -144,12 +148,16 @@ struct displayid_formula_timing_block {
|
||||||
|
|
||||||
|
#define DISPLAYID_VESA_MSO_OVERLAP GENMASK(3, 0)
|
||||||
|
#define DISPLAYID_VESA_MSO_MODE GENMASK(6, 5)
|
||||||
|
+#define DISPLAYID_VESA_DSC_BPP_INT GENMASK(5, 0)
|
||||||
|
+#define DISPLAYID_VESA_DSC_BPP_FRACT GENMASK(3, 0)
|
||||||
|
|
||||||
|
struct displayid_vesa_vendor_specific_block {
|
||||||
|
struct displayid_block base;
|
||||||
|
u8 oui[3];
|
||||||
|
u8 data_structure_type;
|
||||||
|
u8 mso;
|
||||||
|
+ u8 dsc_bpp_int;
|
||||||
|
+ u8 dsc_bpp_fract;
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
/*
|
||||||
|
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
|
||||||
|
index e2e85345aa9a..6e42e55b41f9 100644
|
||||||
|
--- a/drivers/gpu/drm/drm_edid.c
|
||||||
|
+++ b/drivers/gpu/drm/drm_edid.c
|
||||||
|
@@ -6524,8 +6524,8 @@ static void drm_get_monitor_range(struct drm_connector *connector,
|
||||||
|
info->monitor_range.min_vfreq, info->monitor_range.max_vfreq);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void drm_parse_vesa_mso_data(struct drm_connector *connector,
|
||||||
|
- const struct displayid_block *block)
|
||||||
|
+static void drm_parse_vesa_specific_block(struct drm_connector *connector,
|
||||||
|
+ const struct displayid_block *block)
|
||||||
|
{
|
||||||
|
struct displayid_vesa_vendor_specific_block *vesa =
|
||||||
|
(struct displayid_vesa_vendor_specific_block *)block;
|
||||||
|
@@ -6541,7 +6541,7 @@ static void drm_parse_vesa_mso_data(struct drm_connector *connector,
|
||||||
|
if (oui(vesa->oui[0], vesa->oui[1], vesa->oui[2]) != VESA_IEEE_OUI)
|
||||||
|
return;
|
||||||
|
|
||||||
|
- if (sizeof(*vesa) != sizeof(*block) + block->num_bytes) {
|
||||||
|
+ if (block->num_bytes < 5) {
|
||||||
|
drm_dbg_kms(connector->dev,
|
||||||
|
"[CONNECTOR:%d:%s] Unexpected VESA vendor block size\n",
|
||||||
|
connector->base.id, connector->name);
|
||||||
|
@@ -6564,28 +6564,40 @@ static void drm_parse_vesa_mso_data(struct drm_connector *connector,
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!info->mso_stream_count) {
|
||||||
|
- info->mso_pixel_overlap = 0;
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
+ info->mso_pixel_overlap = 0;
|
||||||
|
|
||||||
|
- info->mso_pixel_overlap = FIELD_GET(DISPLAYID_VESA_MSO_OVERLAP, vesa->mso);
|
||||||
|
- if (info->mso_pixel_overlap > 8) {
|
||||||
|
- drm_dbg_kms(connector->dev,
|
||||||
|
- "[CONNECTOR:%d:%s] Reserved MSO pixel overlap value %u\n",
|
||||||
|
- connector->base.id, connector->name,
|
||||||
|
- info->mso_pixel_overlap);
|
||||||
|
- info->mso_pixel_overlap = 8;
|
||||||
|
+ if (info->mso_stream_count) {
|
||||||
|
+ info->mso_pixel_overlap = FIELD_GET(DISPLAYID_VESA_MSO_OVERLAP, vesa->mso);
|
||||||
|
+ if (info->mso_pixel_overlap > 8) {
|
||||||
|
+ drm_dbg_kms(connector->dev,
|
||||||
|
+ "[CONNECTOR:%d:%s] Reserved MSO pixel overlap value %u\n",
|
||||||
|
+ connector->base.id, connector->name,
|
||||||
|
+ info->mso_pixel_overlap);
|
||||||
|
+ info->mso_pixel_overlap = 8;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
drm_dbg_kms(connector->dev,
|
||||||
|
"[CONNECTOR:%d:%s] MSO stream count %u, pixel overlap %u\n",
|
||||||
|
connector->base.id, connector->name,
|
||||||
|
info->mso_stream_count, info->mso_pixel_overlap);
|
||||||
|
+
|
||||||
|
+ if (block->num_bytes < 7) {
|
||||||
|
+ /* DSC bpp is optional */
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ info->dp_dsc_bpp = FIELD_GET(DISPLAYID_VESA_DSC_BPP_INT, vesa->dsc_bpp_int) << 4 |
|
||||||
|
+ FIELD_GET(DISPLAYID_VESA_DSC_BPP_FRACT, vesa->dsc_bpp_fract);
|
||||||
|
+
|
||||||
|
+ drm_dbg_kms(connector->dev,
|
||||||
|
+ "[CONNECTOR:%d:%s] DSC bits per pixel %u\n",
|
||||||
|
+ connector->base.id, connector->name,
|
||||||
|
+ info->dp_dsc_bpp);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void drm_update_mso(struct drm_connector *connector,
|
||||||
|
- const struct drm_edid *drm_edid)
|
||||||
|
+static void drm_update_vesa_specific_block(struct drm_connector *connector,
|
||||||
|
+ const struct drm_edid *drm_edid)
|
||||||
|
{
|
||||||
|
const struct displayid_block *block;
|
||||||
|
struct displayid_iter iter;
|
||||||
|
@@ -6593,7 +6605,7 @@ static void drm_update_mso(struct drm_connector *connector,
|
||||||
|
displayid_iter_edid_begin(drm_edid, &iter);
|
||||||
|
displayid_iter_for_each(block, &iter) {
|
||||||
|
if (block->tag == DATA_BLOCK_2_VENDOR_SPECIFIC)
|
||||||
|
- drm_parse_vesa_mso_data(connector, block);
|
||||||
|
+ drm_parse_vesa_specific_block(connector, block);
|
||||||
|
}
|
||||||
|
displayid_iter_end(&iter);
|
||||||
|
}
|
||||||
|
@@ -6630,6 +6642,7 @@ static void drm_reset_display_info(struct drm_connector *connector)
|
||||||
|
info->mso_stream_count = 0;
|
||||||
|
info->mso_pixel_overlap = 0;
|
||||||
|
info->max_dsc_bpp = 0;
|
||||||
|
+ info->dp_dsc_bpp = 0;
|
||||||
|
|
||||||
|
kfree(info->vics);
|
||||||
|
info->vics = NULL;
|
||||||
|
@@ -6753,7 +6766,7 @@ static void update_display_info(struct drm_connector *connector,
|
||||||
|
if (edid->features & DRM_EDID_FEATURE_RGB_YCRCB422)
|
||||||
|
info->color_formats |= DRM_COLOR_FORMAT_YCBCR422;
|
||||||
|
|
||||||
|
- drm_update_mso(connector, drm_edid);
|
||||||
|
+ drm_update_vesa_specific_block(connector, drm_edid);
|
||||||
|
|
||||||
|
out:
|
||||||
|
if (drm_edid_has_internal_quirk(connector, EDID_QUIRK_NON_DESKTOP)) {
|
||||||
|
@@ -6784,7 +6797,8 @@ static void update_display_info(struct drm_connector *connector,
|
||||||
|
|
||||||
|
static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
|
||||||
|
const struct displayid_detailed_timings_1 *timings,
|
||||||
|
- bool type_7)
|
||||||
|
+ bool type_7,
|
||||||
|
+ int rev)
|
||||||
|
{
|
||||||
|
struct drm_display_mode *mode;
|
||||||
|
unsigned int pixel_clock = (timings->pixel_clock[0] |
|
||||||
|
@@ -6805,6 +6819,10 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
|
||||||
|
if (!mode)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
+ if (type_7 && FIELD_GET(DISPLAYID_BLOCK_REV, rev) >= 1)
|
||||||
|
+ mode->dsc_passthrough_timings_support =
|
||||||
|
+ !!(rev & DISPLAYID_BLOCK_PASSTHROUGH_TIMINGS_SUPPORT);
|
||||||
|
+
|
||||||
|
/* resolution is kHz for type VII, and 10 kHz for type I */
|
||||||
|
mode->clock = type_7 ? pixel_clock : pixel_clock * 10;
|
||||||
|
mode->hdisplay = hactive;
|
||||||
|
@@ -6846,7 +6864,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
|
||||||
|
for (i = 0; i < num_timings; i++) {
|
||||||
|
struct displayid_detailed_timings_1 *timings = &det->timings[i];
|
||||||
|
|
||||||
|
- newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7);
|
||||||
|
+ newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7, block->rev);
|
||||||
|
if (!newmode)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
@@ -6893,7 +6911,8 @@ static int add_displayid_formula_modes(struct drm_connector *connector,
|
||||||
|
struct drm_display_mode *newmode;
|
||||||
|
int num_modes = 0;
|
||||||
|
bool type_10 = block->tag == DATA_BLOCK_2_TYPE_10_FORMULA_TIMING;
|
||||||
|
- int timing_size = 6 + ((formula_block->base.rev & 0x70) >> 4);
|
||||||
|
+ int timing_size = 6 +
|
||||||
|
+ FIELD_GET(DISPLAYID_BLOCK_DESCRIPTOR_PAYLOAD_BYTES, formula_block->base.rev);
|
||||||
|
|
||||||
|
/* extended blocks are not supported yet */
|
||||||
|
if (timing_size != 6)
|
||||||
|
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
|
||||||
|
index 8f34f4b8183d..01640fcf7464 100644
|
||||||
|
--- a/include/drm/drm_connector.h
|
||||||
|
+++ b/include/drm/drm_connector.h
|
||||||
|
@@ -837,6 +837,12 @@ struct drm_display_info {
|
||||||
|
*/
|
||||||
|
u32 max_dsc_bpp;
|
||||||
|
|
||||||
|
+ /**
|
||||||
|
+ * @dp_dsc_bpp: DP Display-Stream-Compression (DSC) timing's target
|
||||||
|
+ * DSC bits per pixel in 6.4 fixed point format. 0 means undefined.
|
||||||
|
+ */
|
||||||
|
+ u16 dp_dsc_bpp;
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* @vics: Array of vics_len VICs. Internal to EDID parsing.
|
||||||
|
*/
|
||||||
|
diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
|
||||||
|
index b9bb92e4b029..312e5c03af9a 100644
|
||||||
|
--- a/include/drm/drm_modes.h
|
||||||
|
+++ b/include/drm/drm_modes.h
|
||||||
|
@@ -417,6 +417,16 @@ struct drm_display_mode {
|
||||||
|
*/
|
||||||
|
enum hdmi_picture_aspect picture_aspect_ratio;
|
||||||
|
|
||||||
|
+ /**
|
||||||
|
+ * @dsc_passthrough_timing_support:
|
||||||
|
+ *
|
||||||
|
+ * Indicates whether this mode timing descriptor is supported
|
||||||
|
+ * with specific target DSC bits per pixel only.
|
||||||
|
+ *
|
||||||
|
+ * VESA vendor-specific data block shall exist with the relevant
|
||||||
|
+ * DSC bits per pixel declaration when this flag is set to true.
|
||||||
|
+ */
|
||||||
|
+ bool dsc_passthrough_timings_support;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
--
|
||||||
|
2.51.0
|
||||||
243
patches/bigscreen_15.patch
Normal file
243
patches/bigscreen_15.patch
Normal file
@@ -0,0 +1,243 @@
|
|||||||
|
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
|
||||||
|
index 3b4065099..639699e3b 100644
|
||||||
|
--- a/drivers/gpu/drm/drm_edid.c
|
||||||
|
+++ b/drivers/gpu/drm/drm_edid.c
|
||||||
|
@@ -189,6 +189,9 @@ static const struct edid_quirk {
|
||||||
|
/* Rotel RSX-1058 forwards sink's EDID but only does HDMI 1.1*/
|
||||||
|
EDID_QUIRK('E', 'T', 'R', 13896, EDID_QUIRK_FORCE_8BPC),
|
||||||
|
|
||||||
|
+ /* Bigscreen Beyond Headset */
|
||||||
|
+ EDID_QUIRK('B', 'I', 'G', 0x1234, EDID_QUIRK_NON_DESKTOP),
|
||||||
|
+
|
||||||
|
/* Valve Index Headset */
|
||||||
|
EDID_QUIRK('V', 'L', 'V', 0x91a8, EDID_QUIRK_NON_DESKTOP),
|
||||||
|
EDID_QUIRK('V', 'L', 'V', 0x91b0, EDID_QUIRK_NON_DESKTOP),
|
||||||
|
|
||||||
|
From c33583995576e9ac532c4ad9e260324b1c4fa3a3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Yaroslav Bolyukin <iam@lach.pw>
|
||||||
|
Date: Sun, 30 Oct 2022 19:04:26 +0100
|
||||||
|
Subject: [PATCH 3/3] drm/amd: use fixed dsc bits-per-pixel from edid
|
||||||
|
|
||||||
|
VESA vendor header from DisplayID spec may contain fixed bit per pixel
|
||||||
|
rate, it should be respected by drm driver
|
||||||
|
|
||||||
|
Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
|
||||||
|
Reviewed-by: Wayne Lin <Wayne.Lin@amd.com>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 2 ++
|
||||||
|
drivers/gpu/drm/amd/display/dc/dc_types.h | 3 +++
|
||||||
|
2 files changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
|
||||||
|
index 38d71b5c1f2d..f2467b64268b 100644
|
||||||
|
--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
|
||||||
|
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
|
||||||
|
@@ -103,6 +103,8 @@ static bool dc_stream_construct(struct dc_stream_state *stream,
|
||||||
|
|
||||||
|
/* EDID CAP translation for HDMI 2.0 */
|
||||||
|
stream->timing.flags.LTE_340MCSC_SCRAMBLE = dc_sink_data->edid_caps.lte_340mcsc_scramble;
|
||||||
|
+ stream->timing.dsc_fixed_bits_per_pixel_x16 =
|
||||||
|
+ dc_sink_data->edid_caps.dsc_fixed_bits_per_pixel_x16;
|
||||||
|
|
||||||
|
memset(&stream->timing.dsc_cfg, 0, sizeof(stream->timing.dsc_cfg));
|
||||||
|
stream->timing.dsc_cfg.num_slices_h = 0;
|
||||||
|
diff --git a/drivers/gpu/drm/amd/display/dc/dc_types.h b/drivers/gpu/drm/amd/display/dc/dc_types.h
|
||||||
|
index dc78e2404b48..65915a10ab48 100644
|
||||||
|
--- a/drivers/gpu/drm/amd/display/dc/dc_types.h
|
||||||
|
+++ b/drivers/gpu/drm/amd/display/dc/dc_types.h
|
||||||
|
@@ -231,6 +231,9 @@ struct dc_edid_caps {
|
||||||
|
bool edid_hdmi;
|
||||||
|
bool hdr_supported;
|
||||||
|
|
||||||
|
+ /* DisplayPort caps */
|
||||||
|
+ uint32_t dsc_fixed_bits_per_pixel_x16;
|
||||||
|
+
|
||||||
|
struct dc_panel_patch panel_patch;
|
||||||
|
};
|
||||||
|
|
||||||
|
--
|
||||||
|
2.38.1
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
|
||||||
|
index 3b4065099..15268afa3 100644
|
||||||
|
--- a/drivers/gpu/drm/drm_edid.c
|
||||||
|
+++ b/drivers/gpu/drm/drm_edid.c
|
||||||
|
@@ -6391,7 +6391,7 @@ static void drm_parse_vesa_mso_data(struct drm_connector *connector,
|
||||||
|
if (oui(vesa->oui[0], vesa->oui[1], vesa->oui[2]) != VESA_IEEE_OUI)
|
||||||
|
return;
|
||||||
|
|
||||||
|
- if (sizeof(*vesa) != sizeof(*block) + block->num_bytes) {
|
||||||
|
+ if (block->num_bytes < 5) {
|
||||||
|
drm_dbg_kms(connector->dev,
|
||||||
|
"[CONNECTOR:%d:%s] Unexpected VESA vendor block size\n",
|
||||||
|
connector->base.id, connector->name);
|
||||||
|
@@ -6414,24 +6414,37 @@ static void drm_parse_vesa_mso_data(struct drm_connector *connector,
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!info->mso_stream_count) {
|
||||||
|
- info->mso_pixel_overlap = 0;
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
+ info->mso_pixel_overlap = 0;
|
||||||
|
+
|
||||||
|
+ if (info->mso_stream_count) {
|
||||||
|
+ info->mso_pixel_overlap = FIELD_GET(DISPLAYID_VESA_MSO_OVERLAP, vesa->mso);
|
||||||
|
+
|
||||||
|
+ if (info->mso_pixel_overlap > 8) {
|
||||||
|
+ drm_dbg_kms(connector->dev,
|
||||||
|
+ "[CONNECTOR:%d:%s] Reserved MSO pixel overlap value %u\n",
|
||||||
|
+ connector->base.id, connector->name,
|
||||||
|
+ info->mso_pixel_overlap);
|
||||||
|
+ info->mso_pixel_overlap = 8;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- info->mso_pixel_overlap = FIELD_GET(DISPLAYID_VESA_MSO_OVERLAP, vesa->mso);
|
||||||
|
- if (info->mso_pixel_overlap > 8) {
|
||||||
|
drm_dbg_kms(connector->dev,
|
||||||
|
- "[CONNECTOR:%d:%s] Reserved MSO pixel overlap value %u\n",
|
||||||
|
- connector->base.id, connector->name,
|
||||||
|
- info->mso_pixel_overlap);
|
||||||
|
- info->mso_pixel_overlap = 8;
|
||||||
|
+ "[CONNECTOR:%d:%s] MSO stream count %u, pixel overlap %u\n",
|
||||||
|
+ connector->base.id, connector->name,
|
||||||
|
+ info->mso_stream_count, info->mso_pixel_overlap);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (block->num_bytes < 7) {
|
||||||
|
+ /* DSC bpp is optional */
|
||||||
|
+ return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ info->dp_dsc_bpp = FIELD_GET(DISPLAYID_VESA_DSC_BPP_INT, vesa->dsc_bpp_int) * 16 +
|
||||||
|
+ FIELD_GET(DISPLAYID_VESA_DSC_BPP_FRACT, vesa->dsc_bpp_fract);
|
||||||
|
+
|
||||||
|
drm_dbg_kms(connector->dev,
|
||||||
|
- "[CONNECTOR:%d:%s] MSO stream count %u, pixel overlap %u\n",
|
||||||
|
- connector->base.id, connector->name,
|
||||||
|
- info->mso_stream_count, info->mso_pixel_overlap);
|
||||||
|
+ "[CONNECTOR:%d:%s] DSC bits per pixel %u\n",
|
||||||
|
+ connector->base.id, connector->name,
|
||||||
|
+ info->dp_dsc_bpp);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void drm_update_mso(struct drm_connector *connector,
|
||||||
|
@@ -6479,6 +6492,7 @@ static void drm_reset_display_info(struct drm_connector *connector)
|
||||||
|
info->mso_stream_count = 0;
|
||||||
|
info->mso_pixel_overlap = 0;
|
||||||
|
info->max_dsc_bpp = 0;
|
||||||
|
+ info->dp_dsc_bpp = 0;
|
||||||
|
|
||||||
|
kfree(info->vics);
|
||||||
|
info->vics = NULL;
|
||||||
|
diff --git a/drivers/gpu/drm/drm_edid.c.rej b/drivers/gpu/drm/drm_edid.c.rej
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..de3b3bf4e
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/drivers/gpu/drm/drm_edid.c.rej
|
||||||
|
@@ -0,0 +1,9 @@
|
||||||
|
+diff a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c (rejected hunks)
|
||||||
|
+@@ -6376,6 +6389,7 @@ static void drm_reset_display_info(struct drm_connector *connector)
|
||||||
|
+ info->mso_stream_count = 0;
|
||||||
|
+ info->mso_pixel_overlap = 0;
|
||||||
|
+ info->max_dsc_bpp = 0;
|
||||||
|
++ info->dp_dsc_bpp = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ static u32 update_display_info(struct drm_connector *connector,
|
||||||
|
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
|
||||||
|
index fe88d7fc6..1de1d1726 100644
|
||||||
|
--- a/include/drm/drm_connector.h
|
||||||
|
+++ b/include/drm/drm_connector.h
|
||||||
|
@@ -803,6 +803,12 @@ struct drm_display_info {
|
||||||
|
*/
|
||||||
|
u32 max_dsc_bpp;
|
||||||
|
|
||||||
|
+ /**
|
||||||
|
+ * @dp_dsc_bpp: DP Display-Stream-Compression (DSC) timing's target
|
||||||
|
+ * DST bits per pixel in 6.4 fixed point format. 0 means undefined
|
||||||
|
+ */
|
||||||
|
+ u16 dp_dsc_bpp;
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* @vics: Array of vics_len VICs. Internal to EDID parsing.
|
||||||
|
*/
|
||||||
|
diff --git a/include/drm/drm_connector.h.rej b/include/drm/drm_connector.h.rej
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..d54d40443
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/include/drm/drm_connector.h.rej
|
||||||
|
@@ -0,0 +1,13 @@
|
||||||
|
+diff a/include/drm/drm_connector.h b/include/drm/drm_connector.h (rejected hunks)
|
||||||
|
+@@ -721,6 +721,11 @@ struct drm_display_info {
|
||||||
|
+ * monitor's default value is used instead.
|
||||||
|
+ */
|
||||||
|
+ u32 max_dsc_bpp;
|
||||||
|
++ /**
|
||||||
|
++ * @dp_dsc_bpp: DP Display-Stream-Compression (DSC) timing's target
|
||||||
|
++ * DST bits per pixel in 6.4 fixed point format. 0 means undefined
|
||||||
|
++ */
|
||||||
|
++ u16 dp_dsc_bpp;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ int drm_display_info_set_bus_formats(struct drm_display_info *info,
|
||||||
|
diff --git a/include/drm/drm_displayid.h b/include/drm/drm_displayid.h
|
||||||
|
index 566497eeb..3a4bd0816 100644
|
||||||
|
--- a/drivers/gpu/drm/drm_displayid_internal.h
|
||||||
|
+++ b/drivers/gpu/drm/drm_displayid_internal.h
|
||||||
|
@@ -131,12 +131,16 @@ struct displayid_detailed_timing_block {
|
||||||
|
|
||||||
|
#define DISPLAYID_VESA_MSO_OVERLAP GENMASK(3, 0)
|
||||||
|
#define DISPLAYID_VESA_MSO_MODE GENMASK(6, 5)
|
||||||
|
+#define DISPLAYID_VESA_DSC_BPP_INT GENMASK(5, 0)
|
||||||
|
+#define DISPLAYID_VESA_DSC_BPP_FRACT GENMASK(3, 0)
|
||||||
|
|
||||||
|
struct displayid_vesa_vendor_specific_block {
|
||||||
|
struct displayid_block base;
|
||||||
|
u8 oui[3];
|
||||||
|
u8 data_structure_type;
|
||||||
|
u8 mso;
|
||||||
|
+ u8 dsc_bpp_int;
|
||||||
|
+ u8 dsc_bpp_fract;
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
/*
|
||||||
|
diff --git a/include/drm/drm_displayid.h.rej b/include/drm/drm_displayid.h.rej
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..61fbd38e0
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/include/drm/drm_displayid.h.rej
|
||||||
|
@@ -0,0 +1,18 @@
|
||||||
|
+diff a/include/drm/drm_displayid.h b/include/drm/drm_displayid.h (rejected hunks)
|
||||||
|
+@@ -131,12 +131,16 @@ struct displayid_detailed_timing_block {
|
||||||
|
+
|
||||||
|
+ #define DISPLAYID_VESA_MSO_OVERLAP GENMASK(3, 0)
|
||||||
|
+ #define DISPLAYID_VESA_MSO_MODE GENMASK(6, 5)
|
||||||
|
++#define DISPLAYID_VESA_DSC_BPP_INT GENMASK(5, 0)
|
||||||
|
++#define DISPLAYID_VESA_DSC_BPP_FRACT GENMASK(3, 0)
|
||||||
|
+
|
||||||
|
+ struct displayid_vesa_vendor_specific_block {
|
||||||
|
+ struct displayid_block base;
|
||||||
|
+ u8 oui[3];
|
||||||
|
+ u8 data_structure_type;
|
||||||
|
+ u8 mso;
|
||||||
|
++ u8 dsc_bpp_int;
|
||||||
|
++ u8 dsc_bpp_fract;
|
||||||
|
+ } __packed;
|
||||||
|
+
|
||||||
|
+ /* DisplayID iteration */
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
|
||||||
|
index d4395b92fb85..6c7f589e19ac 100644
|
||||||
|
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
|
||||||
|
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
|
||||||
|
@@ -136,6 +136,8 @@ enum dc_edid_status dm_helpers_parse_edid_caps(
|
||||||
|
|
||||||
|
edid_caps->edid_hdmi = connector->display_info.is_hdmi;
|
||||||
|
|
||||||
|
+ edid_caps->dsc_fixed_bits_per_pixel_x16 = connector->display_info.dp_dsc_bpp;
|
||||||
|
+
|
||||||
|
apply_edid_quirks(dev, edid_buf, edid_caps);
|
||||||
|
|
||||||
|
sad_count = drm_edid_to_sad((struct edid *) edid->raw_edid, &sads);
|
||||||
46
patches/bigscreen_2.patch
Normal file
46
patches/bigscreen_2.patch
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
From 4374e685d46122ac59ccdd201c3be785e7f3558d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Yaroslav Bolyukin <iam@lach.pw>
|
||||||
|
Date: Sun, 30 Oct 2022 19:04:26 +0100
|
||||||
|
Subject: [PATCH 2/2] drm/amd: use fixed dsc bits-per-pixel from edid
|
||||||
|
|
||||||
|
VESA vendor header from DisplayID spec may contain fixed bit per pixel
|
||||||
|
rate, it should be respected by drm driver
|
||||||
|
|
||||||
|
Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
|
||||||
|
Signed-off-by: Lach <iam@lach.pw>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 ++++++++++++
|
||||||
|
1 file changed, 12 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||||
|
index ef026143dc1c..d068c6db91ce 100644
|
||||||
|
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||||
|
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||||
|
@@ -6430,6 +6430,11 @@ static void fill_stream_properties_from_drm_display_mode(
|
||||||
|
|
||||||
|
stream->output_color_space = get_output_color_space(timing_out, connector_state);
|
||||||
|
stream->content_type = get_output_content_type(connector_state);
|
||||||
|
+
|
||||||
|
+ /* DisplayID Type VII pass-through timings. */
|
||||||
|
+ if (mode_in->dsc_passthrough_timings_support && info->dp_dsc_bpp != 0) {
|
||||||
|
+ stream->timing.dsc_fixed_bits_per_pixel_x16 = info->dp_dsc_bpp;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fill_audio_info(struct audio_info *audio_info,
|
||||||
|
@@ -6976,6 +6981,13 @@ create_stream_for_sink(struct drm_connector *connector,
|
||||||
|
&mode, preferred_mode, scale);
|
||||||
|
|
||||||
|
preferred_refresh = drm_mode_vrefresh(preferred_mode);
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * HACK: In case of multiple supported modes, we should look at the matching mode to decide this flag.
|
||||||
|
+ * But what is matching mode, how should it be decided?
|
||||||
|
+ * Assuming that only preferred mode would have this flag.
|
||||||
|
+ */
|
||||||
|
+ mode.dsc_passthrough_timings_support = preferred_mode->dsc_passthrough_timings_support;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.51.0
|
||||||
Reference in New Issue
Block a user