Compare commits
18 Commits
83fcdd9710
...
master
Author | SHA1 | Date | |
---|---|---|---|
815387a87e
|
|||
3c93a7e549
|
|||
e677a74c41
|
|||
a0d6bb0ab7
|
|||
03cf08f0d4
|
|||
c977589fde
|
|||
7af7980e07
|
|||
c47ca40705
|
|||
ebd19812a2
|
|||
844561a87c
|
|||
206d34adb2
|
|||
fa0a8f6901
|
|||
6db7efe71b
|
|||
1418e62598
|
|||
59075d1619
|
|||
db8ada4360
|
|||
6951525a3b
|
|||
295651262a
|
BIN
Btop.png
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 2.2 MiB |
BIN
FastFetch.png
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 2.0 MiB |
BIN
NeoVim.png
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 2.0 MiB |
BIN
Rmpc.png
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 2.3 MiB |
@ -7,5 +7,6 @@
|
||||
|
||||
monolisa = pkgs.callPackage ./monolisa {};
|
||||
msty = pkgs.callPackage ./msty {};
|
||||
unityhub = pkgs.callPackage ./unityhub {};
|
||||
tidal-dl-ng = pkgs.callPackage ./tidal-dl-ng {};
|
||||
}
|
||||
|
@ -1,4 +1,3 @@
|
||||
# Taken from pull/422785
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
@ -47,7 +46,15 @@ stdenv.mkDerivation rec {
|
||||
++ extraPkgs pkgs;
|
||||
|
||||
multiPkgs = pkgs:
|
||||
with pkgs;
|
||||
with pkgs; let
|
||||
libxml2-legacy = libxml2.overrideAttrs (previousAttrs: rec {
|
||||
version = "2.13.8";
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/libxml2/${lib.versions.majorMinor version}/libxml2-${version}.tar.xz";
|
||||
hash = "sha256-J3KUyzMRmrcbK8gfL0Rem8lDW4k60VuyzSsOhZoO6Eo=";
|
||||
};
|
||||
});
|
||||
in
|
||||
[
|
||||
# Unity Hub ldd dependencies
|
||||
cups
|
||||
@ -94,7 +101,7 @@ stdenv.mkDerivation rec {
|
||||
xorg.libXcursor
|
||||
glib
|
||||
gdk-pixbuf
|
||||
libxml2
|
||||
libxml2-legacy
|
||||
zlib
|
||||
clang
|
||||
git # for git-based packages in unity package manager
|
43
flake.lock
generated
@ -627,7 +627,7 @@
|
||||
},
|
||||
"naersk": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733346208,
|
||||
@ -647,9 +647,7 @@
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"nix-index-database": "nix-index-database",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752566074,
|
||||
@ -718,7 +716,39 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1753115646,
|
||||
"narHash": "sha256-yLuz5cz5Z+sn8DRAfNkrd2Z1cV6DaYO9JMrEz4KZo/c=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "92c2e04a475523e723c67ef872d8037379073681",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1752950548,
|
||||
"narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c87b95e25065c028d31a94f06a62927d18763fdf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1752950548,
|
||||
"narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=",
|
||||
@ -734,7 +764,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1734323986,
|
||||
"narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=",
|
||||
@ -888,7 +918,8 @@
|
||||
"impermanence": "impermanence",
|
||||
"nix-alien": "nix-alien",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"nixvim": "nixvim",
|
||||
"nps": "nps",
|
||||
"nur": "nur",
|
||||
|
58
flake.nix
@ -12,6 +12,9 @@
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
hardware.url = "github:nixos/nixos-hardware";
|
||||
|
||||
# NOTE: Update this after May and November
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||
|
||||
# Home Manager
|
||||
home-manager.url = "github:nix-community/home-manager";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
@ -38,7 +41,9 @@
|
||||
|
||||
# Run unpatched binaries on NixOS
|
||||
nix-alien.url = "github:thiagokokada/nix-alien";
|
||||
nix-alien.inputs.nixpkgs.follows = "nixpkgs";
|
||||
# Don't follow nixpkgs:
|
||||
# https://github.com/thiagokokada/nix-alien#user-content-nixos-installation-with-flakes
|
||||
# nix-alien.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
# Hyprland (use flake so plugins are not built from source)
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
@ -52,7 +57,7 @@
|
||||
hypr-dynamic-cursors.inputs.nixpkgs.follows = "nixpkgs";
|
||||
hypr-dynamic-cursors.inputs.hyprland.follows = "hyprland";
|
||||
hyprspace.url = "github:KZDKM/Hyprspace";
|
||||
hyprspace.inputs.nixpkgs.follows = "nixpkgs";
|
||||
# hyprspace.inputs.nixpkgs.follows = "nixpkgs";
|
||||
hyprspace.inputs.hyprland.follows = "hyprland";
|
||||
|
||||
# NeoVim <3
|
||||
@ -74,10 +79,6 @@
|
||||
# Realtime audio
|
||||
# musnix.url = "github:musnix/musnix";
|
||||
# musnix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
# Pinned versions
|
||||
# v4l2loopback-pinned.url = "github:nixos/nixpkgs/4684fd6b0c01e4b7d99027a34c93c2e09ecafee2";
|
||||
# unityhub-pinned.url = "github:huantianad/nixpkgs/9542b0bc7701e173a10e6977e57bbba68bb3051f";
|
||||
};
|
||||
|
||||
# Outputs is a function that takes the inputs as arguments.
|
||||
@ -111,41 +112,24 @@
|
||||
# firefox = prev.firefox.override { ... };
|
||||
# myBrowser = final.firefox;
|
||||
# }
|
||||
overlays = [
|
||||
overlays = let
|
||||
# Maintain additional stable pkgs.
|
||||
# This is supposed to provide a backup for packages in case they
|
||||
# stop building on the unstable branch.
|
||||
# It should otherwise not be mixed with this configuration,
|
||||
# so don't even pass it to the modules.
|
||||
pkgs-stable = import inputs.nixpkgs-stable {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
config.allowUnfreePredicate = pkg: true;
|
||||
};
|
||||
in [
|
||||
inputs.devshell.overlays.default
|
||||
inputs.nur.overlays.default
|
||||
# inputs.emacs-overlay.overlay
|
||||
|
||||
# Overriding specific packages from a different nixpkgs (e.g. a pull request)
|
||||
# can be done like this. Note that this creates an additional nixpkgs instance.
|
||||
# https://github.com/NixOS/nixpkgs/issues/418451
|
||||
# (final: prev: {
|
||||
# unityhub_pinned_3_13 = import inputs.unityhub-pinned {
|
||||
# config.allowUnfree = true;
|
||||
# localSystem = {inherit (prev) system;};
|
||||
# };
|
||||
# })
|
||||
|
||||
# TODO: Remove this after 0.15.1 hit nixpkgs
|
||||
(final: prev: {
|
||||
neovide = prev.neovide.overrideAttrs (finalAttrs: prevAttrs: {
|
||||
version = "0.15.1";
|
||||
src = prev.fetchFromGitHub {
|
||||
owner = "neovide";
|
||||
repo = "neovide";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-2iV3g6tcCkMF7sFG/GZDz3czPZNIDi6YLfrVzYO9jYI=";
|
||||
};
|
||||
cargoHash = "sha256-YlHAcUCRk6ROg5yXIumHfsiR/2TrsSzbuXz/IQK7sEo=";
|
||||
cargoDeps = prev.rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs) pname src version;
|
||||
hash = finalAttrs.cargoHash;
|
||||
};
|
||||
});
|
||||
})
|
||||
|
||||
# All my own overlays
|
||||
(import ./overlays {inherit nixpkgs inputs;})
|
||||
# All my own overlays (derivations + modifications)
|
||||
(import ./overlays {inherit inputs nixpkgs pkgs-stable;})
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -41,8 +41,7 @@
|
||||
};
|
||||
|
||||
modules = {
|
||||
# TODO: Reenable after build-failure on 2025-07-18
|
||||
beets.enable = false; # !headless;
|
||||
beets.enable = !headless;
|
||||
|
||||
btop.enable = true;
|
||||
|
||||
@ -82,7 +81,7 @@
|
||||
signCommits = true;
|
||||
};
|
||||
|
||||
hyprland = import ./hyprland.nix {inherit config headless;};
|
||||
hyprland = import ./hyprland.nix {inherit pkgs config headless;};
|
||||
hyprpanel.enable = !headless;
|
||||
kitty.enable = !headless;
|
||||
lazygit.enable = true;
|
||||
@ -460,7 +459,155 @@
|
||||
enableFishIntegration = config.modules.fish.enable;
|
||||
};
|
||||
|
||||
fastfetch.enable = true;
|
||||
fastfetch = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
logo = {
|
||||
padding = {
|
||||
top = 3;
|
||||
left = 1;
|
||||
right = 2;
|
||||
};
|
||||
};
|
||||
|
||||
display = {
|
||||
separator = "";
|
||||
key.width = 17;
|
||||
};
|
||||
|
||||
# Box Drawing: ╭ ─ ╮ ╰ ╯ │
|
||||
modules = [
|
||||
# Title
|
||||
{
|
||||
type = "title";
|
||||
format = "{#1}╭─── {#}{user-name-colored}";
|
||||
}
|
||||
|
||||
# System Information
|
||||
{
|
||||
type = "custom";
|
||||
format = "{#1}│ {#}System Information";
|
||||
}
|
||||
{
|
||||
type = "os";
|
||||
key = "{#separator}│ {#keys} OS";
|
||||
}
|
||||
{
|
||||
type = "kernel";
|
||||
key = "{#separator}│ {#keys} Kernel";
|
||||
}
|
||||
{
|
||||
type = "bootmgr";
|
||||
key = "{#separator}│ {#keys} BootMGR";
|
||||
}
|
||||
{
|
||||
type = "uptime";
|
||||
key = "{#separator}│ {#keys} Uptime";
|
||||
}
|
||||
{
|
||||
type = "packages";
|
||||
key = "{#separator}│ {#keys} Packages";
|
||||
# format = "{all}";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "{#1}│";
|
||||
}
|
||||
|
||||
# Desktop Environment
|
||||
{
|
||||
type = "custom";
|
||||
format = "{#1}│ {#}Desktop Environment";
|
||||
}
|
||||
{
|
||||
type = "de";
|
||||
key = "{#separator}│ {#keys} DE";
|
||||
}
|
||||
{
|
||||
type = "wm";
|
||||
key = "{#separator}│ {#keys} WM";
|
||||
}
|
||||
{
|
||||
type = "wmtheme";
|
||||
key = "{#separator}│ {#keys} Theme";
|
||||
}
|
||||
{
|
||||
type = "display";
|
||||
key = "{#separator}│ {#keys} Resolution";
|
||||
}
|
||||
{
|
||||
type = "shell";
|
||||
key = "{#separator}│ {#keys} Shell";
|
||||
}
|
||||
{
|
||||
type = "terminalfont";
|
||||
key = "{#separator}│ {#keys} Font";
|
||||
}
|
||||
{
|
||||
type = "icons";
|
||||
key = "{#separator}│ {#keys} Icons";
|
||||
}
|
||||
{
|
||||
type = "cursor";
|
||||
key = "{#separator}│ {#keys} Cursor";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "{#1}│";
|
||||
}
|
||||
|
||||
# Hardware Information
|
||||
{
|
||||
type = "custom";
|
||||
format = "{#1}│ {#}Hardware Information";
|
||||
}
|
||||
{
|
||||
type = "board";
|
||||
key = "{#separator}│ {#keys} Board";
|
||||
}
|
||||
{
|
||||
type = "cpu";
|
||||
key = "{#separator}│ {#keys} CPU";
|
||||
}
|
||||
{
|
||||
type = "gpu";
|
||||
key = "{#separator}│ {#keys} GPU";
|
||||
}
|
||||
{
|
||||
type = "memory";
|
||||
key = "{#separator}│ {#keys} Memory";
|
||||
}
|
||||
# {
|
||||
# type = "disk";
|
||||
# key = "{#separator}│ {#keys} Disk (/)";
|
||||
# folders = "/";
|
||||
# }
|
||||
# {
|
||||
# type = "disk";
|
||||
# key = "{#separator}│ {#keys} Disk (~/Games)";
|
||||
# folders = "/home/christoph/Games";
|
||||
# }
|
||||
{
|
||||
type = "btrfs";
|
||||
key = "{#separator}│ {#keys} BTRFS";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "{#1}│";
|
||||
}
|
||||
|
||||
# Colors Footer
|
||||
{
|
||||
type = "colors";
|
||||
key = "{#separator}╰─── {#1}";
|
||||
keyWidth = 6;
|
||||
symbol = "circle";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
fd.enable = true;
|
||||
|
||||
fzf = {
|
||||
|
@ -1,11 +1,12 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
headless,
|
||||
}: {
|
||||
enable = !headless;
|
||||
dunst.enable = !config.modules.hyprpanel.enable; # Disable for hyprpanel
|
||||
bars.enable = false;
|
||||
dynamicCursor.enable = true;
|
||||
dynamicCursor.enable = false;
|
||||
trails.enable = true;
|
||||
hyprspace.enable = true;
|
||||
|
||||
@ -37,6 +38,25 @@
|
||||
"$mainMod, XF86MonBrightnessDown" = ["exec, hyprctl hyprsunset temperature 5750"];
|
||||
"$mainMod, XF86MonBrightnessUp" = ["exec, hyprctl hyprsunset identity"];
|
||||
|
||||
"CTRL ALT, f" = let
|
||||
hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl";
|
||||
grep = "${pkgs.gnugrep}/bin/grep";
|
||||
awk = "${pkgs.gawk}/bin/gawk";
|
||||
notify = "${pkgs.libnotify}/bin/notify-send";
|
||||
|
||||
toggleMouseFocus = pkgs.writeScriptBin "hypr-toggle-mouse-focus" ''
|
||||
CURRENT=$(${hyprctl} getoption input:follow_mouse | ${grep} int | ${awk} -F' ' '{print $2}')
|
||||
|
||||
if [[ "$CURRENT" == "1" ]]; then
|
||||
${hyprctl} keyword input:follow_mouse 0
|
||||
${notify} "Disabled Mouse Focus!"
|
||||
else
|
||||
${hyprctl} keyword input:follow_mouse 1
|
||||
${notify} "Enabled Mouse Focus!"
|
||||
fi
|
||||
'';
|
||||
in ["exec, ${toggleMouseFocus}/bin/hypr-toggle-mouse-focus"];
|
||||
|
||||
# "CTRL ALT, t" = ["exec, bash -c 'systemctl --user restart hyprpanel.service'"];
|
||||
};
|
||||
|
||||
@ -64,7 +84,7 @@
|
||||
|
||||
autostart = {
|
||||
immediate = [
|
||||
"kitty"
|
||||
"kitty --hold fastfetch"
|
||||
"zeal"
|
||||
"nextcloud --background"
|
||||
"protonvpn-app"
|
||||
@ -84,12 +104,16 @@
|
||||
};
|
||||
};
|
||||
|
||||
windowrules = [];
|
||||
windowrules = [
|
||||
# Fix jetbrains tooltip flicker
|
||||
"float,class:^(jetbrains-.*)$,title:^(win[0-9]+)$"
|
||||
"nofocus,class:^(jetbrains-.*)$,title:^(win[0-9]+)$"
|
||||
];
|
||||
|
||||
workspacerules = {
|
||||
"1" = [];
|
||||
"2" = ["Zotero" "neovide" "code-url-handler"];
|
||||
"3" = ["obsidian" "unityhub" "Unity"];
|
||||
"3" = ["obsidian"];
|
||||
"4" = ["firefox" "Google-chrome" "chromium-browser" "org.qutebrowser.qutebrowser"];
|
||||
"5" = ["steam"];
|
||||
"6" = ["steam_app_(.+)"];
|
||||
@ -106,6 +130,7 @@
|
||||
title = "File Operation Progress";
|
||||
}
|
||||
{class = "ffplay";}
|
||||
{class = "Unity";}
|
||||
];
|
||||
|
||||
transparent-opacity = "0.75";
|
||||
|
@ -91,8 +91,7 @@
|
||||
# Add any extra libraries you want accessible to Rider here
|
||||
];
|
||||
|
||||
# TODO: Broken, jetbrains.jdk doesn't build (see nixpkgs #425328)
|
||||
unity-rider = pkgs.jetbrains.rider.overrideAttrs (attrs: {
|
||||
rider-unity = pkgs.jetbrains.rider.overrideAttrs (attrs: {
|
||||
postInstall =
|
||||
''
|
||||
# Wrap rider with extra tools and libraries
|
||||
@ -115,25 +114,27 @@
|
||||
});
|
||||
in {
|
||||
packages = with pkgs; [
|
||||
# quartus-prime-lite # Intel FPGA design software
|
||||
# Intel FPGA design software
|
||||
# quartus-prime-lite
|
||||
|
||||
# Don't want heavy IDE's on the laptop
|
||||
# jetbrains.clion
|
||||
# jetbrains.rust-rover
|
||||
# jetbrains.pycharm-professional
|
||||
# jetbrains.idea-ultimate
|
||||
# jetbrains.webstorm
|
||||
# jetbrains.rider
|
||||
|
||||
# Unity Stuff
|
||||
# TODO: Unity module
|
||||
# unityhub # TODO: Wait for https://nixpk.gs/pr-tracker.html?pr=422785
|
||||
# unity-rider
|
||||
# dotnetCore
|
||||
# mono
|
||||
unityhub
|
||||
rider-unity
|
||||
dotnetCore
|
||||
mono
|
||||
steam-run-free # nix-alien doesn't seem to run unity apps, this does...
|
||||
|
||||
blender
|
||||
(blender.override {cudaSupport = true;})
|
||||
godot_4
|
||||
obs-studio
|
||||
(obs-studio.override {cudaSupport = true;})
|
||||
kdePackages.kdenlive
|
||||
krita
|
||||
makemkv
|
||||
@ -144,19 +145,20 @@
|
||||
|
||||
file = lib.mkMerge [
|
||||
{
|
||||
# ".local/share/applications/jetbrains-rider.desktop".source = let
|
||||
# desktopFile = pkgs.makeDesktopItem {
|
||||
# name = "jetbrains-rider";
|
||||
# desktopName = "Rider";
|
||||
# exec = "\"${unity-rider}/bin/rider\"";
|
||||
# icon = "rider";
|
||||
# type = "Application";
|
||||
# # Don't show desktop icon in search or run launcher
|
||||
# extraConfig.NoDisplay = "true";
|
||||
# };
|
||||
# in "${desktopFile}/share/applications/jetbrains-rider.desktop";
|
||||
".local/share/applications/jetbrains-rider.desktop".source = let
|
||||
desktopFile = pkgs.makeDesktopItem {
|
||||
name = "jetbrains-rider";
|
||||
desktopName = "Rider";
|
||||
exec = "\"${rider-unity}/bin/rider\"";
|
||||
icon = "rider";
|
||||
type = "Application";
|
||||
# Don't show desktop icon in search or run launcher
|
||||
extraConfig.NoDisplay = "true";
|
||||
};
|
||||
in "${desktopFile}/share/applications/jetbrains-rider.desktop";
|
||||
|
||||
".var/app/com.valvesoftware.Steam/config/MangoHud/MangoHud.conf".source = ../../../config/mangohud/MangoHud.conf;
|
||||
".var/app/com.valvesoftware.Steam/config/MangoHud/MangoHud.conf".source =
|
||||
../../../config/mangohud/MangoHud.conf;
|
||||
}
|
||||
(lib.optionalAttrs (mylib.modules.contains config.home.packages pkgs.makemkv) {
|
||||
".MakeMKV/settings.conf".source =
|
||||
@ -213,7 +215,7 @@
|
||||
"com.usebottles.bottles"
|
||||
"io.github.lawstorant.boxflat"
|
||||
|
||||
"com.unity.UnityHub"
|
||||
# "com.unity.UnityHub"
|
||||
];
|
||||
|
||||
overrides = {
|
||||
|
@ -34,10 +34,10 @@ in {
|
||||
theme[hi_fg]=${color.hexS.accent}
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]=${color.hexS.surface1}
|
||||
theme[selected_bg]=${color.hexS.accentDim}
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]=${color.hexS.accent}
|
||||
theme[selected_fg]=${color.hexS.accentText}
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]=${color.hexS.overlay0}
|
||||
|
@ -248,7 +248,7 @@
|
||||
# rotate - rotate the cursor based on movement direction
|
||||
# stretch - stretch the cursor shape based on direction and velocity
|
||||
# none - do not change the cursors behaviour
|
||||
mode = "tilt";
|
||||
mode = "rotate";
|
||||
|
||||
# minimum angle difference in degrees after which the shape is changed
|
||||
# smaller values are smoother, but more expensive for hw cursors
|
||||
|
@ -28,12 +28,13 @@ in {
|
||||
"bar.autoHide" = "never";
|
||||
|
||||
# https://github.com/Jas-SinghFSU/HyprPanel/blob/master/src/configuration/modules/config/bar/layouts/index.ts
|
||||
# TODO: To module option
|
||||
# TODO: This should contain battery etc. for laptop
|
||||
"bar.layouts" = {
|
||||
"HDMI-A-1" = {
|
||||
"left" = ["workspaces" "windowtitle"];
|
||||
"middle" = ["media"]; # "cava"
|
||||
"right" = ["volume" "network" "bluetooth" "cpu" "ram" "storage" "clock" "systray" "notifications"];
|
||||
"right" = ["volume" "network" "cpu" "ram" "storage" "clock" "systray" "notifications"]; # "bluetooth"
|
||||
};
|
||||
"DP-1" = {
|
||||
"left" = ["workspaces" "windowtitle"];
|
||||
@ -282,7 +283,12 @@ in {
|
||||
"theme.bar.buttons.clock.spacing" = "6px";
|
||||
"theme.bar.buttons.clock.text" = "#${color.hex.accentText}";
|
||||
|
||||
# TODO: To module option
|
||||
# https://github.com/Jas-SinghFSU/HyprPanel/blob/master/src/configuration/modules/config/bar/systray/index.ts
|
||||
"bar.systray.ignore" = [
|
||||
"Fcitx" # Keyboard indicator
|
||||
]; # Middle click the tray icon to show a notification with the app name :)
|
||||
"bar.systray.customIcons" = {};
|
||||
|
||||
# https://github.com/Jas-SinghFSU/HyprPanel/blob/master/src/configuration/modules/theme/bar/buttons/systray.ts
|
||||
"theme.bar.buttons.systray.background" = "#${color.hex.blue}";
|
||||
|
@ -62,21 +62,7 @@ in {
|
||||
background-color = mkLiteral trans;
|
||||
};
|
||||
|
||||
"message" = {
|
||||
background-color = mkLiteral trans;
|
||||
};
|
||||
|
||||
"error-message" = {
|
||||
background-color = mkLiteral trans;
|
||||
margin = mkLiteral "0px 0px 10px 0px";
|
||||
};
|
||||
|
||||
"textbox" = {
|
||||
background-color = mkLiteral trans;
|
||||
padding = 6;
|
||||
margin = mkLiteral "10px 10px 0px 10px";
|
||||
border-radius = 3;
|
||||
};
|
||||
# TOP INPUT BAR START
|
||||
|
||||
"inputbar" = {
|
||||
children = builtins.map mkLiteral ["prompt" "entry"];
|
||||
@ -101,6 +87,26 @@ in {
|
||||
border-color = mkLiteral color.hexS.accentHl;
|
||||
};
|
||||
|
||||
# MESSAGEBOX (usually not visible)
|
||||
|
||||
"message" = {
|
||||
background-color = mkLiteral trans;
|
||||
};
|
||||
|
||||
"error-message" = {
|
||||
background-color = mkLiteral trans;
|
||||
margin = mkLiteral "0px 0px 10px 0px";
|
||||
};
|
||||
|
||||
"textbox" = {
|
||||
background-color = mkLiteral trans;
|
||||
padding = 6;
|
||||
margin = mkLiteral "10px 10px 0px 10px";
|
||||
border-radius = 3;
|
||||
};
|
||||
|
||||
# LISTVIEW
|
||||
|
||||
"listview" = {
|
||||
# border = mkLiteral "0px 0px 0px";
|
||||
padding = 0;
|
||||
@ -109,7 +115,7 @@ in {
|
||||
background-color = mkLiteral trans;
|
||||
border = mkLiteral "2 solid 2 solid 2 solid 2 solid";
|
||||
border-radius = 3;
|
||||
border-color = mkLiteral color.hexS.accentHl;
|
||||
border-color = mkLiteral color.hexS.accentDim;
|
||||
};
|
||||
|
||||
"element" = {
|
||||
@ -125,7 +131,7 @@ in {
|
||||
};
|
||||
|
||||
"element selected" = {
|
||||
background-color = mkLiteral color.hexS.accentHl;
|
||||
background-color = mkLiteral color.hexS.accentDim;
|
||||
text-color = mkLiteral color.hexS.accentText;
|
||||
};
|
||||
};
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
inputs,
|
||||
nixpkgs,
|
||||
pkgs-stable,
|
||||
...
|
||||
}: let
|
||||
# Taken from https://github.com/Misterio77/nix-config/blob/main/overlay/default.nix
|
||||
@ -11,14 +12,39 @@
|
||||
pkgs = final;
|
||||
};
|
||||
|
||||
modifications = final: prev: rec {
|
||||
modifications = final: prev: {
|
||||
# Only kept as an example, has nothing to do with current dconf-editor-wrapped derivation
|
||||
# dconf-editor-wrapped = import ./dconf-editor.nix { inherit final prev; };
|
||||
# Use dconf-editor.nix: { final, prev }: final.<package>.overrideAttrs (oldAttrs: { ... }) or sth similar
|
||||
|
||||
# Overriding specific packages from a different nixpkgs (e.g. a pull request)
|
||||
# can be done like this. Note that this creates an additional nixpkgs instance.
|
||||
# https://github.com/NixOS/nixpkgs/issues/418451
|
||||
# unityhub_3_13 =
|
||||
# (import inputs.unityhub-pinned {
|
||||
# config.allowUnfree = true;
|
||||
# localSystem = {inherit (prev) system;};
|
||||
# }).unityhub;
|
||||
|
||||
# TODO: Remove this after 0.15.1 hits nixpkgs
|
||||
neovide = prev.neovide.overrideAttrs (finalAttrs: prevAttrs: {
|
||||
version = "0.15.1";
|
||||
src = prev.fetchFromGitHub {
|
||||
owner = "neovide";
|
||||
repo = "neovide";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-2iV3g6tcCkMF7sFG/GZDz3czPZNIDi6YLfrVzYO9jYI=";
|
||||
};
|
||||
cargoHash = "sha256-YlHAcUCRk6ROg5yXIumHfsiR/2TrsSzbuXz/IQK7sEo=";
|
||||
cargoDeps = prev.rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs) pname src version;
|
||||
hash = finalAttrs.cargoHash;
|
||||
};
|
||||
});
|
||||
|
||||
# TODO: Remove this after jetbrains.jdk builds again (nixpkgs issue 425328)
|
||||
jetbrains.rider = pkgs-stable.jetbrains.rider;
|
||||
};
|
||||
in
|
||||
# TODO: I have absolutely no clue what happens here lol
|
||||
# Basically we need some sort of list of all overlays that can be imported from the flake
|
||||
# in the overlays = [ ... ] section of the pkgs = import nixpkgs { ... } configuration
|
||||
# Somehow this library function turns additions/modifications into that
|
||||
# Composes a list of overlays and returns a single overlay function that combines them.
|
||||
nixpkgs.lib.composeManyExtensions [additions modifications]
|
||||
|
@ -43,6 +43,12 @@ in {
|
||||
mkRFile = mkFile "root";
|
||||
mkUDir = mkDir "${username}";
|
||||
mkUFile = mkFile "${username}";
|
||||
# TODO: sth. like this, make options for configdirs/sharedirs/statedirs/homedirs
|
||||
# populate options from respective modules, not here...
|
||||
# mkConfigDirs = dirs:
|
||||
# dirs
|
||||
# |> builtins.map (dir: ".config/${dir}")
|
||||
# |> builtins.map mkUDir # NOTE: mkUDir has wrong arg order
|
||||
in
|
||||
lib.mkIf impermanence.enable {
|
||||
# TODO: Create options to allow host-specific impermanence setup
|
||||
@ -80,13 +86,13 @@ in {
|
||||
files = [
|
||||
# NOTE: Don't put files generated/linked by HM here (they're already managed)
|
||||
|
||||
# TODO: These files are not mounted?
|
||||
(mkUFile ".config/.tidal-dl.json" m755)
|
||||
(mkUFile ".config/.tidal-dl.token.json" m755)
|
||||
(mkUFile ".config/QtProject.conf" m755) # KeePassXC
|
||||
# TODO: Specifying files here (e.g. .config/QtProject.conf) doesn't seem to work
|
||||
# They won't get mounted, also they can't be unmounted (because they're not mounted),
|
||||
# which leads to /home not being unmounted correctly during shutdown...
|
||||
];
|
||||
|
||||
directories = [
|
||||
# Home directory
|
||||
(mkUDir "Downloads" m755)
|
||||
(mkUDir "Documents" m755)
|
||||
(mkUDir "GitRepos" m755)
|
||||
@ -98,26 +104,35 @@ in {
|
||||
(mkUDir "Unity" m755)
|
||||
(mkUDir "Videos" m755)
|
||||
|
||||
# Secrets
|
||||
(mkUDir ".gnupg" m755) # m600
|
||||
(mkUDir ".secrets" m755) # m644
|
||||
(mkUDir ".ssh" m755) # m644
|
||||
|
||||
# The shit some applications add to ~/ without asking
|
||||
(mkUDir ".android" m755) # Unity
|
||||
(mkUDir ".gradle" m755) # Unity
|
||||
(mkUDir ".java" m755) # Unity/Rider
|
||||
(mkUDir ".mozilla/firefox" m755) # TODO: Remove this someday
|
||||
(mkUDir ".mozilla/native-messaging-hosts" m755)
|
||||
(mkUDir ".nix-package-search" m755)
|
||||
(mkUDir ".nv" m755) # Unity
|
||||
(mkUDir ".ollama" m755)
|
||||
(mkUDir ".plastic4" m755) # Unity
|
||||
(mkUDir ".var/app" m755)
|
||||
(mkUDir ".vim/undo" m755)
|
||||
(mkUDir ".zotero" m755)
|
||||
|
||||
# Cache that's actually useful
|
||||
(mkUDir ".cache/fish/generated_completions" m755)
|
||||
(mkUDir ".cache/nix-index" m755)
|
||||
(mkUDir ".cache/nix-search-tv" m755)
|
||||
(mkUDir ".cache/nvim" m755)
|
||||
|
||||
# Config
|
||||
(mkUDir ".config/.android" m755) # Unity
|
||||
(mkUDir ".config/beets" m755)
|
||||
(mkUDir ".config/blender" m755)
|
||||
(mkUDir ".config/chromium" m755) # TODO: Remove this someday
|
||||
(mkUDir ".config/Ferdium" m755)
|
||||
(mkUDir ".config/fish/completions" m755)
|
||||
@ -128,18 +143,22 @@ in {
|
||||
(mkUDir ".config/Msty" m755)
|
||||
(mkUDir ".config/Nextcloud" m755)
|
||||
(mkUDir ".config/obsidian" m755)
|
||||
(mkUDir ".config/obs-studio" m755)
|
||||
(mkUDir ".config/Signal" m755)
|
||||
(mkUDir ".config/singularitygroup-hotreload" m755) # Unity
|
||||
(mkUDir ".config/tidal-hifi" m755)
|
||||
(mkUDir ".config/tidal_dl_ng" m755)
|
||||
(mkUDir ".config/unity3d" m755) # Unity
|
||||
(mkUDir ".config/unityhub" m755) # Unity
|
||||
(mkUDir ".config/vlc" m755)
|
||||
(mkUDir ".config/Zeal" m755)
|
||||
|
||||
# Share
|
||||
(mkUDir ".local/share/direnv" m755)
|
||||
(mkUDir ".local/share/docker" m755)
|
||||
(mkUDir ".local/share/fish" m755)
|
||||
(mkUDir ".local/share/flatpak" m755)
|
||||
(mkUDir ".local/share/JetBrains" m755) # Unity/Rider
|
||||
(mkUDir ".local/share/JetBrains" m755) # Unity
|
||||
(mkUDir ".local/share/hyprland" m755)
|
||||
(mkUDir ".local/share/keyrings" m755) # m700
|
||||
(mkUDir ".local/share/mime" m755)
|
||||
@ -147,9 +166,12 @@ in {
|
||||
(mkUDir ".local/share/nvim" m755)
|
||||
(mkUDir ".local/share/qutebrowser" m755)
|
||||
(mkUDir ".local/share/systemd" m755)
|
||||
(mkUDir ".local/share/unity3d" m755) # Unity
|
||||
(mkUDir ".local/share/zoxide" m755)
|
||||
|
||||
# State
|
||||
(mkUDir ".local/state/astal/notifd" m755)
|
||||
(mkUDir ".local/state/home-manager/gc-roots" m755) # nix-flatpak stores its state there
|
||||
(mkUDir ".local/state/lazygit" m755)
|
||||
(mkUDir ".local/state/nix" m755)
|
||||
(mkUDir ".local/state/nvim" m755)
|
||||
|
@ -26,9 +26,7 @@ in {
|
||||
defaultSopsFile = ./secrets.yaml;
|
||||
|
||||
age = {
|
||||
# NOTE: Sops needs the keys before impermanence kicks in
|
||||
# so we have to link to /persist directly...
|
||||
keyFile = "/persist/home/${username}/.secrets/age/age.key";
|
||||
keyFile = lib.mkDefault "/home/${username}/.secrets/age/age.key";
|
||||
generateKey = false;
|
||||
sshKeyPaths = [];
|
||||
};
|
||||
|
@ -61,8 +61,8 @@
|
||||
};
|
||||
|
||||
allowedTCPPorts = [
|
||||
# 7777 # AvaTalk
|
||||
# 12777 # AvaTalk
|
||||
7777 # AvaTalk
|
||||
12777 # AvaTalk
|
||||
# 31431 # Parsec
|
||||
5173 # SvelteKit
|
||||
8090 # PocketBase
|
||||
@ -70,8 +70,8 @@
|
||||
];
|
||||
|
||||
allowedUDPPorts = [
|
||||
# 7777 # AvaTalk
|
||||
# 12777 # AvaTalk
|
||||
7777 # AvaTalk
|
||||
12777 # AvaTalk
|
||||
# 31431 # Parsec
|
||||
5173 # SvelteKit
|
||||
8090 # PocketBase
|
||||
@ -85,6 +85,10 @@
|
||||
];
|
||||
};
|
||||
|
||||
# NOTE: Sops needs the keys before impermanence kicks in
|
||||
# so we have to link to /persist directly...
|
||||
sops.age.keyFile = "/persist/home/${username}/.secrets/age/age.key";
|
||||
|
||||
sops.templates."makemkv-settings.conf" = {
|
||||
owner = config.users.users.${username}.name;
|
||||
content = ''
|
||||
|
@ -43,9 +43,11 @@
|
||||
|
||||
blacklistedKernelModules = ["k10temp"]; # Disable in favor of zenpower
|
||||
|
||||
# Enable AMD pstate
|
||||
# https://github.com/NixOS/nixos-hardware/blob/master/common/cpu/amd/pstate.nix
|
||||
kernelParams = ["amd_pstate=active"];
|
||||
kernelParams = [
|
||||
# Enable AMD pstate
|
||||
# https://github.com/NixOS/nixos-hardware/blob/master/common/cpu/amd/pstate.nix
|
||||
"amd_pstate=active"
|
||||
];
|
||||
|
||||
# extraModprobeConfig = ''
|
||||
# options iwlwifi 11n_disable=1 wd_disable=0
|
||||
@ -117,9 +119,9 @@
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
# package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
|
||||
modesetting.enable = true; # Not officially supported by NVidia but needed for wayland
|
||||
open = true;
|
||||
nvidiaSettings = false; # Those are for x-server
|
||||
modesetting.enable = true; # Required for wayland
|
||||
};
|
||||
|
||||
# video.hidpi.enable = lib.mkDefault true; # No longer has any effect
|
||||
|
@ -6,7 +6,7 @@
|
||||
}: let
|
||||
vectorchordVersion = "0.4.2";
|
||||
pgvectorsVersion = "0.2.0";
|
||||
immichVersion = "1.135.3";
|
||||
immichVersion = "1.136.0";
|
||||
in {
|
||||
virtualisation.oci-containers.containers = {
|
||||
immich-database = {
|
||||
@ -103,7 +103,7 @@ in {
|
||||
};
|
||||
|
||||
extraOptions = [
|
||||
# "--privileged"
|
||||
"--privileged"
|
||||
"--device=nvidia.com/gpu=all"
|
||||
"--net=behind-nginx"
|
||||
];
|
||||
|
@ -43,7 +43,7 @@ in {
|
||||
};
|
||||
|
||||
extraOptions = [
|
||||
# "--privileged"
|
||||
"--privileged"
|
||||
"--device=nvidia.com/gpu=all"
|
||||
"--net=behind-nginx"
|
||||
];
|
||||
|