Compare commits

...

9 Commits

Author SHA1 Message Date
37b65c6b7f update monitors 2025-06-29 14:35:51 +02:00
8ba3365456 update aero monitor 2025-06-29 14:32:29 +02:00
56f3c3c5e9 update hyprland display stuff 2025-06-29 14:25:08 +02:00
86025dc787 add prism launcher 2025-06-29 11:52:53 +02:00
8cd05c1d8f update system 2025-06-29 11:09:39 +02:00
4103176fa4 use lix 2025-06-20 17:59:20 +02:00
d3de8874bc refactor: restructure 2025-06-20 17:11:43 +02:00
05b437dbf8 update system 2025-06-20 13:14:05 +02:00
62639b6002 feat: update system 2025-05-29 19:56:55 +02:00
50 changed files with 394 additions and 212 deletions

142
flake.lock generated
View File

@@ -23,7 +23,7 @@
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
@@ -39,6 +39,39 @@
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_3"
},
"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"
}
},
"flakey-profile": {
"locked": {
"lastModified": 1712898590,
"narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
"owner": "lf-",
"repo": "flakey-profile",
"rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
"type": "github"
},
"original": {
"owner": "lf-",
"repo": "flakey-profile",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -46,11 +79,11 @@
]
},
"locked": {
"lastModified": 1746317522,
"narHash": "sha256-/jZ4Wd4HHUEWPSlNj48k1E4Mh+1fUbwI/vSlPPIMG3U=",
"lastModified": 1749479111,
"narHash": "sha256-0cn4NGnYR3n0m8FPrt+pW817Cedi4vwOw3SgJaTcdcg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "621986fed37c5d0cb8df010ed8369694dc47c09b",
"rev": "35e1f5a7c29f2b05e8f53177f6b5c71108c5f4c3",
"type": "github"
},
"original": {
@@ -73,26 +106,61 @@
]
},
"locked": {
"lastModified": 1737371634,
"narHash": "sha256-fTVAWzT1UMm1lT+YxHuVPtH+DATrhYfea3B0MxG/cGw=",
"lastModified": 1748294338,
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "a1176e2a10ce745ff8f63e4af124ece8fe0b1648",
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.0.7",
"ref": "v0.0.8",
"repo": "ixx",
"type": "github"
}
},
"lix": {
"flake": false,
"locked": {
"lastModified": 1746827285,
"narHash": "sha256-hsFe4Tsqqg4l+FfQWphDtjC79WzNCZbEFhHI8j2KJzw=",
"rev": "47aad376c87e2e65967f17099277428e4b3f8e5a",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/47aad376c87e2e65967f17099277428e4b3f8e5a.tar.gz?rev=47aad376c87e2e65967f17099277428e4b3f8e5a"
},
"original": {
"type": "tarball",
"url": "https://git.lix.systems/lix-project/lix/archive/2.93.0.tar.gz"
}
},
"lix-module": {
"inputs": {
"flake-utils": "flake-utils",
"flakey-profile": "flakey-profile",
"lix": "lix",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1746838955,
"narHash": "sha256-11R4K3iAx4tLXjUs+hQ5K90JwDABD/XHhsM9nkeS5N8=",
"rev": "cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz"
}
},
"matugen": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems"
"systems": "systems_2"
},
"locked": {
"lastModified": 1716548249,
@@ -127,11 +195,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1746232882,
"narHash": "sha256-MHmBH2rS8KkRRdoU/feC/dKbdlMkcNkB5mwkuipVHeQ=",
"lastModified": 1749285348,
"narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "7a2622e2c0dbad5c4493cb268aba12896e28b008",
"rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
"type": "github"
},
"original": {
@@ -147,14 +215,15 @@
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch"
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_4"
},
"locked": {
"lastModified": 1746309817,
"narHash": "sha256-oqOpTyjdeY+LP+WiU9LxGdZ/bZ9YK7MNzNMDUw98kPM=",
"lastModified": 1749420898,
"narHash": "sha256-QiB3xDyHuj2VzS6AaALTeikLt6EsZyMjDRmzb4y2vFM=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "c978122396a4208bf1965d346b7456e7256fe70c",
"rev": "2b6f694b48f43bbd89dcc21e8aa7aa676eb18eb8",
"type": "github"
},
"original": {
@@ -165,7 +234,7 @@
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"flake-utils": "flake-utils_2",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
@@ -173,11 +242,11 @@
]
},
"locked": {
"lastModified": 1745046075,
"narHash": "sha256-8v4y6k16Ra/fiecb4DxhsoOGtzLKgKlS+9/XJ9z0T2I=",
"lastModified": 1748298102,
"narHash": "sha256-PP11GVwUt7F4ZZi5A5+99isuq39C59CKc5u5yVisU/U=",
"owner": "NuschtOS",
"repo": "search",
"rev": "066afe8643274470f4a294442aadd988356a478f",
"rev": "f8a1c221afb8b4c642ed11ac5ee6746b0fe1d32f",
"type": "github"
},
"original": {
@@ -189,6 +258,7 @@
"root": {
"inputs": {
"home-manager": "home-manager",
"lix-module": "lix-module",
"matugen": "matugen",
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs",
@@ -196,6 +266,21 @@
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@@ -210,7 +295,22 @@
"type": "github"
}
},
"systems_2": {
"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"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",

View File

@@ -1,6 +1,10 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
@@ -21,6 +25,7 @@
nixpkgs,
home-manager,
nixvim,
lix-module,
matugen,
nix-flatpak,
...
@@ -36,7 +41,6 @@
allowUnfree = true;
allowUnsupportedSystem = true;
experimental-features = "nix-command flakes";
permittedInsecurePackages = [ "nix-2.25.0pre20240807_cfe66dbe" ];
};
overlays = [
(final: prev: {
@@ -68,6 +72,7 @@
./modules/nixos
./hosts/${hostname}
home-manager.nixosModules.home-manager
lix-module.nixosModules.default
nix-flatpak.nixosModules.nix-flatpak
{
_module.args =
@@ -86,20 +91,25 @@
if config.hardware.nvidia.prime.offload.enable then GPUOffloadApp pkg desktopName else pkg;
in
{
inherit username gpu-offload;
inherit username hostname gpu-offload;
};
nix.nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
networking.hostName = hostname;
services.flatpak.enable = true;
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
inherit username inputs;
inherit username hostname inputs;
};
sharedModules = [
matugen.homeManagerModules.default
nix-flatpak.homeManagerModules.nix-flatpak
nixvim.homeManagerModules.nixvim
./modules/home-manager/modules/nixvim
];
users.${username} = {
imports = [
matugen.homeManagerModules.default
nix-flatpak.homeManagerModules.nix-flatpak
./modules/home-manager
./hosts/${hostname}/home.nix
];

View File

@@ -3,7 +3,6 @@
imports = [ ./hardware-configuration.nix ];
nix = {
package = pkgs.nixVersions.latest;
settings.experimental-features = [
"nix-command"
"flakes"
@@ -88,8 +87,8 @@
audio.preset.pipewire.enable = true;
cc1.enable = true;
fv43u.enable = true;
virtual-camera.enable = true;
hid-fanatecff.enable = true;
# virtual-camera.enable = true;
# hid-fanatecff.enable = true;
enableAllFirmware = true;
sane.enable = true;
@@ -111,7 +110,15 @@
nerd-fonts.enable = true;
};
programs.zsh.enable = true;
programs = {
zsh.enable = true;
wireshark = {
enable = true;
package = pkgs.wireshark;
usbmon.enable = true;
};
};
security.sudo.configFile = ''
Defaults env_reset,pwfeedback,passprompt="󰟵 "
'';
@@ -119,6 +126,7 @@
users.users.${username} = {
isNormalUser = true;
extraGroups = [
"wireshark"
"scanner"
"lp"
"storage"

View File

@@ -8,7 +8,6 @@
imports = [ ./hardware-configuration.nix ];
nix = {
package = pkgs.nixVersions.latest;
settings.experimental-features = [
"nix-command"
"flakes"

View File

@@ -9,7 +9,13 @@
};
};
programs.zoxide.enable = true;
home.packages = with pkgs; [ blueman ];
home = {
packages = with pkgs; [ blueman ];
};
wayland.windowManager.hyprland.settings.monitor = [
"eDP-1,3840x2160@60,0x0,2"
"HDMI-A-4,2560x1440@75,1920x-768,1"
];
systemd.user.services = {
nm-applet = {
Unit = {

View File

@@ -1,7 +1,6 @@
{
username,
osConfig,
inputs,
...
}:
{
@@ -11,9 +10,9 @@
homeDirectory = "/home/${username}";
};
imports = [
inputs.nixvim.homeManagerModules.nixvim
./programs/nixvim/presets
./programs/neovide.nix
./programs/nixvim.nix
./programs/git.nix
./packages
./programs
./services

View File

@@ -19,6 +19,7 @@ in
wayland.windowManager.hyprland = {
enable = true;
settings = {
general.allow_tearing = true;
input = {
accel_profile = "flat";
kb_layout = osConfig.services.xserver.xkb.layout;
@@ -56,6 +57,7 @@ in
layers_hog_keyboard_focus = false;
disable_hyprland_logo = true;
disable_splash_rendering = true;
vrr = lib.mkDefault 2;
};
input.touchpad.natural_scroll = true;
gestures.workspace_swipe = true;

View File

@@ -40,6 +40,13 @@ in
action.__raw = # lua
"function() vim.diagnostic.open_float(nil) end";
}
{
key = "<leader>sa";
mode = "n";
options.silent = true;
action.__raw = # lua
"require('actions-preview').code_actions";
}
{
key = "<leader>sx";
mode = "n";
@@ -67,10 +74,12 @@ in
}
];
plugins = {
actions-preview.enable = true;
lsp = {
enable = true;
inlayHints = false;
};
lsp-signature.enable = true;
telescope = {
enable = true;
keymaps = {
@@ -79,7 +88,6 @@ in
"<leader>si" = "lsp_implementations";
"<leader>sw" = "lsp_workspace_symbols";
"<leader>st" = "lsp_type_definitions";
"<leader>sa" = "quickfix";
};
};
inc-rename.enable = true;

View File

@@ -1,9 +1,15 @@
{ lib, pkgs, ... }:
{
lib,
pkgs,
hostname,
username,
...
}:
{
options.programs.nixvim = lib.mkOption {
type = pkgs.lib.types.submoduleWith {
specialArgs = {
inherit pkgs;
inherit pkgs hostname username;
};
modules = [
./aerial.nix

View File

@@ -27,6 +27,7 @@ in
};
};
lsp.servers = {
cmake.enable = true;
clangd = {
enable = true;
cmd = [

View File

@@ -0,0 +1,48 @@
{
lib,
pkgs,
hostname,
config,
...
}:
let
cfg = config.presets.languages.nix;
in
{
options.presets.languages.nix = {
enable = lib.mkEnableOption "Nix";
};
config = lib.mkIf cfg.enable {
plugins = {
conform-nvim.settings.formatters_by_ft.nix = [ "nixfmt" ];
lsp.servers = {
nixd = {
enable = true;
settings = {
nixpkgs.expr = # nix
"import (builtins.getFlake (builtins.toString ./.)).inputs.nixpkgs { }";
formatting.command = [ "nixfmt" ];
options = {
nixos.expr = # nix
"(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${hostname}.options";
home-manager.expr = # nix
"(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${hostname}.options.home-manager.users.type.getSubOptions []";
};
};
};
nil_ls = {
enable = false;
settings = {
formatting.command = [ "nixfmt" ];
nix = {
maxMemoryMB = 8192;
flake.autoEvalInputs = true;
};
};
};
};
};
extraPackages = [ pkgs.nixfmt-rfc-style ];
};
}

View File

@@ -28,6 +28,8 @@
handbrake
metadata-cleaner
prismlauncher
# chat apps
vesktop
discord
@@ -53,7 +55,7 @@
# development
# TODO: .NET 6 avalonia-ilspy
# ghidra
ghidra
# utils
libqalculate

View File

@@ -14,8 +14,6 @@
pinentry = pkgs.pinentry-gnome3;
};
};
git = import ./git.nix;
nixvim = import ./nixvim { inherit pkgs; };
gpg.enable = true;
btop = {
enable = true;

View File

@@ -1,23 +1,26 @@
{ ... }:
{
enable = true;
userName = "Thea Schöbl";
userEmail = "dev@theaninova.de";
signing = {
key = "6C9E EFC5 1AE0 0131 78DE B9C8 68FF FB1E C187 88CA";
signByDefault = true;
};
extraConfig = {
pull.rebase = true;
init.defaultBranch = "main";
merge = {
tool = "nvim-mergetool";
conflictstyle = "diff3";
programs.git = {
enable = true;
userName = "Thea Schöbl";
userEmail = "dev@theaninova.de";
signing = {
key = "6C9E EFC5 1AE0 0131 78DE B9C8 68FF FB1E C187 88CA";
signByDefault = true;
};
mergetool.nvim-mergetool = {
cmd = # sh
''nvim -f -c "MergetoolStart" "$MERGED" "$BASE" "$LOCAL" "$REMOTE"'';
trustExitCode = true;
extraConfig = {
pull.rebase = true;
init.defaultBranch = "main";
merge = {
tool = "nvim-mergetool";
conflictstyle = "diff3";
};
mergetool.nvim-mergetool = {
cmd = # sh
''nvim -f -c "MergetoolStart" "$MERGED" "$BASE" "$LOCAL" "$REMOTE"'';
trustExitCode = true;
};
mergetool.prompt = false;
};
mergetool.prompt = false;
};
}

View File

@@ -0,0 +1,129 @@
{ ... }:
{
programs.nixvim = {
enable = true;
defaultEditor = true;
vimAlias = true;
opts = {
number = true;
relativenumber = true;
tabstop = 2;
softtabstop = 2;
shiftwidth = 2;
expandtab = true;
smartindent = true;
signcolumn = "yes";
scrolloff = 12;
hlsearch = false;
incsearch = true;
updatetime = 50;
fillchars.eob = " ";
};
clipboard = {
register = "unnamedplus";
providers.wl-copy.enable = true;
};
globals.mapleader = ";";
presets = {
auto-save.enable = true;
auto-format.enable = true;
harpoon.enable = false;
lazygit.enable = true;
mergetool.enable = true;
trouble.enable = false;
undotree.enable = true;
aerial.enable = true;
base = {
completion = {
enable = true;
copilot = true;
};
diagnostics.enable = true;
coverage.enable = true;
find.enable = true;
formatting = {
enable = true;
prettier = true;
};
spellcheck.enable = true;
status-line.enable = true;
syntax.enable = true;
tree.enable = true;
};
languages = {
angular.enable = true;
c = {
enable = true;
};
css = {
enable = true;
stylelint = true;
};
dart.enable = true;
js = {
enable = true;
eslint = true;
npm = true;
};
lua.enable = true;
nix.enable = true;
python.enable = true;
rust.enable = true;
shell.enable = true;
svelte.enable = true;
};
remaps = {
half-page-scroll.enable = true;
no-accidental-macro.enable = true;
paste-keep-buffer.enable = true;
wrapped-line-nav.enable = true;
};
};
plugins = {
which-key.enable = true;
schemastore.enable = true;
comment.enable = true;
debugprint.enable = true;
todo-comments.enable = true;
origami.enable = false;
nvim-surround.enable = true;
hardtime = {
enable = true;
settings = {
disable_mouse = false;
disabled_keys = {
"<Up>".__raw = "false";
"<Down>".__raw = "false";
"<Left>".__raw = "false";
"<Right>".__raw = "false";
};
};
};
treesitter-context = {
enable = false; # TODO: looks weird with Neovide
settings = {
line_numbers = false;
};
};
lsp.servers = {
html.enable = true;
svelte.enable = true;
dockerls.enable = true;
yamlls.enable = true;
jsonls.enable = true;
taplo.enable = true;
};
};
};
}

View File

@@ -1,115 +0,0 @@
{ pkgs }:
{
enable = true;
defaultEditor = true;
vimAlias = true;
opts = {
number = true;
relativenumber = true;
tabstop = 2;
softtabstop = 2;
shiftwidth = 2;
expandtab = true;
smartindent = true;
signcolumn = "yes";
scrolloff = 12;
hlsearch = false;
incsearch = true;
updatetime = 50;
fillchars.eob = " ";
};
clipboard = {
register = "unnamedplus";
providers.wl-copy.enable = true;
};
globals.mapleader = ";";
presets = {
auto-save.enable = true;
auto-format.enable = true;
# harpoon.enable = true;
lazygit.enable = true;
mergetool.enable = true;
trouble.enable = true;
undotree.enable = true;
aerial.enable = true;
base = {
completion = {
enable = true;
copilot = true;
};
diagnostics.enable = true;
coverage.enable = true;
find.enable = true;
formatting = {
enable = true;
prettier = true;
};
spellcheck.enable = false;
status-line.enable = true;
syntax.enable = true;
tree.enable = true;
};
languages = {
angular.enable = true;
c = {
enable = true;
# cppcheck = true;
};
css = {
enable = true;
stylelint = true;
};
dart.enable = true;
js = {
enable = true;
eslint = true;
npm = true;
};
lua.enable = true;
nix.enable = true;
python.enable = true;
rust.enable = true;
shell.enable = true;
svelte.enable = true;
};
remaps = {
half-page-scroll.enable = true;
no-accidental-macro.enable = true;
paste-keep-buffer.enable = true;
wrapped-line-nav.enable = true;
};
};
plugins = {
vim-surround.enable = true;
which-key.enable = true;
schemastore.enable = true;
comment.enable = true;
debugprint.enable = true;
todo-comments.enable = true;
treesitter-context = {
enable = false; # TODO: looks weird with Neovide
settings = {
line_numbers = false;
};
};
lsp.servers = {
html.enable = true;
svelte.enable = true;
dockerls.enable = true;
yamlls.enable = true;
jsonls.enable = true;
taplo.enable = true;
};
};
}

View File

@@ -1,27 +0,0 @@
{
lib,
pkgs,
config,
...
}:
let
cfg = config.presets.languages.nix;
in
{
options.presets.languages.nix = {
enable = lib.mkEnableOption "Nix";
};
config = lib.mkIf cfg.enable {
plugins = {
conform-nvim.settings.formatters_by_ft.nix = [ "nixfmt" ];
none-ls = {
enable = true;
sources.diagnostics.statix.enable = true;
};
lsp.servers.nil_ls.enable = true;
nix.enable = true;
};
extraPackages = [ pkgs.nixfmt-rfc-style ];
};
}

View File

@@ -37,6 +37,8 @@ in
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland";
CLUTTER_BACKEND = "wayland";
# https://github.com/swaywm/sway/issues/6272
_JAVA_AWT_WM_NONREPARENTING = "1";
};
};
xdg.configFile."uwsm/env".source = pkgs.writeText "env" (

View File

@@ -49,18 +49,15 @@ in
DXVK_HDR = "1";
};
wayland.windowManager.hyprland.settings = {
general = {
layout = "master";
allow_tearing = true;
};
general.layout = "master";
master = {
orientation = "center";
slave_count_for_center_master = 0;
mfact = 0.4;
};
render.direct_scanout = 1;
# render.direct_scanout = 1;
monitor = [
"DP-3,3840x2160@144,0x0,1,bitdepth,10"
"DP-3,3840x2160@144,0x0,1,bitdepth,10,cm,auto"
"DP-3,addreserved,340,0,0,0"
];
xwayland.force_zero_scaling = true;

View File

@@ -24,11 +24,17 @@ in
];
home.packages = with pkgs; [
polkit_gnome
(gnome-keyring.overrideAttrs (oldAttrs: {
configureFlags = oldAttrs.configureFlags ++ [
"--disable-ssh-agent"
];
}))
(gnome-keyring.overrideAttrs (
{
configureFlags ? [ ],
...
}:
{
configureFlags = configureFlags ++ [
"--disable-ssh-agent"
];
}
))
];
/*
systemd.user.services = {