Compare commits

..

1 Commits

Author SHA1 Message Date
aad01c1271 Add nixos-unstable-small to temporarily override pyside6
All checks were successful
Run nix flake check / flake-check (push) Successful in 4m42s
2024-11-20 15:36:48 +01:00
52 changed files with 520 additions and 994 deletions

View File

@ -8,7 +8,6 @@ creation_rules:
key_groups:
- age:
- *admin_torjus
- *server_magicman
- path_regex: secrets/gunter/[^/]+\.(yaml|json|env|ini|toml)
key_groups:
- age:
@ -28,4 +27,3 @@ creation_rules:
key_groups:
- age:
- *admin_torjus
- *server_magicman

449
flake.lock generated
View File

@ -1,5 +1,77 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"inputs": {
"systems": "systems_5"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"ghettoptt": {
"inputs": {
"nixpkgs": [
@ -28,11 +100,11 @@
]
},
"locked": {
"lastModified": 1751384836,
"narHash": "sha256-7xRbl/VLXxE5DzJmk1wdKWJmPx8rAfNC/a6mXtqp5cc=",
"lastModified": 1732025103,
"narHash": "sha256-qjEI64RKvDxRyEarY0jTzrZMa8ebezh2DEZmJJrpVdo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "479f8889675770881033878a1c114fbfc6de7a4d",
"rev": "a46e702093a5c46e192243edbd977d5749e7f294",
"type": "github"
},
"original": {
@ -43,19 +115,18 @@
},
"huecli": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"pyproject-build-systems": "pyproject-build-systems",
"pyproject-nix": "pyproject-nix",
"uv2nix": "uv2nix"
"poetry2nix": "poetry2nix"
},
"locked": {
"lastModified": 1732927393,
"narHash": "sha256-S/StGXd2t8VvvnZ81uPyggc0dHfgHyrFMmXWkGhsJqg=",
"lastModified": 1728336978,
"narHash": "sha256-7FX4K8QBH/9jiYyCMs2JyCTzlx1/D5Cw6upaFThSVg4=",
"ref": "master",
"rev": "c2ff98ce55605e57370ea216300d0e58df602c26",
"revCount": 31,
"rev": "700ece0bada9833fcfd3b6ce698cd74bc00e4493",
"revCount": 22,
"type": "git",
"url": "https://git.t-juice.club/torjus/huecli"
},
@ -65,25 +136,48 @@
"url": "https://git.t-juice.club/torjus/huecli"
}
},
"natstonotify": {
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"huecli",
"poetry2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1739302828,
"narHash": "sha256-D6l5tAh1FDpdz9/tQC7kYhFPQzqI1HICwNh7fRejfrw=",
"ref": "master",
"rev": "bfcf518fe0b2fe19075667f7b22227376d102509",
"revCount": 7,
"type": "git",
"url": "https://git.t-juice.club/torjus/natstonotify"
"lastModified": 1703863825,
"narHash": "sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "5163432afc817cf8bd1f031418d1869e4c9d5547",
"type": "github"
},
"original": {
"ref": "master",
"type": "git",
"url": "https://git.t-juice.club/torjus/natstonotify"
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nix-github-actions_2": {
"inputs": {
"nixpkgs": [
"nixprstatus",
"poetry2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1720066371,
"narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "622f829f5fe69310a866c8a6cd07e747c44ef820",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nix-packages": {
@ -93,11 +187,11 @@
]
},
"locked": {
"lastModified": 1747129247,
"narHash": "sha256-twZe3IIZraF+OD8YUFiASuzCEqSUvyP2ZOftyEtmTW4=",
"lastModified": 1728153756,
"narHash": "sha256-kNpO8yC2MioSRc2SNxNM5egVvFjA2Ox0b4SAs6GnM8w=",
"ref": "master",
"rev": "4f44b54b23defabf4058d26951d8f549e2d76239",
"revCount": 30,
"rev": "2fc840c15280d2dd3da1aba7272243b4aa11e611",
"revCount": 21,
"type": "git",
"url": "https://git.t-juice.club/torjus/nix-packages"
},
@ -109,11 +203,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1751271578,
"narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=",
"lastModified": 1731676054,
"narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df",
"rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add",
"type": "github"
},
"original": {
@ -123,37 +217,52 @@
"type": "github"
}
},
"nixpkgs-stable": {
"nixpkgs-small": {
"locked": {
"lastModified": 1751211869,
"narHash": "sha256-1Cu92i1KSPbhPCKxoiVG5qnoRiKTgR5CcGSRyLpOd7Y=",
"lastModified": 1732007104,
"narHash": "sha256-qaWPxgLAvtIHTDcm0qJuc+WNYjcy4ZKigOyn2ag4ihM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b43c397f6c213918d6cfe6e3550abfe79b5d1c51",
"rev": "0705964c881cea8896474610188905ba41b59b08",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"ref": "nixos-unstable-small",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1731755305,
"narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixprstatus": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": [
"nixpkgs"
],
"pyproject-build-systems": "pyproject-build-systems_2",
"pyproject-nix": "pyproject-nix_2",
"uv2nix": "uv2nix_2"
"poetry2nix": "poetry2nix_2"
},
"locked": {
"lastModified": 1748349633,
"narHash": "sha256-SyFF/p3G7YsJH0p5jgeOqdtc3ehzGuI05ZqiJbZNAZA=",
"lastModified": 1729118937,
"narHash": "sha256-7xYCJXTh92OpKwfshYYnxrWmfNjqaH9SzQ0stuBARVM=",
"ref": "master",
"rev": "ef55b5b9478390b535fe708edfa297729ac75572",
"revCount": 60,
"rev": "58b113d934f5d62f27dc50439b89fece4eb621f5",
"revCount": 37,
"type": "git",
"url": "https://git.t-juice.club/torjus/nixprstatus"
},
@ -163,103 +272,53 @@
"url": "https://git.t-juice.club/torjus/nixprstatus"
}
},
"pyproject-build-systems": {
"poetry2nix": {
"inputs": {
"flake-utils": "flake-utils_2",
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"huecli",
"nixpkgs"
],
"pyproject-nix": [
"huecli",
"pyproject-nix"
],
"uv2nix": [
"huecli",
"uv2nix"
]
"systems": "systems_3",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1732506638,
"narHash": "sha256-aIjGCa8Lvhb8QnbHPOtkZ6yTrb8KURRlYzlo7UaBeac=",
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"rev": "70c271e7a64199c71c9dbcbe513c7b2402573789",
"lastModified": 1724208502,
"narHash": "sha256-TCRcEPSfgAw/t7kClmlr23s591N06mQCrhzlAO7cyFw=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "884b66152b0c625b8220b570a31dc7acc36749a3",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
}
},
"pyproject-build-systems_2": {
"poetry2nix_2": {
"inputs": {
"flake-utils": "flake-utils_4",
"nix-github-actions": "nix-github-actions_2",
"nixpkgs": [
"nixprstatus",
"nixpkgs"
],
"pyproject-nix": [
"nixprstatus",
"pyproject-nix"
],
"uv2nix": [
"nixprstatus",
"uv2nix"
]
"systems": "systems_6",
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1744599653,
"narHash": "sha256-nysSwVVjG4hKoOjhjvE6U5lIKA8sEr1d1QzEfZsannU=",
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"rev": "7dba6dbc73120e15b558754c26024f6c93015dd7",
"lastModified": 1729073785,
"narHash": "sha256-KaDC7emuamQblDdka+gkBUUdEjQf3YGYozMb+zomgSM=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "795fddefc9f910671c1cf0752c29802ce27322d6",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"type": "github"
}
},
"pyproject-nix": {
"inputs": {
"nixpkgs": [
"huecli",
"nixpkgs"
]
},
"locked": {
"lastModified": 1732502826,
"narHash": "sha256-tgInDnNOGd5haarL7i94TZ/TqOR1UHvYliw+Db0lk6U=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "fb87b3bad09fbd71b448e2f71f0337087430dbc7",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"pyproject-nix_2": {
"inputs": {
"nixpkgs": [
"nixprstatus",
"nixpkgs"
]
},
"locked": {
"lastModified": 1746540146,
"narHash": "sha256-QxdHGNpbicIrw5t6U3x+ZxeY/7IEJ6lYbvsjXmcxFIM=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "e09c10c24ebb955125fda449939bfba664c467fd",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
}
},
@ -268,9 +327,9 @@
"ghettoptt": "ghettoptt",
"home-manager": "home-manager",
"huecli": "huecli",
"natstonotify": "natstonotify",
"nix-packages": "nix-packages",
"nixpkgs": "nixpkgs",
"nixpkgs-small": "nixpkgs-small",
"nixpkgs-stable": "nixpkgs-stable",
"nixprstatus": "nixprstatus",
"sops-nix": "sops-nix"
@ -283,11 +342,11 @@
]
},
"locked": {
"lastModified": 1750119275,
"narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=",
"lastModified": 1731954233,
"narHash": "sha256-vvXx1m2Rsw7MkbKJdpcICzz4YPgZPApGKQGhNZfkhOI=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2",
"rev": "e39947d0ee8e341fa7108bd02a33cdfa24a1360e",
"type": "github"
},
"original": {
@ -296,53 +355,135 @@
"type": "github"
}
},
"uv2nix": {
"inputs": {
"nixpkgs": [
"huecli",
"nixpkgs"
],
"pyproject-nix": [
"huecli",
"pyproject-nix"
]
},
"systems": {
"locked": {
"lastModified": 1732759365,
"narHash": "sha256-kOOlzfAsFpfiLltRbqFysVhT86erXVe4TZCNIq5zv0o=",
"owner": "pyproject-nix",
"repo": "uv2nix",
"rev": "f932943b62a0b4fade224f18df13558f8015dd99",
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "uv2nix",
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"uv2nix_2": {
"inputs": {
"nixpkgs": [
"nixprstatus",
"nixpkgs"
],
"pyproject-nix": [
"nixprstatus",
"pyproject-nix"
]
},
"systems_2": {
"locked": {
"lastModified": 1747949765,
"narHash": "sha256-1v8SFHOwUCvHDXFmQRjHZYawY19nxmtZ7zH/kwAGgj0=",
"owner": "pyproject-nix",
"repo": "uv2nix",
"rev": "ec0502250b48116fd3aa8e1347a2d0254bacd05e",
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "uv2nix",
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"id": "systems",
"type": "indirect"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_6": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"id": "systems",
"type": "indirect"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"huecli",
"poetry2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1719749022,
"narHash": "sha256-ddPKHcqaKCIFSFc/cvxS14goUhCOAwsM1PbMr0ZtHMg=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": [
"nixprstatus",
"poetry2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1727984844,
"narHash": "sha256-xpRqITAoD8rHlXQafYZOLvUXCF6cnZkPfoq67ThN0Hc=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "4446c7a6fc0775df028c5a3f6727945ba8400e64",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}

View File

@ -2,9 +2,10 @@
description = "Torjus nixos config flake";
inputs = {
nixpkgs-stable.url = "github:nixos/nixpkgs?ref=nixos-25.05";
nixpkgs-stable.url = "github:nixos/nixpkgs?ref=nixos-24.11";
#nixpkgs-master.url = "github:nixos/nixpkgs?ref=master";
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
nixpkgs-small.url = "github:nixos/nixpkgs?ref=nixos-unstable-small";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
@ -30,10 +31,6 @@
url = "git+https://git.t-juice.club/torjus/nixprstatus?ref=master";
inputs.nixpkgs.follows = "nixpkgs";
};
natstonotify = {
url = "git+https://git.t-juice.club/torjus/natstonotify?ref=master";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
@ -42,11 +39,11 @@
nixpkgs,
# nixpkgs-master,
nixpkgs-stable,
nixpkgs-small,
nixprstatus,
sops-nix,
ghettoptt,
huecli,
natstonotify,
nix-packages,
...
}@inputs:
@ -59,6 +56,17 @@
config.allowUnfree = true;
};
};
overlay-pyside6 =
final: prev:
let
small = import nixpkgs-small {
inherit system;
config.allowUnfree = true;
};
in
{
python312Packages = small.lib.warn "Using python312Packages from nixos-unstable-small #" small.python312Packages;
};
# overlay-master = final: prev: {
# master = import nixpkgs-master {
# inherit system;
@ -76,11 +84,11 @@
commonOverlays = [
overlay-stable
# overlay-master
overlay-pyside6
ghettoptt.overlays.default
huecli.overlays.default
nix-packages.overlays.default
nixprstatus.overlays.default
natstonotify.overlays.default
];
in
{

View File

@ -40,8 +40,8 @@
]))
];
extraLuaConfig = ''
${builtins.readFile ./plugins.lua}
${builtins.readFile ./options.lua}
${builtins.readFile ./plugins.lua}
${builtins.readFile ./keybinds.lua}
'';
};

View File

@ -11,8 +11,3 @@ vim.o.relativenumber = true
vim.o.tabstop = 4
vim.o.shiftwidth = 4
vim.o.expandtab = true
vim.o.termguicolors = true
vim.o.list = true
vim.o.listchars = 'tab:» ,trail:·,extends:»,precedes:«,nbsp:␣'

View File

@ -17,7 +17,7 @@ lsp_zero.format_on_save({
['gopls'] = { 'go' },
['nil_ls'] = { 'nix' },
['lua_ls'] = { 'lua' },
['ts_ls'] = { 'typescript', 'javascript', 'typescriptreact' },
['ts_ls'] = { 'typescript', 'javascript' },
},
})
-- LSP: go
@ -120,7 +120,6 @@ lspconfig.ts_ls.setup({
filetypes = {
"typescript",
"javascript",
"typescriptreact",
},
})
@ -298,6 +297,6 @@ cmp.setup({
-- Colorscheme
require('catppuccin').setup {
}
require('catppuccin').setup({
})
vim.cmd.colorscheme "catppuccin"

View File

@ -31,7 +31,6 @@
./scripts
./services/backup-home.nix
./services/ghettoptt.nix
./services/natstonotify.nix
./sops
./ssh
./zsh

View File

@ -1,33 +1,21 @@
{
inputs,
pkgs,
lib,
config,
...
}:
let
lockhelper = pkgs.callPackage ../scripts/lockhelper.nix { };
monitorTopDesc = "BNQ G2420HDBL T2B04424SL000";
monitorTopName = "desc:${monitorTopDesc}";
monitorTopHash = builtins.substring 0 8 (builtins.hashString "sha256" monitorTopDesc);
monitorLeftDesc = "Samsung Electric Company LS27A600U HNMT502389";
monitorLeftName = "desc:${monitorLeftDesc}";
monitorLeftHash = builtins.substring 0 8 (builtins.hashString "sha256" monitorLeftDesc);
monitorCenterDesc = "Acer Technologies XB271HU #ASPVEKfgZ8Dd";
monitorCenterName = "desc:${monitorCenterDesc}";
monitorCenterHash = builtins.substring 0 8 (builtins.hashString "sha256" monitorCenterDesc);
monitorRightDesc = "Samsung Electric Company LS27A600U HNMT502390";
monitorRightName = "desc:${monitorRightDesc}";
monitorRightHash = builtins.substring 0 8 (builtins.hashString "sha256" monitorRightDesc);
in
{
imports = [
./hyprlock.nix
./hypridle.nix
];
options.hyprland.enable = lib.mkEnableOption "Hyprland";
config = {
home.packages = with pkgs; [
dunst
# hyprlock
hyprpaper
rofi-wayland
slurp
swww
@ -40,161 +28,29 @@ in
libsForQt5.qt5ct
];
services.hyprpaper = {
enable = true;
settings = {
splash = false;
};
};
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "${pkgs.hyprlock}/bin/hyprlock";
before_sleep_cmd = "${lockhelper}/bin/lockhelper";
ignore_dbus_inhibit = false;
};
listener = {
timeout = 240;
on-timeout = "${lockhelper}/bin/lockhelper";
};
};
};
programs.hyprlock = {
enable = true;
settings = {
background = [
{
monitor = monitorTopName;
# path = "/tmp/lockscreen/${monitorTopHash}.png";
path = "screenshot";
color = "rgba(17, 17, 17, 1.0)";
blur_passes = 3;
contrast = 0.8916;
brightness = 0.8172;
vibrancy = 0.1696;
vibrancy_darkness = 0.0;
}
{
monitor = monitorLeftName;
# path = "/tmp/lockscreen/${monitorLeftHash}.png";
path = "screenshot";
color = "rgba(17, 17, 17, 1.0)";
blur_passes = 3;
contrast = 0.8916;
brightness = 0.8172;
vibrancy = 0.1696;
vibrancy_darkness = 0.0;
zindex = 1;
}
{
monitor = monitorCenterName;
# path = "/tmp/lockscreen/${monitorCenterHash}.png";
path = "screenshot";
color = "rgba(17, 17, 17, 1.0)";
blur_passes = 3;
contrast = 0.8916;
brightness = 0.8172;
vibrancy = 0.1696;
vibrancy_darkness = 0.0;
}
{
monitor = monitorRightName;
# path = "/tmp/lockscreen/${monitorRightHash}.png";
path = "screenshot";
color = "rgba(17, 17, 17, 1.0)";
blur_passes = 3;
contrast = 0.8916;
brightness = 0.8172;
vibrancy = 0.1696;
vibrancy_darkness = 0.0;
}
];
general = {
grace = 0;
};
input-field = [
{
size = "250, 60";
outline_thickness = 2;
dots_size = 0.2;
dots_spacing = 0.2;
dots_center = true;
outer_color = "rgba(0, 0, 0, 0)";
inner_color = "rgba(0, 0, 0, 0.5)";
font_color = "rgb(200, 200, 200)";
fade_on_empty = false;
font_family = "JetBrains Mono Nerd Font Mono";
placeholder_text = "<i><span foreground=\"##cdd6f4\">Input Password...</span></i>";
hide_input = false;
position = "0, -120";
halign = "center";
valign = "center";
}
];
label = [
{
text = "cmd[update:2000] echo \"$(date +\"%b %d %H:%M\")\"";
color = "rgba(255, 255, 255, 0.6)";
font_size = 120;
font_family = "JetBrains Mono Nerd Font Mono ExtraBold";
position = "0, -300";
halign = "center";
valign = "top";
}
];
};
};
# streamcontroller service
systemd.user.services = {
streamcontroller = {
Unit = {
Description = "Streamcontroller service";
PartOf = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
Requisite = [ "graphical-session.target" ];
};
Service = {
ExecStart = "${pkgs.streamcontroller}/bin/streamcontroller -b";
Restart = "on-failure";
};
Install = {
WantedBy = [ "graphical-session.target" ];
};
};
};
wayland.windowManager.hyprland = {
enable = true;
package = pkgs.hyprland;
systemd.enable = false;
settings = {
"$mainMod" = "SUPER";
"$shiftMainMod" = "SUPER_SHIFT";
"$term" = "kitty";
# monitors
"$mon_top" = monitorTopName;
"$mon_left" = monitorLeftName;
"$mon_center" = monitorCenterName;
"$mon_right" = monitorRightName;
"$mon_top" = "desc:BNQ G2420HDBL T2B04424SL000";
"$mon_left" = "desc:Samsung Electric Company LS27A600U HNMT502389";
"$mon_center" = "desc:Acer Technologies XB271HU #ASPVEKfgZ8Dd";
"$mon_right" = "desc:Samsung Electric Company LS27A600U HNMT502390";
monitor = [
"$mon_top,1920x1080@60,2560x0,1" # top T2B04424SL000
# "DP-8,1920x1080@60,2560x0,1" # top T2B04424SL000 60
"$mon_left,2560x1440@75,0x1080,1" # left
# "DP-6,2560x1440@75,0x1080,1" # left 75hz
"$mon_center,2560x1440@120,2560x1080,1" # main #ASPVEKfgZ8Dd
# "DP-4,2560x1440@144,2560x1080,1" # main #ASPVEKfgZ8Dd 120hz
"$mon_right,2560x1440@75,5120x1080,1" # right
# "DP-7,2560x1440@75,5120x1080,1" # right 75hz
# "$mon_top,1920x1080@60,2560x0,1" # top T2B04424SL000
"DP-6,1920x1080@60,2560x0,1" # top T2B04424SL000 60
# "$mon_left,2560x1440@75,0x1080,1" # left
"DP-8,2560x1440@75,0x1080,1" # left 75hz
# "$mon_center,2560x1440@120,2560x1080,1" # main #ASPVEKfgZ8Dd
"DP-5,2560x1440@144,2560x1080,1" # main #ASPVEKfgZ8Dd 120hz
# "$mon_right,2560x1440@75,5120x1080,1" # right
"DP-7,2560x1440@75,5120x1080,1" # right 75hz
];
input = {
kb_layout = "no";
@ -215,6 +71,9 @@ in
decoration = {
rounding = 10;
drop_shadow = true;
shadow_range = 4;
shadow_render_power = 3;
blur = {
enabled = true;
size = 3;
@ -295,7 +154,7 @@ in
"$mainMod,Return,exec,$term"
# hyprlock
"$shiftMainMod,l,exec,${lockhelper}/bin/lockhelper"
"$shiftMainMod,l,exec,lockhelper"
# rofi
"$mainMod,D,exec,rofi-launcher"
@ -358,6 +217,12 @@ in
];
exec-once = [
"waybar"
"hyprpaper & sleep 10 && randomwp"
"easyeffects --gapplication-service"
"hypridle"
"streamcontroller -b"
# "dunst"
];
};
};

View File

@ -1,9 +1,15 @@
{
inputs,
pkgs,
lib,
config,
...
}:
{
imports = [
./hyprlock.nix
./hypridle.nix
];
options.hyprland.enable = lib.mkEnableOption "Hyprland";
config = {
home.packages = with pkgs; [
@ -22,82 +28,6 @@
libsForQt5.qt5ct
];
services.hyprpaper = {
enable = true;
settings = {
splash = false;
};
};
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "${pkgs.hyprlock}/bin/hyprlock";
before_sleep_cmd = "${pkgs.hyprlock}/bin/hyprlock";
ignore_dbus_inhibit = false;
};
listener = {
timeout = 240;
on-timeout = "${pkgs.hyprlock}/bin/hyprlock";
};
};
};
programs.hyprlock = {
enable = true;
settings = {
background = [
{
monitor = "";
path = "screenshot";
color = "rgba(17, 17, 17, 1.0)";
blur_passes = 3;
contrast = 0.8916;
brightness = 0.8172;
vibrancy = 0.1696;
vibrancy_darkness = 0.0;
}
];
general = {
grace = 0;
};
input-field = [
{
size = "250, 60";
outline_thickness = 2;
dots_size = 0.2;
dots_spacing = 0.2;
dots_center = true;
outer_color = "rgba(0, 0, 0, 0)";
inner_color = "rgba(0, 0, 0, 0.5)";
font_color = "rgb(200, 200, 200)";
fade_on_empty = false;
font_family = "JetBrains Mono Nerd Font Mono";
placeholder_text = "<i><span foreground=\"##cdd6f4\">Input Password...</span></i>";
hide_input = false;
position = "0, -120";
halign = "center";
valign = "center";
}
];
label = [
{
text = "cmd[update:2000] echo \"$(date +\"%b %d %H:%M\")\"";
color = "rgba(255, 255, 255, 0.6)";
font_size = 120;
font_family = "JetBrains Mono Nerd Font Mono ExtraBold";
position = "0, -300";
halign = "center";
valign = "top";
}
];
};
};
wayland.windowManager.hyprland = {
enable = true;
package = pkgs.hyprland;
@ -116,6 +46,9 @@
decoration = {
rounding = 10;
drop_shadow = true;
shadow_range = 4;
shadow_render_power = 3;
blur = {
enabled = true;
size = 3;
@ -166,12 +99,13 @@
"special:special, on-created-empty:kitty, rounding:true, decorate:false, border:false"
];
bindm = [
"$mainMod,mouse:272,movewindow"
"$shiftMainMod,mouse:272,resizewindow"
];
bindm = [ "ALT,mouse:272,movewindow" ];
bindr = [
# mumble ptt release
# ",code:202,exec,mumble rpc stoptalking"
# ",code:202,exec,pamixer --source 63 -m"
# ",code:202,exec,sleep 0.5 && pamixer --default-source -m"
];
bind = [
@ -183,7 +117,7 @@
"$mainMod,P,exec,rofi-rbw"
# hyprlock
"$shiftMainMod,l,exec,${pkgs.hyprlock}/bin/hyprlock"
"$shiftMainMod,l,exec,lockhelper"
# hyprland
"$mainMod,Q,killactive,"
@ -206,6 +140,12 @@
# Force opacity
"$shiftMainMod,o,exec, hl-no-opacity"
# mumble ptt click
# ",code:202,exec,mumble rpc starttalking"
#",code:202,pass,^(info\.mumble\.Mumble)$"
# ",code:202,exec,pamixer --default-source -u"
# ",code:202,pass,^discord$"
# worspace switching
"$mainMod,1,workspace,1"
"$mainMod,2,workspace,2"
@ -220,6 +160,10 @@
];
exec-once = [
"waybar"
"hyprpaper & sleep 2 && randomwp"
"hypridle"
# "dunst"
];
};
};

View File

@ -6,7 +6,6 @@ from datetime import datetime, date, timedelta
SECRET_DIR = "/home/torjus/.config/sops-nix/secrets"
def sonarr_url():
xdg_dir = os.environ["XDG_RUNTIME_DIR"]
if not xdg_dir:
@ -14,31 +13,26 @@ def sonarr_url():
with open(f"{SECRET_DIR}/sonarr_base_url") as f:
return f.read().strip()
def radarr_url():
with open(f"{SECRET_DIR}/radarr_base_url") as f:
return f.read().strip()
def make_header(api_key: str):
return {"X-Api-Key": api_key, "Accept": "application/json"}
def get_sonarr_key():
with open(f"{SECRET_DIR}/sonarr_api_key") as f:
return f.read().strip()
def get_radarr_key():
with open(f"{SECRET_DIR}/radarr_api_key") as f:
return f.read().strip()
def get_sonarr_history(since: datetime | None = None):
def get_sonarr_history(since: datetime|None=None):
api_key = get_sonarr_key()
if not since:
since = datetime.combine(date.today() - timedelta(days=1), datetime.min.time())
url = f"{sonarr_url()}/api/v3/history/since"
since = datetime.combine(date.today()-timedelta(days=1),datetime.min.time())
url = f"{sonarr_url()}/api/history/since"
url += f"?date={since.isoformat()}"
response = requests.get(url, headers=make_header(api_key))
response.raise_for_status()
@ -50,11 +44,10 @@ def get_sonarr_history(since: datetime | None = None):
items.append(item["sourceTitle"])
return items
def get_radarr_history(since: datetime | None = None):
def get_radarr_history(since: datetime|None=None):
api_key = get_radarr_key()
if not since:
since = datetime.combine(date.today() - timedelta(days=7), datetime.min.time())
since = datetime.combine(date.today()-timedelta(days=7),datetime.min.time())
url = f"{radarr_url()}/api/v3/history/since"
url += f"?date={since.isoformat()}"
response = requests.get(url, headers=make_header(api_key))
@ -67,17 +60,12 @@ def get_radarr_history(since: datetime | None = None):
items.append(item["sourceTitle"])
return items
if __name__ == "__main__":
sonarr_items = get_sonarr_history()
radarr_items = get_radarr_history()
output = {
"text": f"Son: {len(sonarr_items)}|Rad: {len(radarr_items)}",
"tooltip": "Radarr: \n"
+ "\n".join(radarr_items)
+ "\n"
+ "Sonarr: \n"
+ "\n".join(sonarr_items),
"tooltip": "Radarr: \n" + "\n".join(radarr_items) + "\n" + "Sonarr: \n" + "\n".join(sonarr_items)
}
print(json.dumps(output))

View File

@ -45,7 +45,7 @@ in
programs.waybar = {
enable = true;
systemd = {
enable = true; # disable it,autostart it in hyprland conf
enable = false; # disable it,autostart it in hyprland conf
target = "graphical-session.target";
};
style = ''

View File

@ -27,6 +27,7 @@
./programs/obs-studio
./programs/vscode
./programs/pywal
./programs/zellij
./scripts
./scripts/batlvl.nix
./zsh

View File

@ -5,16 +5,13 @@ in
{
imports = [
./zoom.nix
./tacl.nix
];
home.packages = with pkgs; [
# CLI utils
act
age
aichat
bat
bzip2
chromium
croc
devenv
distrobox
@ -29,8 +26,6 @@ in
grimblast
ijq
incus
jellyfin-media-player
jujutsu
jq
kitty
kubectl
@ -48,14 +43,13 @@ in
rbw
restic
ripgrep
sidequest
sops
sshfs
step-cli
tea
tldr
tokei
unzip
ventoy
wtype
# Non-CLI stuff
@ -114,21 +108,11 @@ in
# Stuff with overrides
# Btop
(btop.override { cudaSupport = withCuda; })
(hashcat.override { cudaSupport = withCuda; })
# PrismLauncher
prismlauncher
(pkgs.linkFarm "logcli" [
{
name = "bin/logcli";
path = "${pkgs.grafana-loki}/bin/logcli";
}
])
(lutris.override {
extraLibraries = pkgs: [
nspr
xorg.libXdamage
];
})
# From nix-packages flake
path-of-building-beta
awakened-poe-trade
];
}

View File

@ -1,30 +0,0 @@
{ pkgs, ... }:
{
home.packages = [
(pkgs.python3Packages.buildPythonApplication rec {
pname = "tacl";
version = "3.9.0";
pyproject = true;
src = pkgs.fetchFromGitHub {
owner = "unioslo";
repo = "tsd-api-client";
rev = "v${version}";
sha256 = "sha256-R8fSAhpdjspIoLy3m6NnHZBCBTSLQGWOqAiDkBZlWOc=";
};
build-system = with pkgs.python3Packages; [
poetry-core
poetry-dynamic-versioning
];
dependencies = with pkgs.python3Packages; [
pyyaml
click
humanfriendly
libnacl
requests
rich
];
})
];
}

View File

@ -1,108 +0,0 @@
{
lib,
stdenv,
fetchurl,
makeWrapper,
makeDesktopItem,
copyDesktopItems,
xorg,
gtk2,
sqlite,
openal,
cairo,
libGLU,
SDL2,
freealut,
libglvnd,
pipewire,
libpulseaudio,
dotnet-runtime_8,
}:
stdenv.mkDerivation rec {
pname = "vintagestory";
version = "1.20.0-rc.8";
src = fetchurl {
url = "https://cdn.vintagestory.at/gamefiles/unstable/vs_client_linux-x64_${version}.tar.gz";
hash = "sha256-/MPR6PAkZv93zT6YbJatg67aRYfzp9vFRY82gtVksAs=";
};
nativeBuildInputs = [
makeWrapper
copyDesktopItems
];
buildInputs = [ dotnet-runtime_8 ];
runtimeLibs = lib.makeLibraryPath (
[
gtk2
sqlite
openal
cairo
libGLU
SDL2
freealut
libglvnd
pipewire
libpulseaudio
]
++ (with xorg; [
libX11
libXi
libXcursor
])
);
desktopItems = [
(makeDesktopItem {
name = "vintagestory";
desktopName = "Vintage Story";
exec = "vintagestory";
icon = "vintagestory";
comment = "Innovate and explore in a sandbox world";
categories = [ "Game" ];
})
];
installPhase = ''
runHook preInstall
mkdir -p $out/share/vintagestory $out/bin $out/share/pixmaps $out/share/fonts/truetype
cp -r * $out/share/vintagestory
cp $out/share/vintagestory/assets/gameicon.xpm $out/share/pixmaps/vintagestory.xpm
cp $out/share/vintagestory/assets/game/fonts/*.ttf $out/share/fonts/truetype
runHook postInstall
'';
preFixup =
''
sed -i 's/net7.0/net8.0/' $out/share/vintagestory/Vintagestory.runtimeconfig.json
sed -i 's/7.0.0/8.0.11/' $out/share/vintagestory/Vintagestory.runtimeconfig.json
makeWrapper ${dotnet-runtime_8}/bin/dotnet $out/bin/vintagestory \
--prefix LD_LIBRARY_PATH : "${runtimeLibs}" \
--add-flags $out/share/vintagestory/Vintagestory.dll
makeWrapper ${dotnet-runtime_8}/bin/dotnet $out/bin/vintagestory-server \
--prefix LD_LIBRARY_PATH : "${runtimeLibs}" \
--add-flags $out/share/vintagestory/VintagestoryServer.dll
''
+ ''
find "$out/share/vintagestory/assets/" -not -path "*/fonts/*" -regex ".*/.*[A-Z].*" | while read -r file; do
local filename="$(basename -- "$file")"
ln -sf "$filename" "''${file%/*}"/"''${filename,,}"
done
'';
meta = with lib; {
description = "In-development indie sandbox game about innovation and exploration";
homepage = "https://www.vintagestory.at/";
license = licenses.unfree;
maintainers = with maintainers; [
artturin
gigglesquid
];
};
}

View File

@ -1,17 +1,16 @@
{ pkgs, lib, ... }:
# let
# version = "6.2.6.2503";
# zoom-override = pkgs.zoom-us.overrideAttrs (old: {
# inherit version;
# src = pkgs.fetchurl {
# url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
# hash = "sha256-qhymegXkXSl9fK/5klSi5uRPwFVN88QH/5EVGaBUbfc=";
# };
# });
# in
let
version = "6.2.6.2503";
zoom-override = pkgs.zoom-us.overrideAttrs (old: {
inherit version;
src = pkgs.fetchurl {
url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
hash = "sha256-qhymegXkXSl9fK/5klSi5uRPwFVN88QH/5EVGaBUbfc=";
};
});
in
{
home.packages = [
pkgs.zoom-us
#(lib.warn "Using overridden zoom version" zoom-override)
(lib.warn "Using overridden zoom version" zoom-override)
];
}

View File

@ -1,4 +1,6 @@
{
config,
lib,
pkgs,
...
}:
@ -12,12 +14,13 @@
};
settings = {
global = {
rounded = "yes";
origin = "top-right";
monitor = "4";
alignment = "left";
vertical_alignment = "center";
width = "(0, 400)";
height = "(0, 400)";
width = "400";
height = "400";
scale = 0;
gap_size = 0;
progress_bar = true;
@ -41,7 +44,7 @@
format = "<b>%s</b>\\n%b"; # format = "<span foreground='#f3f4f5'><b>%s %p</b></span>\n%b"
frame_color = "#232323";
frame_width = 1;
offset = "(15, 15)";
offset = "15x15";
horizontal_padding = 10;
icon_position = "left";
indicate_hidden = "yes";
@ -51,6 +54,7 @@
mouse_middle_click = "close_current";
mouse_right_click = "close_all";
padding = 10;
plain_text = "no";
separator_height = 2;
show_indicators = "yes";
shrink = "no";

View File

@ -7,7 +7,11 @@
let
withCuda = osConfig.system.name == "gunter";
onnxruntime-gpu = (pkgs.onnxruntime.override { cudaSupport = withCuda; });
onnxruntime-gpu = (pkgs.onnxruntime.override { cudaSupport = withCuda; }).overrideAttrs (old: {
# TODO: Remove when fixed in nixpkgs
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/libraries/onnxruntime/default.nix#L154
buildInputs = old.buildInputs ++ [ pkgs.cudaPackages.nccl ];
});
obs-backgrounremoval-gpu = (
(pkgs.obs-studio-plugins.obs-backgroundremoval.override { onnxruntime = onnxruntime-gpu; })
@ -31,9 +35,6 @@ in
{
programs.obs-studio = {
enable = true;
package = pkgs.obs-studio.override {
cudaSupport = withCuda;
};
plugins =
with pkgs.obs-studio-plugins;
[

View File

@ -2,28 +2,19 @@
{
programs.vscode = {
enable = true;
profiles.default = {
enableUpdateCheck = true;
enableExtensionUpdateCheck = true;
userSettings = {
"window.titleBarStyle" = "custom";
"rust-analyzer.testExplorer" = true;
"rust-analyzer.restartServerOnConfigChange" = true;
"direnv.restart.automatic" = true;
};
extensions = with pkgs.vscode-extensions; [
catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc-icons
github.copilot
github.copilot-chat
golang.go
vscodevim.vim
ms-python.python
ms-vscode-remote.remote-ssh
bbenoist.nix
mkhl.direnv
rust-lang.rust-analyzer
];
enableUpdateCheck = true;
enableExtensionUpdateCheck = true;
extensions = with pkgs.vscode-extensions; [
catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc-icons
golang.go
vscodevim.vim
ms-python.python
ms-vscode-remote.remote-ssh
bbenoist.nix
];
userSettings = {
"window.titleBarStyle" = "custom";
};
};
}

View File

@ -1,8 +1,6 @@
{ pkgs, config, ... }:
{
imports = [
./noita-helper.nix
];
imports = [ ./lockhelper.nix ];
home.file.".local/bin/hl-no-opacity" = {
source = ./hl-no-opacity.sh;
executable = true;

View File

@ -1,21 +1,14 @@
{ pkgs, ... }:
let
lockhelper = pkgs.writeShellApplication {
name = "lockhelper";
runtimeInputs = with pkgs; [
grim
jq
];
text = (builtins.readFile ./lockhelper.sh);
};
in
{
writeShellApplication,
grim,
jq,
gawk,
hyprland,
hyprlock,
procps,
}:
writeShellApplication {
name = "lockhelper";
runtimeInputs = [
grim
jq
gawk
hyprland
hyprlock
procps
];
text = (builtins.readFile ./lockhelper.sh);
home.packages = [ lockhelper ];
}

View File

@ -3,14 +3,11 @@ set -eo pipefail
mkdir -p /tmp/lockscreen || true
monitor_lines=$(hyprctl monitors -j | jq -r '.[] | select (.name | contains ("DP")) | [.name, .description]| @tsv')
monitors=$(hyprctl monitors -j | jq -r '.[] | select( .name | contains ("DP")) | .name')
while IFS= read -r m; do
name=$(echo "$m" | awk -F $'\t' '{print $1}')
sum=$(echo "$m" | awk -F $'\t' '{printf $2}' | sha256sum | awk '{print substr($1,1,8)}')
grim -o "$name" "/tmp/lockscreen/$sum.png" || true
done <<< "$monitor_lines"
grim -o "$m" "/tmp/lockscreen/$m.png" || true
done <<< "$monitors"
# Only lock if not already running
if [ -z "$(pgrep hyprlock)" ]

View File

@ -1,14 +0,0 @@
{ pkgs, ... }:
let
noita-helper = pkgs.writeShellApplication {
name = "noita-helper";
runtimeInputs = with pkgs; [
grim
jq
];
text = (builtins.readFile ./noita-helper.sh);
};
in
{
home.packages = [ noita-helper ];
}

View File

@ -1,50 +0,0 @@
#!/usr/bin/env bash
SAVE_DIR="/home/torjus/.local/share/Steam/steamapps/compatdata/881100/pfx/drive_c/users/steamuser/AppData/LocalLow/Nolla_Games_Noita"
RESTIC_REPOSITORY="/home/$(whoami)/tmp/noita-backup"
export RESTIC_REPOSITORY
export RESTIC_PASSWORD="noita"
function start {
echo "Doing initial backup"
restic backup -q "$SAVE_DIR"
echo "Backup done"
echo "Mounting tmpfs for save folder..."
sudo mount -o size=2G,noswap -t tmpfs none "$SAVE_DIR"
echo "Restoring initial backup..."
restic restore "latest:$SAVE_DIR" --target "$SAVE_DIR"
echo "Ready to play Noita!"
echo "Remember to run $0 stop when done."
while true
do
restic backup -q "$SAVE_DIR"
echo "Periodic backup done..."
sleep 10m
done
}
function stop {
restic backup -q $SAVE_DIR
sudo umount $SAVE_DIR
restic restore latest:$SAVE_DIR --target $SAVE_DIR
echo "Backup and unmount done..."
}
if [ "$#" -ne 1 ]; then
echo "Usage: $0 {start|stop}"
exit 1
fi
if [ "$1" == "start" ]; then
start
elif [ "$1" == "stop" ]; then
stop
else
echo "Usage: $0 {start|stop}"
exit 1
fi

View File

@ -26,6 +26,11 @@ if [ -z "$wallpaper_path" ]; then
exit 1
fi
if ! command -v hyprpaper &> /dev/null; then
echo "Could not find hyprpaper command"
exit 1
fi
echo "setting $wallpaper_path as wallpaper"
hyprctl hyprpaper unload all
hyprctl hyprpaper preload "$wallpaper_path"

View File

@ -44,7 +44,6 @@ let
--exclude '/home/torjus/.npm' \
--exclude '/home/torjus/.factorio/mods' \
--exclude '/home/torjus/.zoom' \
--exclude '/home/torjus/Games' \
--exclude '/home/torjus/git/nixpkgs'
retval=$?
if [ $retval -ne 0 ]; then

View File

@ -1,21 +0,0 @@
{ pkgs, config, ... }:
{
sops.secrets."nats_nkey" = { };
systemd.user.services.natstonotify = {
Unit = {
Description = "Run natstonotify";
After = [ "sops-nix.service" ];
};
Service = {
Environment = [
"NATS_URL=nats://nats1.home.2rjus.net:4222"
"NATS_NKEY_FILE=${config.sops.secrets.nats_nkey.path}"
];
Type = "simple";
ExecStart = "${pkgs.natstonotify}/bin/natstonotify server";
};
Install = {
WantedBy = [ "graphical-session.target" ];
};
};
}

View File

@ -19,7 +19,6 @@ in
programs.ssh = {
enable = true;
controlMaster = "auto";
serverAliveInterval = 30;
matchBlocks = {
"bmo.uio.no-on-eduroam" = (
@ -42,6 +41,4 @@ in
};
};
};
services.ssh-agent.enable = true;
}

View File

@ -24,7 +24,7 @@
nrebuild = "sudo nixos-rebuild switch --flake /home/${user}/nixos";
ndiffbuild = "sudo nixos-rebuild build --flake /home/${user}/nixos && nvd diff /run/current-system /home/${user}/nixos/result";
};
initContent = ''
initExtra = ''
bindkey -v
bindkey '^R' history-incremental-search-backward
@ -33,8 +33,6 @@
promptinit
prompt pure
export PATH="''${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
export MANPAGER="nvim +Man!"
export LOKI_ADDR="http://monitoring01:3100"
# Aliases
alias ls=eza

View File

@ -1,4 +0,0 @@
{ pkgs, ... }:
{
programs.alvr.enable = true;
}

View File

@ -9,7 +9,7 @@
{
imports = [
./hardware-configuration.nix
../../system/monitoring
../../system/monitoring.nix
];
# Sops stuff
@ -24,8 +24,9 @@
# Bootloader stuff
boot = {
# Kernel stuff
# kernelPackages = pkgs.linuxPackages_latest;
kernelPackages = lib.warn "Pinned to kernel 6.14 due to nvidia issues" pkgs.linuxPackages_6_14;
# kernelPackages = pkgs.linuxPackages_xanmod_latest;
kernelPackages = pkgs.linuxPackages_latest;
# kernelPackages = lib.warn "Pinned to kernel 6.10 due to nvidia fbdev trouble!" pkgs.linuxPackages_6_10;
kernelParams = [
"quiet"
"splash"
@ -53,9 +54,6 @@
networking.nftables.enable = true;
networking.firewall = {
enable = true;
allowedTCPPorts = [
8989
];
};
# Set time stuff
@ -97,13 +95,14 @@
# };
# })
# ];
services.displayManager.gdm.wayland = true;
services.xserver.enable = true;
services.xserver.videoDrivers = [ "nvidia" ];
services.xserver.displayManager.gdm.wayland = true;
services.xserver.displayManager.lightdm.enable = false;
services.xserver.displayManager.startx.enable = true;
services.xserver.windowManager.i3.enable = true;
programs.hyprland = {
enable = true;
withUWSM = true;
xwayland.enable = true;
portalPackage = pkgs.xdg-desktop-portal-hyprland;
};
@ -141,19 +140,8 @@
"root"
"torjus"
];
trusted-substituters = [
"https://nix-cache.home.2rjus.net"
"https://cache.nixos.org"
"https://cuda-maintainers.cachix.org"
];
substituters = [
"https://nix-cache.home.2rjus.net"
"https://cache.nixos.org"
"https://cuda-maintainers.cachix.org"
];
substituters = [ "https://cuda-maintainers.cachix.org" ];
trusted-public-keys = [
"nix-cache.home.2rjus.net-1:2kowZOG6pvhoK4AHVO3alBlvcghH20wchzoR0V86UWI="
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
];
};
@ -178,7 +166,6 @@
# xorg.xf86inputlibinput
# xorg.xinit
];
services.udev.packages = [ pkgs.android-udev-rules ];
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.

View File

@ -12,8 +12,6 @@
./nfs.nix
./ollama.nix
./streamdeck.nix
./alvr.nix
./ratbagd.nix
../../system
../../home/gunter.nix
];

View File

@ -25,20 +25,7 @@
"kvm-amd"
"v4l2loopback"
];
boot.extraModulePackages = with config.boot.kernelPackages; [
(v4l2loopback.overrideAttrs ({
version = lib.warn "v4l2loopback pinned due to obs issue. Fixed in >31.0.3 of obs-studio" "0.13.2-manual-${kernel.version}";
src = (
pkgs.fetchFromGitHub {
owner = "umlaeute";
repo = "v4l2loopback";
rev = "v0.13.2";
hash = "sha256-rcwgOXnhRPTmNKUppupfe/2qNUBDUqVb3TeDbrP5pnU=";
}
);
}))
];
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/a7d4b697-fffa-4bcb-9dd7-cbbd6121a50c";

View File

@ -1,20 +0,0 @@
{ ... }:
{
services.hostapd = {
enable = true;
radios = {
wlp13s0 = {
countryCode = "NO";
wifi6.enable = true;
networks.wlp13s0 = {
ssid = "TESTLOL";
band = "5g";
authentication = {
wpaPassword = "lol passord";
mode = "wpa2-sha256";
};
};
};
};
};
}

View File

@ -6,11 +6,7 @@
};
services.open-webui = {
enable = true;
package = pkgs.stable.open-webui;
# enable = lib.warn "Open WebUI is disabled" false;
environment = {
VECTOR_DB = "pgvector";
PGVECTOR_DB_URL = "postgresql://openwebui:openwebui@pgdb1.home.2rjus.net:5432/openwebui";
DO_NOT_TRACK = "True";
SCARF_NO_ANALYTICS = "True";
OLLAMA_API_BASE_URL = "http://127.0.0.1:11434";
@ -18,8 +14,4 @@
};
port = 11444;
};
# Ensure networking is ok before starting
systemd.services.open-webui.after = [ "network-online.target" ];
systemd.services.open-webui.wants = [ "network-online.target" ];
}

View File

@ -1,5 +0,0 @@
{ pkgs, ... }:
{
services.ratbagd.enable = true;
environment.systemPackages = with pkgs; [ piper ];
}

View File

@ -1,4 +1,6 @@
{
config,
lib,
pkgs,
...
}:
@ -22,7 +24,6 @@
enable = true;
configurationLimit = 3;
};
boot.loader.efi = {
canTouchEfiVariables = true;
};
@ -48,19 +49,14 @@
# Set time stuff
time.timeZone = "Europe/Oslo";
hardware = {
enableRedistributableFirmware = true;
enableAllFirmware = true;
# Enable opengl
graphics = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver
vaapiVdpau
libvdpau-va-gl
];
};
# Enable opengl
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver
vaapiVdpau
libvdpau-va-gl
];
};
# Bluetooth stuff
@ -82,13 +78,12 @@
# Setup hyprland
services.xserver.enable = true;
services.displayManager.gdm.wayland = {
services.xserver.displayManager = {
gdm.wayland = true;
lightdm.enable = false;
};
programs.hyprland = {
enable = true;
withUWSM = true;
xwayland.enable = true;
portalPackage = pkgs.xdg-desktop-portal-hyprland;
};
@ -96,6 +91,12 @@
# TRIM
services.fstrim.enable = true;
# TLP
services.tlp.enable = true;
# Brillo
hardware.brillo.enable = true;
# Setup common XDG env vars
environment.sessionVariables = rec {
XDG_CACHE_HOME = "$HOME/.cache";

View File

@ -8,7 +8,6 @@
imports = [
./configuration.nix
./hardware-configuration.nix
./laptop.nix
../../system
../../home/magicman.nix
];

View File

@ -1,21 +0,0 @@
{ ... }:
{
hardware.brillo.enable = true;
powerManagement.enable = true;
services.tlp.enable = true;
services.auto-cpufreq = {
enable = true;
settings = {
battery = {
governor = "powersave";
turbo = "never";
};
charger = {
governor = "performance";
turbo = "auto";
};
};
};
}

View File

@ -3,7 +3,6 @@ sonarr_api_key: ENC[AES256_GCM,data:mg19hxs+DY6wsLjt4FupjavwmnmMJAP2Us5i1Rt/yyk=
sonarr_base_url: ENC[AES256_GCM,data:0HiHIX4KcPEE62Ti1fLH230rC1A7xYg=,iv:mkAnl6t2H5xP9RPjTsbSZkfbrgli/7XKnPE5aGuZpTo=,tag:P2osFM60Jk8qkXJgLaGpjg==,type:str]
radarr_api_key: ENC[AES256_GCM,data:Db1ISKTF+m2H1on55/4vdGticfqBdxfIzKHBxC9LAx4=,iv:NhiG4SmsRYIunW1ljFbxeHvRoi9fOVE+9DJn6kmZ6oI=,tag:DoJzo56CW3kJlySYmB8NYQ==,type:str]
radarr_base_url: ENC[AES256_GCM,data:3UgOPQMblYhm0ysRB6VVosvZToIM5IA=,iv:o/s0bVBrjrma2Df2LlCCFL5Ks80063/4mABc6vzDrYg=,tag:eHKntLPM9yRRkMfIWSpIdg==,type:str]
nats_nkey: ENC[AES256_GCM,data:TcIDFkFXB1+qfTqLylDI46w4/+Cy9XdXyXS26qCbwDaDoQNaRUsC6dw94mbT37352IWOCypTY0hweA==,iv:DC5GQyIXbNSx/mOLAOWTf5AyeFeViLxbKTMgZEfTEXE=,tag:krxk/dnZ58a8dcuWb7zhnA==,type:str]
sops:
kms: []
gcp_kms: []
@ -13,23 +12,14 @@ sops:
- recipient: age1lznyk4ee7e7x8n92cq2n87kz9920473ks5u9jlhd3dczfzq4wamqept56u
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnaUlVOWtoRTFvMHljV0Fu
TFp2Ym1jcThqbWRjUjdNSnhxRUsrOWl6S3dBCmh0L0YzaXNlRTFHMXFHTGc1T3I2
WE03WjJCSlJSV2lmSExTWDBQRnlOcDAKLS0tIFJoeEM5b0IrdWxTRWhvNnd0c3NG
dENGdjJteFFaQTNFaDgvSGV2UEtyT0EKbdg4atS91rB99l7zKKkfPzKk4T5Mq2x5
bX825DPrxauAhvrT7ca/A2OwA4kaFuxPrQGd3VOPAXTVhlbcFgIAdw==
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDdDRDc0UvaWY4U0loZzQ0
bDZCMitGbGVYaGJyUXNrZGpnZHJlWHRkK3drCnJ2TlovSUI0OEVrV2FBbVdlSm1z
OE9lYXNMSXpCS0NMSkZDcjhtWENOUTAKLS0tIEZFMnVqcktwWkR5VHBGQXdobXlp
Q3gxalhGVjNlS3B3YlFsK0VQMUFITEUKE87+RpOG6ucXHHQ0DMQ9F3yo0n1aXbv7
OX5ibHU7RroUQwFmDj87u59VUTvpWRQjsBW4c4WrZRk9KcjwinZZZQ==
-----END AGE ENCRYPTED FILE-----
- recipient: age1stlqqspmt5fepyz35udrwr5avf9zuju79f787p26pu2d2j08yqps2q2t2c
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvSEZJWldRcmJ3c1BjbUpT
bmZXSmlHU0hVRTV3SG91bXpiTXhZd1RkY0Y4ClBxc0RabWJmMi8reHZYWnlmK3pC
bUw5V2FEV0pZdkZEMTJ5ZDZXWDM2NjgKLS0tIGZ6dEZ4dERYQXFRQTVkRHhycndz
dkgwQlRrdEp6b2FIVnowaDlUMEZpeHcK2icvVv+UpbcdVErRjjQhlQb6PuluC/K7
Vy8Rh7dTn++bSEdGidDNGYeUQBrVy2qooq04lQqbeOOrdmXVhTamdA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-02-11T19:22:47Z"
mac: ENC[AES256_GCM,data:vd8O5y1GNDTDrlundbNZcGRAQzKLDly4qyxTqRO2JrnDYOqD/vQ8TqRQYiUgGY+5AcgjoLMER8keE8OUmcngN16cbGx1zKTpdqyHb7B2KR7ZfWOjW5kTk5KWM1gLDA4hA2GBEjHFBPGKdcrjURek9MrT+iM+qArbizSjWlKuehc=,iv:cicEnvWynZizJqrUzPIzbJWl6O8uL65Vs7fAYsuqSNA=,tag:l5jBXQfFedVE/VccZh+1qQ==,type:str]
lastmodified: "2024-04-25T19:19:54Z"
mac: ENC[AES256_GCM,data:VGBiDi71DHAXLhi7XC0XSTqnSwcJXv1Lj53qriFER7BXXZNPUdbeknlYR+KMdL3hgKGiK+ElWK5foDAy6jpl1H3U7Y9B4d40pVZSzEoN+fCwUgfP+yym1HwKZZoJok2ksXZIL4MZyZSNS+ONjDeFEcyHobIx8pRThxic3CcvptI=,iv:QwnFcYeIWibx5q8C/ur1eE8F9vbyGHg5raInDHBoyVs=,tag:JJWEYAyVhfny4hWrKBAKig==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4
version: 3.8.1

View File

@ -1,12 +1,10 @@
{
imports = [
./fonts.nix
./root-ca.nix
./fwupd.nix
./git.nix
./greetd.nix
./libvirt.nix
./locale.nix
./podman.nix
./security.nix
./services.nix

View File

@ -5,10 +5,14 @@
fira-code
fira-code-symbols
font-awesome
nerd-fonts.jetbrains-mono
nerd-fonts.fira-code
nerd-fonts.droid-sans-mono
nerd-fonts.dejavu-sans-mono
(nerdfonts.override {
fonts = [
"JetBrainsMono"
"FiraCode"
"DroidSansMono"
"DejaVuSansMono"
];
})
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji

View File

@ -4,7 +4,7 @@
enable = true;
settings = {
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd \"uwsm start default\"";
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd \"dbus-run-session Hyprland\"";
user = "greeter";
};
};

View File

@ -1,12 +0,0 @@
{ ... }:
{
i18n = {
supportedLocales = [
"en_US.UTF-8/UTF-8"
"nb_NO.UTF-8/UTF-8"
];
extraLocaleSettings = {
LC_TIME = "nb_NO.UTF-8";
};
};
}

37
system/monitoring.nix Normal file
View File

@ -0,0 +1,37 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
prometheus-node-exporter
prometheus-systemd-exporter
];
systemd.services."node-exporter" = {
enable = true;
unitConfig = {
Description = "Prometheus Node Exporter";
After = [ "network.target" ];
};
serviceConfig = {
ExecStart = "${pkgs.prometheus-node-exporter}/bin/node_exporter";
};
wantedBy = [ "multi-user.target" ];
};
systemd.services."systemd-exporter" = {
enable = true;
unitConfig = {
Description = "Prometheus Systemd Exporter";
After = [ "network.target" ];
};
serviceConfig = {
ExecStart = "${pkgs.prometheus-systemd-exporter}/bin/systemd_exporter";
};
wantedBy = [ "multi-user.target" ];
};
networking.firewall.allowedTCPPorts = [
9100
9558
8989
];
}

View File

@ -1,7 +0,0 @@
{ ... }:
{
imports = [
./metrics.nix
./logs.nix
];
}

View File

@ -1,39 +0,0 @@
{ ... }:
{
services.promtail = {
enable = true;
configuration = {
server = {
http_listen_address = "0.0.0.0";
http_listen_port = 9099;
grpc_listen_address = "0.0.0.0";
grpc_listen_port = 9098;
};
clients = [
{
url = "http://monitoring01.home.2rjus.net:3100/loki/api/v1/push";
}
];
scrape_configs = [
{
job_name = "journal";
journal = {
json = true;
};
relabel_configs = [
{
source_labels = [ "__journal__systemd_unit" ];
target_label = "systemd_unit";
}
{
source_labels = [ "__journal__hostname" ];
target_label = "host";
}
];
}
];
};
};
}

View File

@ -1,18 +0,0 @@
{ ... }:
{
services.prometheus.exporters = {
node = {
enable = true;
openFirewall = true;
enabledCollectors = [
"systemd"
"logind"
];
};
smartctl = {
enable = true;
openFirewall = true;
devices = [ "/dev/nvme0n1" ];
};
};
}

View File

@ -1,12 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIBxDCCAWmgAwIBAgIQQCSzuOLIKLj1dGbC+NFttjAKBggqhkjOPQQDAjBAMRow
GAYDVQQKExFob21lLjJyanVzLm5ldCBDQTEiMCAGA1UEAxMZaG9tZS4ycmp1cy5u
ZXQgQ0EgUm9vdCBDQTAeFw0yNDEwMjEwOTEyNDRaFw0zNDEwMTkwOTEyNDRaMEAx
GjAYBgNVBAoTEWhvbWUuMnJqdXMubmV0IENBMSIwIAYDVQQDExlob21lLjJyanVz
Lm5ldCBDQSBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGDE4ss9y
9msphQ/Sa/tAoEaGoDHQcg5oRcxWL5SZYjUPNl+zbRZzqkvCz2S1XrHJPiPWbyJX
cZAlPxbwZrWDyKNFMEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8C
AQEwHQYDVR0OBBYEFPZx6AahX5diBMChZbv5N4dh+vCTMAoGCCqGSM49BAMCA0kA
MEYCIQC6yqMM9/s1Dct5jlq0NAGsDA68hVTDcO3RP61lxQlfBwIhAL1jlmIwaSJc
TjdIMjPQ3ombBRqDJBDvDr8o6oOUjret
-----END CERTIFICATE-----

View File

@ -1,9 +0,0 @@
{ pkgs, ... }:
{
security.pki = {
certificateFiles = [
"${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"
./root-ca.crt
];
};
}

View File

@ -12,6 +12,7 @@
locate = {
enable = true;
package = pkgs.plocate;
localuser = null;
};
};
}

View File

@ -3,7 +3,6 @@
{
programs.zsh.enable = true;
environment.shells = with pkgs; [ zsh ];
programs.adb.enable = true;
# Setup torjus user
users.users.torjus = {
@ -21,7 +20,6 @@
"gamemode"
"libvirtd"
"podman"
"adbusers"
];
# Install some user packages
packages = with pkgs; [ ];