Compare commits

..

65 Commits

Author SHA1 Message Date
9ed92a3f91 removed need for rec 2024-02-16 17:48:28 +01:00
28ba8e57bc updated syntax 2024-02-16 17:45:51 +01:00
ae6da0ecc4 made option to set obs autostart behaviour 2024-02-16 17:41:53 +01:00
ae4462d98f made obx-studio autostart and started libs 2024-02-15 21:17:48 +01:00
b0c1be575b changed colour theme and extentions 2024-02-13 21:50:18 +01:00
4f1f1dfa77 added spicetify 2024-02-13 20:56:12 +01:00
a7b7f92d94 updated mimetypes 2024-02-12 15:30:17 +01:00
fae38b30e1 changed image viewer 2024-02-10 13:09:59 +01:00
e1c6428218 Set Mic Mute Keybind 2024-02-08 13:20:42 +01:00
a2f5757a36 Added easyeffects 2024-02-06 23:09:55 +01:00
8b67965f22 formatting 2024-02-06 20:37:18 +01:00
71dffa98ad updated inputs 2024-02-06 19:53:42 +01:00
5dfaa1d593 moved alias to bash module 2024-02-06 16:13:57 +01:00
9da8bbeb37 (re)moved comments 2024-02-06 15:52:02 +01:00
d7d2a131aa nixpkgs followes to remove dependencies 2024-02-06 15:26:29 +01:00
489e53b3ca Updated Flake
* Replaced VSCode with VSCodium
* Added own Overlays
* Added PrismLauncher
2024-02-06 13:23:36 +01:00
2b7235f3e6 Installed PolyMC
Appimage because the official Flake did not work
2024-02-05 22:16:29 +01:00
3266df0ae9 Added Scanned Image Extractor Application 2024-02-03 17:39:57 +01:00
541a9e9d7b updated story architect another time 2024-01-25 18:34:42 +01:00
6149734aa3 updated starc version 2024-01-25 16:24:16 +01:00
9a2ff5baf8 new version of Story Architect 2024-01-25 13:57:25 +01:00
23a3c153f5 added Story Architect Package 2024-01-25 13:09:27 +01:00
cb97b5c09c added mullvad-vpn client 2024-01-09 14:34:00 +01:00
e1f9112222 added java development tools 2024-01-08 23:33:47 +01:00
fae62232cc added onlyoffice 2024-01-08 18:59:37 +01:00
dcf00b71fe added the lutris game launcher 2023-12-28 20:45:53 +01:00
409eb0e4d9 use zig and zls from path 2023-12-11 21:45:34 +01:00
168460efff added zig and zls to vscode 2023-12-11 15:39:00 +01:00
85ff8412a7 gnome wornspaces only on primary monitor 2023-12-09 15:45:35 +01:00
f26f739f29 added modmanager for risk of rain 2 2023-12-06 18:30:44 +01:00
5be09f440a installed typst typesetting program 2023-12-06 17:30:01 +01:00
254ae35c72 updated to 23.11 2023-12-03 21:06:22 +01:00
6eff12ec36 added inkscape 2023-11-29 09:52:25 +01:00
30c4ee388f added wireshark 2023-11-22 13:18:22 +01:00
bb14d0ed56 added obsidian 2023-11-09 10:41:37 +01:00
229804be02 added audio production plugins 2023-11-07 23:24:27 +01:00
625b1d0249 added bottles for windows applications 2023-11-07 21:52:43 +01:00
9fe61160a8 added firefox extension 2023-11-07 21:52:03 +01:00
38a7200862 added rustdesk for remote assistance 2023-11-07 21:51:42 +01:00
eb85c39a96 added plugins for music production 2023-11-07 15:11:32 +01:00
8809d6a5d4 added digital audio workstation 2023-11-05 22:03:18 +01:00
71d0c7a202 added spotify 2023-11-05 13:13:46 +01:00
8a352b287f added university vpn 2023-11-04 14:43:46 +01:00
a7bb2b53f9 removed unused package 2023-10-29 18:26:30 +01:00
49c0c5fcc3 removed easyeffects 2023-10-28 22:41:34 +02:00
62d2fd6779 added easyeffects
this is an application that adds effects to pipewire applications
2023-10-28 22:26:21 +02:00
a463dec994 added vpn client for university 2023-10-24 11:35:45 +02:00
052499525b deactivated copilot for cpp files for uni coding exercises 2023-10-15 16:03:22 +02:00
9945f74cfa set c++ formatting style 2023-10-15 15:31:39 +02:00
659efbcb3e added and configured c/cpp extension and removed extensionr ecommendations 2023-10-15 15:05:56 +02:00
9cc53818e3 added autopep8 extension and fixed toml config 2023-10-15 14:44:31 +02:00
f7b84c1de6 removed onlyoffice
This is because it cannot find nix installed fonts but libreoffice can and replaces it now
2023-10-08 13:58:22 +02:00
3beca553a2 added libre office
This is because onlyoffice can't see nix installed fonts.
2023-10-08 13:06:10 +02:00
175171a3c1 replaced extension 2023-09-30 19:02:04 +02:00
05d4fb2cf1 Added GLSL Lint VSCode Extension 2023-09-30 18:42:46 +02:00
4f064d5451 removed zig and formatted 2023-09-30 16:16:07 +02:00
9e10776439 removed unneeded extension 2023-09-26 20:09:13 +02:00
6111707cc0 added zig extension and language server 2023-09-26 20:06:18 +02:00
23179e6e92 added german dictionary to vscode 2023-09-26 19:54:28 +02:00
5384754f60 added vscode extensions flake to allow for more extensions 2023-09-26 19:49:02 +02:00
4ccbc6e5bf removed weather. did not work 2023-09-25 20:15:27 +02:00
ea4d8c172d updated .gitignore 2023-09-25 20:15:18 +02:00
53832e7687 updated README 2023-09-25 20:15:08 +02:00
d26d2d5116 updated README 2023-09-25 20:09:24 +02:00
a2cd8d467f restructured
* laptop, pc and common now live in systems
* new dev shell to run dconf2nix
* New dconf weather entry (currently not functional)
2023-09-25 20:02:11 +02:00
33 changed files with 723 additions and 299 deletions

1
.envrc Normal file
View File

@ -0,0 +1 @@
use flake

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/.direnv/
/dconf.nix

View File

@ -1,5 +1,34 @@
# Home Manager Config # Home Manager Config
## Systems
Current available systems are:
* `pc`
My workstation PC running NixOS.
* `laptop`
My laptop, a Thinkpad X1 Carbon Gen 7, also running NixOS.
After
## dconf
It is possible to observe live changes to dconf via `dconf watch /`.
If you want to convert the current dconf to a nix expression enter the dev shell with `nix develop` and do
```txt
dconf dump / | dconf2nix > dconf.nix
```
Build with
```txt
home-manager switch --flake .#[configuration]
```
After first deployment it suffices to do `hms` for `home-manager switch ...`.
This relies on the flake being saved to `$HOME/.config/home-manager`.
## Laptop ## Laptop
Specific instructions for the `Lenovo Thinkpad Yoga C13 (Morphius)` Specific instructions for the `Lenovo Thinkpad Yoga C13 (Morphius)`
@ -46,7 +75,7 @@ home-manager switch --flake .#laptop --extra-experimental-features "nix-command
Configure the following: Configure the following:
* synthing * syncthing
* gpg * gpg
In case ssh does not work work do In case ssh does not work work do

View File

@ -1,48 +0,0 @@
{
pkgs,
lib,
...
}: {
nixpkgs.config = {
allowUnfree = false;
allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"vscode"
"vscode-extension-MS-python-vscode-pylance"
"vscode-extension-github-copilot"
"osu-lazer"
];
};
home.packages = with pkgs; [
# Basic utils
unzip
magic-wormhole
# Important graphical applications
keepassxc
logseq
xournalpp
onlyoffice-bin
# Games
osu-lazer
# Communication
webcord
telegram-desktop
signal-desktop
element-desktop
# Creative software
gimp
davinci-resolve
# Misc
gnome-decoder
tor-browser-bundle-bin
hypnotix
];
}

View File

@ -1,81 +0,0 @@
{pkgs, ...}: {
programs.vscode = {
enable = true;
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
keybindings = [
{
key = "alt+a";
command = "editor.action.commentLine";
when = "editorTextFocus && !editorReadonly";
}
];
extensions = with pkgs.vscode-extensions; [
jnoortheen.nix-ide
arrterian.nix-env-selector
mkhl.direnv
ms-python.python
ms-python.vscode-pylance
james-yu.latex-workshop
github.copilot
davidanson.vscode-markdownlint
tamasfe.even-better-toml
asciidoctor.asciidoctor-vscode
streetsidesoftware.code-spell-checker
];
userSettings = {
"git.enableCommitSigning" = true;
"window.menuBarVisibility" = "hidden";
"editor.fontFamily" = "'FiraCode Nerd Font'";
"editor.fontLigatures" = true;
"editor.minimap.enabled" = false;
"[nix]" = {
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "file"; # modificationsIfAvailable does not work
};
"[python]" = {
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "modificationsIfAvailable";
};
"[latex]" = {
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "file"; # modificationsIfAvailable does not work
};
"[toml]" = {
"editor.formatOnSave" = true;
"editor.modificationsIfAvailable" = "file";
};
"python.formatting.autopep8Path" = "${pkgs.python311Packages.autopep8}/bin/autopep8";
"nix.enableLanguageServer" = true;
"nix.serverPath" = "${pkgs.nil}/bin/nil";
"nix.serverSettings" = {
nil = {
formatting = {command = ["${pkgs.alejandra}/bin/alejandra"];};
};
};
"direnv.path.executable" = "${pkgs.direnv}/bin/direnv";
"latex-workshop.latex.outDir" = "%DIR%/out";
"terminal.integrated.profiles.linux" = {
"bash" = {
"path" = "${pkgs.bashInteractive}/bin/bash";
"args" = [];
};
};
"terminal.integrated.defaultProfile.linux" = "bash";
};
};
}

364
flake.lock generated
View File

@ -1,13 +1,29 @@
{ {
"nodes": { "nodes": {
"appimage-runtime": {
"flake": false,
"locked": {
"lastModified": 1652289700,
"narHash": "sha256-uxQBDy/JA7uEboTOUmGaZ2FAKY/0dQ9c0A0N8+J+a7I=",
"owner": "AppImageCrafters",
"repo": "appimage-runtime",
"rev": "6500a1ef68e039caba2ebab1c7ed74c2ea9e67a5",
"type": "github"
},
"original": {
"owner": "AppImageCrafters",
"repo": "appimage-runtime",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1673956053, "lastModified": 1650374568,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -32,13 +48,29 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"locked": { "locked": {
"lastModified": 1667395993, "lastModified": 1656928814,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -48,12 +80,48 @@
} }
}, },
"flake-utils_2": { "flake-utils_2": {
"inputs": {
"systems": "systems"
},
"locked": { "locked": {
"lastModified": 1659877975, "lastModified": 1685518550,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -91,20 +159,42 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1694465129, "lastModified": 1706981411,
"narHash": "sha256-8BQiuobMrCfCbGM7w6Snx+OBYdtTIm0+cGVaKwQ5BFg=", "narHash": "sha256-cLbLPTL1CDmETVh4p0nQtvoF+FSEjsnJTFpTxhXywhQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "9787dffff5d315c9593d3f9fb0f9bf2097e1b57b", "rev": "652fda4ca6dafeb090943422c34ae9145787af37",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-23.05", "ref": "release-23.11",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"nix-appimage": {
"inputs": {
"appimage-runtime": "appimage-runtime",
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_2",
"squashfuse": "squashfuse"
},
"locked": {
"lastModified": 1695276866,
"narHash": "sha256-/BBbYIoDhIPcVwhvau/g4lzrjTnudeRLW5qaTu7LAVs=",
"owner": "ralismark",
"repo": "nix-appimage",
"rev": "17dd6001ec228ea0b8505d6904fc5796d3de5012",
"type": "github"
},
"original": {
"owner": "ralismark",
"repo": "nix-appimage",
"type": "github"
}
},
"nix-index-database": { "nix-index-database": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -112,11 +202,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1694921880, "lastModified": 1707016097,
"narHash": "sha256-yU36cs5UdzhTwsM9bUWUz43N//ELzQ1ro69C07pU/8E=", "narHash": "sha256-V4lHr6hFQ3rK650dh64Xffxsf4kse9vUYWsM+ldjkco=",
"owner": "Mic92", "owner": "Mic92",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "9d2bcc47110b3b6217dfebd6761ba20bc78aedf2", "rev": "3e3dad2808379c522138e2e8b0eb73500721a237",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -127,32 +217,16 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1694937365, "lastModified": 1707091808,
"narHash": "sha256-iHZSGrb9gVpZRR4B2ishUN/1LRKWtSHZNO37C8z1SmA=", "narHash": "sha256-LahKBAfGbY836gtpVNnWwBTIzN7yf/uYM/S0g393r0Y=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5d017a8822e0907fb96f7700a319f9fe2434de02", "rev": "9f2ee8c91ac42da3ae6c6a1d21555f283458247e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-23.05", "ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-master": {
"locked": {
"lastModified": 1694974614,
"narHash": "sha256-0mXsTjf6bAtRStahFiRxT1o8SiegvI02tZoIAhczZLE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2e2c6b2f027463700b557143cb04d561d8b63f9c",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "master",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@ -173,61 +247,28 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-unstable": {
"locked": {
"lastModified": 1694767346,
"narHash": "sha256-5uH27SiVFUwsTsqC5rs3kS7pBoNhtoy9QfTP9BmknGk=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ace5093e36ab1e95cb9463863491bee90d5a4183",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1675309347, "lastModified": 1659526864,
"narHash": "sha256-D3CQ6HRDT2m3XJlrzb5jKq4vNFR5xFTEFKC7iSjlFpM=", "narHash": "sha256-XFzXrc1+6DZb9hBgHfEzfwylPUSqVFJbQPs8eOgYufU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "006c3bd4dd2f5d1d2094047f307cbf9e2b73d9c5", "rev": "478f3cbc8448b5852539d785fbfe9a53304133be",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "id": "nixpkgs",
"ref": "nixpkgs-unstable", "ref": "nixos-22.05",
"repo": "nixpkgs", "type": "indirect"
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1689088367,
"narHash": "sha256-Y2tl2TlKCWEHrOeM9ivjCLlRAKH3qoPUE/emhZECU14=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5c9ddb86679c400d6b7360797b8a22167c2053f8",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-23.05",
"repo": "nixpkgs",
"type": "github"
} }
}, },
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1694975080, "lastModified": 1707245063,
"narHash": "sha256-yxk3j1fV+f+BtNXgKgYgHS+hxAOBKCOGKQCZnuGJrjI=", "narHash": "sha256-1E7kPslBZpGTmz7UTR/HnpCy8Rfc4Kv/njBiTTF1G2g=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "851838871ae06d27373ca51878fef8591c1e1260", "rev": "cd11db9649316bcd231a6ab9c677284ee0d8c184",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -238,7 +279,7 @@
}, },
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat_3",
"flake-utils": [ "flake-utils": [
"wallpaper", "wallpaper",
"flake-utils" "flake-utils"
@ -269,17 +310,150 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-master": "nixpkgs-master",
"nixpkgs-unstable": "nixpkgs-unstable",
"nur": "nur", "nur": "nur",
"wallpaper": "wallpaper", "scanned-image-extractor": "scanned-image-extractor",
"zig": "zig" "spicetify": "spicetify",
"starc": "starc",
"vscode-extensions": "vscode-extensions",
"wallpaper": "wallpaper"
}
},
"scanned-image-extractor": {
"inputs": {
"nix-appimage": "nix-appimage",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1707220285,
"narHash": "sha256-JWXtWnw07xLTPeE51eiNS3MeMltP11DiS5cYsT1r1Tc=",
"ref": "refs/heads/main",
"rev": "846a94c50f089cafe49903ce6e157fe714520a8a",
"revCount": 11,
"type": "git",
"url": "https://git.krsnik.at/Kristian/scanned-image-extractor.git"
},
"original": {
"type": "git",
"url": "https://git.krsnik.at/Kristian/scanned-image-extractor.git"
}
},
"spicetify": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1704167711,
"narHash": "sha256-kFDq+kf/Di/P8bq5sUP8pVwRkrSVrABksBjMPmLic3s=",
"owner": "the-argus",
"repo": "spicetify-nix",
"rev": "1325416f951d6a82cfddb1289864ad782e2b87c4",
"type": "github"
},
"original": {
"owner": "the-argus",
"repo": "spicetify-nix",
"type": "github"
}
},
"squashfuse": {
"flake": false,
"locked": {
"lastModified": 1655253282,
"narHash": "sha256-RIhDXzpmrYUOwj5OYzjWKJw0cwE+L3t/9pIkg/hFXA0=",
"owner": "vasi",
"repo": "squashfuse",
"rev": "d1d7ddafb765098b34239eacaf2f9abee1fbc27c",
"type": "github"
},
"original": {
"owner": "vasi",
"repo": "squashfuse",
"type": "github"
}
},
"starc": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1707220280,
"narHash": "sha256-VBgd9wOebW7RWym52434Mgz5w2k1csgw35JAe28Buvs=",
"ref": "refs/heads/main",
"rev": "5586cecb4f76dea16f38b2c0678904edbcfb191b",
"revCount": 18,
"type": "git",
"url": "https://git.krsnik.at/Kristian/starc-flake.git"
},
"original": {
"type": "git",
"url": "https://git.krsnik.at/Kristian/starc-flake.git"
}
},
"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": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"vscode-extensions": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils_3",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1707182119,
"narHash": "sha256-Egt1PmjNAbx2nS0h/iWpaTCcOzLPHpRXzTJBt3waEAs=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "4e7767c214364217e0a7611dca3f3420555ceb20",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"type": "github"
} }
}, },
"wallpaper": { "wallpaper": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_2", "nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks": "pre-commit-hooks" "pre-commit-hooks": "pre-commit-hooks"
}, },
"locked": { "locked": {
@ -295,26 +469,6 @@
"repo": "nix-wallpaper", "repo": "nix-wallpaper",
"type": "github" "type": "github"
} }
},
"zig": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1694952442,
"narHash": "sha256-9CblLz91gHuz5NTrZcW/Q53wT0i1N3Px5xKjpJGmm/k=",
"owner": "mitchellh",
"repo": "zig-overlay",
"rev": "2689ccaadb1737efa23398844efef1fc73ad7fa4",
"type": "github"
},
"original": {
"owner": "mitchellh",
"repo": "zig-overlay",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

118
flake.nix
View File

@ -2,54 +2,82 @@
description = "Home Manager configuration of kristian"; description = "Home Manager configuration of kristian";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; # nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-master.url = "github:nixos/nixpkgs/master"; # nixpkgs-master.url = "github:nixos/nixpkgs/master";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-23.05"; url = "github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# Nix User Repository nur = {
nur.url = "github:nix-community/NUR"; url = "github:nix-community/NUR";
};
# Zig wallpaper = {
zig.url = "github:mitchellh/zig-overlay"; url = "github:lunik1/nix-wallpaper";
inputs.nixpkgs.follows = "nixpkgs";
};
# Wallpaper
wallpaper.url = "github:lunik1/nix-wallpaper";
# Nix index
nix-index-database = { nix-index-database = {
url = "github:Mic92/nix-index-database"; url = "github:Mic92/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
vscode-extensions = {
url = "github:nix-community/nix-vscode-extensions";
inputs.nixpkgs.follows = "nixpkgs";
};
spicetify = {
url = "github:the-argus/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
starc = {
url = "git+https://git.krsnik.at/Kristian/starc-flake.git";
inputs.nixpkgs.follows = "nixpkgs";
};
scanned-image-extractor = {
url = "git+https://git.krsnik.at/Kristian/scanned-image-extractor.git";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = { outputs = {
self, self,
nixpkgs, nixpkgs,
nixpkgs-unstable, # nixpkgs-unstable,
nixpkgs-master, # nixpkgs-master,
home-manager, home-manager,
nur, nur,
zig,
wallpaper, wallpaper,
nix-index-database, nix-index-database,
vscode-extensions,
spicetify,
starc,
scanned-image-extractor,
}: let }: let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
in { in {
formatter.${system} = pkgs.alejandra; formatter.${system} = pkgs.alejandra;
homeConfigurations = let
commonModules = [ commonModules = [
./common ./systems/common
{ {
_module.args.wallpaper = wallpaper.packages.${system}.default; _module.args = {
inherit spicetify;
wallpaper = wallpaper.packages.${system}.default;
libs = import ./libs;
};
} }
spicetify.homeManagerModule
nur.nixosModules.nur nur.nixosModules.nur
nix-index-database.hmModules.nix-index nix-index-database.hmModules.nix-index
@ -59,35 +87,35 @@
{ {
nixpkgs.overlays = [ nixpkgs.overlays = [
zig.overlays.default # Add zig vscode-extensions.overlays.default
( # https://github.com/nix-community/home-manager/issues/1538#issuecomment-706627100
final: prev: {
unstable = import nixpkgs-unstable {
system = final.system;
config.allowUnfreePredicate = _: true;
};
master = import nixpkgs-master {
system = final.system;
config.allowUnfreePredicate = _: true;
};
}
)
( # Overrides davinci-resolve with the unstable version because of https://github.com/NixOS/nixpkgs/pull/246074
final: prev: {davinci-resolve = final.master.davinci-resolve;}
)
];
}
];
homeConfigurations = { starc.overlays.default
scanned-image-extractor.overlays.default
# ( # https://github.com/nix-community/home-manager/issues/1538#issuecomment-706627100
# final: prev: {
# unstable = import nixpkgs-unstable {
# system = final.system;
# config.allowUnfreePredicate = _: true;
# };
# master = import nixpkgs-master {
# system = final.system;
# config.allowUnfreePredicate = _: true;
# };
# }
# )
];
}
];
in {
pc = home-manager.lib.homeManagerConfiguration { pc = home-manager.lib.homeManagerConfiguration {
inherit pkgs; inherit pkgs;
modules = modules =
[ [
./pc ./systems/pc
] ]
++ self.commonModules; ++ commonModules;
}; };
laptop = home-manager.lib.homeManagerConfiguration { laptop = home-manager.lib.homeManagerConfiguration {
@ -95,10 +123,16 @@
modules = modules =
[ [
./laptop ./systems/laptop
] ]
++ self.commonModules; ++ commonModules;
}; };
}; };
devShells.${system}.default = pkgs.mkShellNoCC {
packages = [
pkgs.dconf2nix
];
};
}; };
} }

16
libs/default.nix Normal file
View File

@ -0,0 +1,16 @@
{
mkAutostart = {
pkgs,
name,
command,
}: {
source = "${
pkgs.makeDesktopItem {
name = "${name}-autostart";
desktopName = "${name}-autostart";
exec = command;
noDisplay = true;
}
}/share/applications/${name}-autostart.desktop";
};
}

View File

@ -7,6 +7,7 @@
''; '';
shellAliases = { shellAliases = {
code = "codium"; # Alias VSCode with VSCodium
ll = "ls -lh"; ll = "ls -lh";
la = "ls -lah"; la = "ls -lah";
".." = "cd .."; ".." = "cd ..";

View File

@ -26,7 +26,9 @@
./gnome.nix ./gnome.nix
./gpg.nix ./gpg.nix
./nvim ./nvim
./obs.nix
./packages.nix ./packages.nix
./spiceify.nix
./thunderbird.nix ./thunderbird.nix
./vscode.nix ./vscode.nix
./mpv.nix ./mpv.nix
@ -35,18 +37,21 @@
# Programs # Programs
programs = { programs = {
home-manager.enable = true; # Allow home-manager to manage itself home-manager.enable = true; # Allow home-manager to manage itself
obs-studio.enable = true;
yt-dlp.enable = true; yt-dlp.enable = true;
}; };
xdg.mimeApps = { xdg.mimeApps = {
enable = true; enable = true;
defaultApplications = { defaultApplications = let
"image/png" = ["org.gnome.eog.desktop"]; imageViewer = ["org.gnome.Loupe.desktop"];
"image/jpeg" = ["org.gnome.eog.desktop"]; videoViewer = ["mpv.desktop"];
"video/webm" = ["mpv.desktop"]; documentViewer = ["org.gnome.Evince.desktop"];
"application/pdf" = ["org.gnome.Evince.desktop"]; in {
"image/png" = imageViewer;
"image/jpeg" = imageViewer;
"video/webm" = videoViewer;
"application/pdf" = documentViewer;
}; };
}; };
} }

View File

@ -13,6 +13,7 @@
sidebery sidebery
sponsorblock sponsorblock
dearrow dearrow
user-agent-string-switcher
]; ];
settings = { settings = {

View File

@ -1,9 +1,11 @@
{...}: { {...}: {
programs.git = rec { programs.git = let
enable = true;
userName = "Kristian Krsnik"; userName = "Kristian Krsnik";
userEmail = "git@krsnik.at"; userEmail = "git@krsnik.at";
in {
enable = true;
inherit userName userEmail;
signing = { signing = {
key = userEmail; key = userEmail;

View File

@ -35,14 +35,12 @@
in { in {
picture-uri = "file://${wallpaper.override { picture-uri = "file://${wallpaper.override {
preset = "nord-snow-aurora"; preset = "nord-snow-aurora";
inherit width; inherit width height;
inherit height;
}}/share/wallpapers/nixos-wallpaper.png"; }}/share/wallpapers/nixos-wallpaper.png";
picture-uri-dark = "file://${wallpaper.override { picture-uri-dark = "file://${wallpaper.override {
preset = "nord-night-aurora"; preset = "nord-night-aurora";
inherit width; inherit width height;
inherit height;
}}/share/wallpapers/nixos-wallpaper.png"; }}/share/wallpapers/nixos-wallpaper.png";
}; };
@ -53,6 +51,10 @@
move-to-workspace-right = ["<Shift><Alt>2"]; move-to-workspace-right = ["<Shift><Alt>2"];
}; };
"org/gnome/settings-daemon/plugins/media-keys" = {
mic-mute = ["<Shift>AudioMute"];
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
binding = "<Shift><Alt>a"; binding = "<Shift><Alt>a";
command = "kgx"; command = "kgx";
@ -75,6 +77,7 @@
"org/gnome/mutter" = { "org/gnome/mutter" = {
edge-tiling = true; edge-tiling = true;
dynamic-workspaces = true; dynamic-workspaces = true;
workspaces-only-on-primary = true;
}; };
"org/gnome/Console" = { "org/gnome/Console" = {

32
systems/common/obs.nix Normal file
View File

@ -0,0 +1,32 @@
{
pkgs,
libs,
config,
...
}: let
cfg = config.programs.obs;
in {
options.programs.obs = {
autostart = pkgs.lib.mkOption {
type = pkgs.lib.types.bool;
default = false;
};
};
config = {
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
obs-source-record
];
};
xdg.configFile = pkgs.lib.mkIf cfg.autostart {
"autostart/obs-autostart.desktop" = libs.mkAutostart {
inherit pkgs;
name = "obs";
command = "obs --startreplaybuffer";
};
};
};
}

110
systems/common/packages.nix Normal file
View File

@ -0,0 +1,110 @@
{
pkgs,
lib,
...
}: {
nixpkgs.config = {
allowUnfree = false;
permittedInsecurePackages = [
"electron-25.9.0"
];
allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"osu-lazer"
"spotify"
"linuxsampler"
"libsciter"
"obsidian"
"steam"
"steam-original"
"davinci-resolve"
];
};
home.packages = with pkgs; [
# Basic utils
unzip
magic-wormhole
# Important graphical applications
keepassxc
logseq
xournalpp
libreoffice
onlyoffice-bin
# For windows applications
bottles
# Games
lutris
osu-lazer
r2modman
prismlauncher
# Communication
webcord
telegram-desktop
signal-desktop
element-desktop
# Creative software
gimp
inkscape
davinci-resolve
ardour # DAW
# plugins
sfizz
swh_lv2
zynaddsubfx
caps
cmt
distrho
surge
calf
dexed
odin2
ninjas2
linuxsampler
yabridge
yabridgectl
geonkick # for drums
# Misc
gnome-decoder
tor-browser-bundle-bin
obsidian
easyeffects
starc
scanned-image-extractor
rustdesk
wireshark
mullvad-vpn
# Entertainment
hypnotix
# VPN client for university
(
pkgs.writeScriptBin "univpn"
''
read -p "Username: " username
read -s -p "Password: " password
# newline
echo ""
read -p "OTP: " otp
sudo ${pkgs.gof5}/bin/gof5 --server "vpn.univie.ac.at" --username "$username@$otp" --password "$password"
''
)
];
}

View File

@ -0,0 +1,23 @@
{
pkgs,
spicetify,
...
}: let
spicePkgs = spicetify.packages.${pkgs.system}.default;
in {
programs.spicetify = {
enable = true;
theme = spicePkgs.themes.text;
colorScheme = "CatppuccinLatte";
enabledExtensions = with spicePkgs.extensions; [
shuffle # shuffle+ (special characters are sanitized out of ext names)
groupSession
wikify
fullScreen
playlistIntersection
phraseToPlaylist
];
};
}

136
systems/common/vscode.nix Normal file
View File

@ -0,0 +1,136 @@
{pkgs, ...}: {
programs.vscode = {
enable = true;
package = pkgs.vscodium; # Replace VSCode with VSCodium
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
keybindings = [
{
key = "alt+a";
command = "editor.action.commentLine";
when = "editorTextFocus && !editorReadonly";
}
];
# This will only yield extensions that are compatible with the installed version of vscode
extensions = with pkgs.vscode-marketplace; [
jnoortheen.nix-ide
mkhl.direnv
ms-python.python
ms-python.vscode-pylance
ms-python.autopep8
james-yu.latex-workshop
davidanson.vscode-markdownlint
tamasfe.even-better-toml
asciidoctor.asciidoctor-vscode
ziglang.vscode-zig
slevesque.shader
ms-vscode.cpptools
nvarner.typst-lsp
redhat.java
streetsidesoftware.code-spell-checker
streetsidesoftware.code-spell-checker-german
];
userSettings = {
"git.enableCommitSigning" = true;
"window.menuBarVisibility" = "toggle";
"editor.fontFamily" = "'FiraCode Nerd Font'";
"editor.fontLigatures" = true;
"editor.minimap.enabled" = false;
"extensions.ignoreRecommendations" = true;
"[nix]" = {
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "file"; # modificationsIfAvailable does not work
};
"[python]" = {
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "modificationsIfAvailable";
"editor.defaultFormatter" = "ms-python.autopep8";
};
"[javascript]" = {
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "modificationsIfAvailable";
};
"[typescript]" = {
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "modificationsIfAvailable";
};
"[latex]" = {
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "file"; # modificationsIfAvailable does not work
};
"[toml]" = {
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "modificationsIfAvailable";
};
"[c]" = {
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "modificationsIfAvailable";
};
"[cpp]" = {
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "modificationsIfAvailable";
};
"[typst]" = {
"editor.defaultFormatter" = "nvarner.typst-lsp";
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "modificationsIfAvailable";
};
"nix.enableLanguageServer" = true;
"nix.serverPath" = "${pkgs.nil}/bin/nil";
"nix.serverSettings" = {
nil = {
formatting = {command = ["${pkgs.alejandra}/bin/alejandra"];};
};
};
"direnv.path.executable" = "${pkgs.direnv}/bin/direnv";
"latex-workshop.latex.outDir" = "%DIR%/out";
"terminal.integrated.profiles.linux" = {
"bash" = {
"path" = "${pkgs.bashInteractive}/bin/bash";
"args" = [];
};
};
"terminal.integrated.defaultProfile.linux" = "bash";
"cSpell.language" = "en,de-de";
"zig.path" = "";
"zig.zls.path" = "";
"zig.initialSetupDone" = true;
"typst-lsp.serverPath" = "${pkgs.typst-lsp}/bin/typst-lsp";
"typst-lsp.experimentalFormatterMode" = "on";
"C_Cpp.default.compilerPath" = "${pkgs.gnat}/bin/g++";
"C_Cpp.default.includePath" = [
"\${workspaceFolder}/**"
];
"C_Cpp.clang_format_fallbackStyle" = "Microsoft";
"redhat.telemetry.enabled" = false;
"java.jdt.ls.java.home" = "${pkgs.jdk21_headless}";
};
};
}

View File

@ -11,4 +11,6 @@
power-button-action = "hibernate"; power-button-action = "hibernate";
}; };
}; };
programs.obs.autostart = false;
} }

View File

@ -11,4 +11,6 @@
power-button-action = "suspend"; power-button-action = "suspend";
}; };
}; };
programs.obs.autostart = true;
} }