Compare commits
2 Commits
32aa882014
...
101ee551b5
| Author | SHA1 | Date | |
|---|---|---|---|
| 101ee551b5 | |||
| 685fab808e |
122
.viminfo
Normal file
122
.viminfo
Normal file
@@ -0,0 +1,122 @@
|
||||
# This viminfo file was generated by Vim 9.1.
|
||||
# You may edit it if you're careful!
|
||||
|
||||
# Viminfo version
|
||||
|1,4
|
||||
|
||||
# Value of 'encoding' when this file was written
|
||||
*encoding=utf-8
|
||||
|
||||
|
||||
# hlsearch on (H) or off (h):
|
||||
~h
|
||||
# Last Search Pattern:
|
||||
~Msle0~/}
|
||||
|
||||
# Command Line History (newest to oldest):
|
||||
:wq
|
||||
|2,0,1767395245,,"wq"
|
||||
|
||||
# Search String History (newest to oldest):
|
||||
? }
|
||||
|2,1,1767395059,,"}"
|
||||
? \<inputs\>
|
||||
|2,1,1767395050,,"\\<inputs\\>"
|
||||
? \<home-manager\>
|
||||
|2,1,1767395031,,"\\<home-manager\\>"
|
||||
|
||||
# Expression History (newest to oldest):
|
||||
|
||||
# Input Line History (newest to oldest):
|
||||
|
||||
# Debug Line History (newest to oldest):
|
||||
|
||||
# Registers:
|
||||
""- CHAR 0
|
||||
#
|
||||
|3,1,36,0,1,0,1767395242,"#"
|
||||
|
||||
# File marks:
|
||||
'0 102 10 ~/flake.nix
|
||||
|4,48,102,10,1767395245,"~/flake.nix"
|
||||
'1 92 10 ~/flake.nix
|
||||
|4,49,92,10,1767395070,"~/flake.nix"
|
||||
'2 92 10 ~/flake.nix
|
||||
|4,50,92,10,1767395070,"~/flake.nix"
|
||||
'3 17 4 ~/home/xdg.nix
|
||||
|4,51,17,4,1767395009,"~/home/xdg.nix"
|
||||
|
||||
# Jumplist (newest first):
|
||||
-' 102 10 ~/flake.nix
|
||||
|4,39,102,10,1767395245,"~/flake.nix"
|
||||
-' 92 10 ~/flake.nix
|
||||
|4,39,92,10,1767395234,"~/flake.nix"
|
||||
-' 92 10 ~/flake.nix
|
||||
|4,39,92,10,1767395070,"~/flake.nix"
|
||||
-' 102 10 ~/flake.nix
|
||||
|4,39,102,10,1767395059,"~/flake.nix"
|
||||
-' 100 12 ~/flake.nix
|
||||
|4,39,100,12,1767395050,"~/flake.nix"
|
||||
-' 100 12 ~/flake.nix
|
||||
|4,39,100,12,1767395050,"~/flake.nix"
|
||||
-' 96 12 ~/flake.nix
|
||||
|4,39,96,12,1767395031,"~/flake.nix"
|
||||
-' 96 12 ~/flake.nix
|
||||
|4,39,96,12,1767395031,"~/flake.nix"
|
||||
-' 1 0 ~/flake.nix
|
||||
|4,39,1,0,1767395014,"~/flake.nix"
|
||||
-' 1 0 ~/flake.nix
|
||||
|4,39,1,0,1767395014,"~/flake.nix"
|
||||
-' 17 4 ~/home/xdg.nix
|
||||
|4,39,17,4,1767395009,"~/home/xdg.nix"
|
||||
-' 17 4 ~/home/xdg.nix
|
||||
|4,39,17,4,1767395009,"~/home/xdg.nix"
|
||||
-' 17 4 ~/home/xdg.nix
|
||||
|4,39,17,4,1767395009,"~/home/xdg.nix"
|
||||
-' 17 4 ~/home/xdg.nix
|
||||
|4,39,17,4,1767395009,"~/home/xdg.nix"
|
||||
-' 1 0 ~/home/xdg.nix
|
||||
|4,39,1,0,1767394999,"~/home/xdg.nix"
|
||||
-' 1 0 ~/home/xdg.nix
|
||||
|4,39,1,0,1767394999,"~/home/xdg.nix"
|
||||
-' 1 0 ~/home/xdg.nix
|
||||
|4,39,1,0,1767394999,"~/home/xdg.nix"
|
||||
-' 1 0 ~/home/xdg.nix
|
||||
|4,39,1,0,1767394999,"~/home/xdg.nix"
|
||||
|
||||
# History of marks within files (newest to oldest):
|
||||
|
||||
> ~/flake.nix
|
||||
* 1767395243 0
|
||||
" 102 10
|
||||
^ 92 11
|
||||
. 102 10
|
||||
+ 95 12
|
||||
+ 96 12
|
||||
+ 97 12
|
||||
+ 98 12
|
||||
+ 99 12
|
||||
+ 100 12
|
||||
+ 101 12
|
||||
+ 102 10
|
||||
+ 93 10
|
||||
+ 92 10
|
||||
+ 93 10
|
||||
+ 95 12
|
||||
+ 96 12
|
||||
+ 97 12
|
||||
+ 98 12
|
||||
+ 99 12
|
||||
+ 100 12
|
||||
+ 101 12
|
||||
+ 102 10
|
||||
|
||||
> ~/home/xdg.nix
|
||||
* 1767395008 0
|
||||
" 17 4
|
||||
^ 17 5
|
||||
. 17 4
|
||||
+ 14 4
|
||||
+ 15 4
|
||||
+ 16 4
|
||||
+ 17 4
|
||||
@@ -58,8 +58,7 @@
|
||||
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
|
||||
home-manager.users.gunalx = import ./home/gunalx.nix;
|
||||
home-manager.backupFileExtension = "bac";
|
||||
home-manager.extraSpecialArgs = { inherit nix-colors inputs; };
|
||||
@@ -92,8 +91,7 @@
|
||||
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
|
||||
home-manager.users.gunalx = import ./home/gunalx.nix;
|
||||
home-manager.backupFileExtension = "bac";
|
||||
home-manager.extraSpecialArgs = { inherit nix-colors inputs; };
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
programs.aider-chat = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.aider-chat-full;
|
||||
package = pkgs.unstable.aider-chat-with-playwright;
|
||||
settings = {
|
||||
architect = true;
|
||||
auto-accept-architect = false;
|
||||
@@ -24,12 +24,12 @@
|
||||
show-model-warnings = false;
|
||||
verify-ssl = false;
|
||||
|
||||
watch-files=true;
|
||||
analytics-disable=true;
|
||||
check-update=false;
|
||||
multiline=true;
|
||||
notifications=true;
|
||||
show-diffs=true;
|
||||
watch-files = true;
|
||||
analytics-disable = true;
|
||||
check-update = false;
|
||||
multiline = true;
|
||||
notifications = true;
|
||||
show-diffs = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -6,11 +6,14 @@
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
../modules/unstable.nix
|
||||
../modules/nixpkgs.nix
|
||||
|
||||
./sshconfig.nix
|
||||
./atuin.nix
|
||||
./git.nix
|
||||
./bash.nix
|
||||
./xdg.nix
|
||||
#./xdg.nix
|
||||
|
||||
# theming
|
||||
./colors.nix
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
];
|
||||
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
vim-indent-guides
|
||||
|
||||
# --- UI / File Explorer (Replaces Chadtree) ---
|
||||
nvim-tree-lua
|
||||
nvim-web-devicons
|
||||
|
||||
@@ -13,129 +13,127 @@
|
||||
programs.opencode = {
|
||||
enable = true;
|
||||
enableMcpIntegration = true;
|
||||
|
||||
|
||||
settings = {
|
||||
model = "github-copilot/gpt-5.2";
|
||||
small_model = "zai-coding-plan/glm-4.6";
|
||||
small_model = "zai-coding-plan/glm-4.7";
|
||||
autoshare = false;
|
||||
autoupdate = false;
|
||||
};
|
||||
|
||||
|
||||
agents = {
|
||||
code-reviewer = ''
|
||||
# Code Reviewer Agent
|
||||
|
||||
You are a senior software engineer specializing in code reviews.
|
||||
Focus on code quality, security, and maintainability.
|
||||
|
||||
## Guidelines
|
||||
- Review for potential bugs and edge cases
|
||||
- Check for security vulnerabilities
|
||||
- Ensure code follows best practices
|
||||
- Suggest improvements for readability and performance
|
||||
'';
|
||||
code-reviewer = ''
|
||||
# Code Reviewer Agent
|
||||
|
||||
debugger = ''
|
||||
# Debugger Agent
|
||||
|
||||
You are a software engineer specializing in debugging and troubleshooting.
|
||||
Focus on identifying issues, providing insights into existing bugs, and suggesting improvements to the debugging process.
|
||||
|
||||
## Guidelines
|
||||
- Look for unhandled exceptions, crashes, or error states.
|
||||
- Identify and remove redundant or unnecessary debug/print statements.
|
||||
- Check for proper logging practices: ensure log levels (info, debug, error) are used correctly.
|
||||
- Examine error messages for clarity and context—ensure they aid in troubleshooting.
|
||||
- Look for missing or incorrect error handling and suggest improvements.
|
||||
- Trace the flow of execution to catch logical or state-related bugs.
|
||||
- Ensure relevant variable states are being monitored during runtime to spot anomalies.
|
||||
- Suggest improvements to breakpoints, watchpoints, or other debugging tools for better visibility.
|
||||
- Look for performance bottlenecks that could be causing issues and suggest optimizations.
|
||||
- Check for edge cases and race conditions that might not be covered by current debugging.
|
||||
- Ensure debugging steps or tools don’t affect production environments (i.e., avoid verbose logging in production).
|
||||
- Document findings and proposed fixes clearly for future reference.
|
||||
'';
|
||||
You are a senior software engineer specializing in code reviews.
|
||||
Focus on code quality, security, and maintainability.
|
||||
|
||||
simplifier = ''
|
||||
# Simplifier Agent
|
||||
|
||||
You are a software engineer specializing in simplifying and refactoring complex code.
|
||||
Focus on making the code more readable, maintainable, and easier to understand without altering its functionality.
|
||||
|
||||
## Guidelines
|
||||
- Break down long or complex functions into smaller, well-named helper functions or methods.
|
||||
- Identify and remove any redundant or duplicate logic, consolidating wherever possible.
|
||||
- Use more descriptive variable and function names to improve clarity.
|
||||
- Simplify nested loops or conditionals (e.g., consider early returns to reduce indentation).
|
||||
- Replace complex data structures or algorithms with simpler, more efficient alternatives if appropriate.
|
||||
- Refactor complex conditional logic (e.g., using polymorphism, strategy pattern, or lookup tables where applicable).
|
||||
- Replace hardcoded values with constants or configuration variables to improve flexibility.
|
||||
- Group related logic together to improve cohesion within classes or functions.
|
||||
- Ensure the code follows the DRY (Don't Repeat Yourself) principle and refactor to remove duplication.
|
||||
- Simplify error handling by centralizing common error paths or using more consistent exception handling.
|
||||
- Remove unnecessary comments or redundant code that doesn’t add value to readability.
|
||||
- Check for opportunities to use built-in language features or libraries to reduce custom code (e.g., use `map()` instead of for-loops in Python).
|
||||
- Ensure code is modular and maintainable, facilitating easier testing and future updates.
|
||||
- Use early exits or guard clauses to minimize nested logic and make the code more straightforward.
|
||||
|
||||
'';
|
||||
## Guidelines
|
||||
- Review for potential bugs and edge cases
|
||||
- Check for security vulnerabilities
|
||||
- Ensure code follows best practices
|
||||
- Suggest improvements for readability and performance
|
||||
'';
|
||||
|
||||
debugger = ''
|
||||
# Debugger Agent
|
||||
|
||||
You are a software engineer specializing in debugging and troubleshooting.
|
||||
Focus on identifying issues, providing insights into existing bugs, and suggesting improvements to the debugging process.
|
||||
|
||||
## Guidelines
|
||||
- Look for unhandled exceptions, crashes, or error states.
|
||||
- Identify and remove redundant or unnecessary debug/print statements.
|
||||
- Check for proper logging practices: ensure log levels (info, debug, error) are used correctly.
|
||||
- Examine error messages for clarity and context—ensure they aid in troubleshooting.
|
||||
- Look for missing or incorrect error handling and suggest improvements.
|
||||
- Trace the flow of execution to catch logical or state-related bugs.
|
||||
- Ensure relevant variable states are being monitored during runtime to spot anomalies.
|
||||
- Suggest improvements to breakpoints, watchpoints, or other debugging tools for better visibility.
|
||||
- Look for performance bottlenecks that could be causing issues and suggest optimizations.
|
||||
- Check for edge cases and race conditions that might not be covered by current debugging.
|
||||
- Ensure debugging steps or tools don’t affect production environments (i.e., avoid verbose logging in production).
|
||||
- Document findings and proposed fixes clearly for future reference.
|
||||
'';
|
||||
|
||||
simplifier = ''
|
||||
# Simplifier Agent
|
||||
|
||||
You are a software engineer specializing in simplifying and refactoring complex code.
|
||||
Focus on making the code more readable, maintainable, and easier to understand without altering its functionality.
|
||||
|
||||
## Guidelines
|
||||
- Break down long or complex functions into smaller, well-named helper functions or methods.
|
||||
- Identify and remove any redundant or duplicate logic, consolidating wherever possible.
|
||||
- Use more descriptive variable and function names to improve clarity.
|
||||
- Simplify nested loops or conditionals (e.g., consider early returns to reduce indentation).
|
||||
- Replace complex data structures or algorithms with simpler, more efficient alternatives if appropriate.
|
||||
- Refactor complex conditional logic (e.g., using polymorphism, strategy pattern, or lookup tables where applicable).
|
||||
- Replace hardcoded values with constants or configuration variables to improve flexibility.
|
||||
- Group related logic together to improve cohesion within classes or functions.
|
||||
- Ensure the code follows the DRY (Don't Repeat Yourself) principle and refactor to remove duplication.
|
||||
- Simplify error handling by centralizing common error paths or using more consistent exception handling.
|
||||
- Remove unnecessary comments or redundant code that doesn’t add value to readability.
|
||||
- Check for opportunities to use built-in language features or libraries to reduce custom code (e.g., use `map()` instead of for-loops in Python).
|
||||
- Ensure code is modular and maintainable, facilitating easier testing and future updates.
|
||||
- Use early exits or guard clauses to minimize nested logic and make the code more straightforward.
|
||||
|
||||
'';
|
||||
|
||||
};
|
||||
commands = {
|
||||
commit = ''
|
||||
# Commit Command
|
||||
commit = ''
|
||||
# Commit Command
|
||||
|
||||
Create a git commit with proper message formatting following conventional commits.
|
||||
Usage: /commit [message]
|
||||
'';
|
||||
Create a git commit with proper message formatting following conventional commits.
|
||||
Usage: /commit [message]
|
||||
'';
|
||||
};
|
||||
|
||||
rules = ''
|
||||
### **General Project Guidelines**
|
||||
#### **Separation of Concerns**
|
||||
### **General Project Guidelines**
|
||||
#### **Separation of Concerns**
|
||||
|
||||
* Keep your code **loosely coupled** components/modules should only know about what they need.
|
||||
* Maintain clear **separation between domain logic and business logic** ensure your domain layer is independent of infrastructure or framework specific details.
|
||||
* Ensure **separation of data concerns** never mix UI data, business data, and domain entities in a single layer.
|
||||
* Keep your code **loosely coupled** components/modules should only know about what they need.
|
||||
* Maintain clear **separation between domain logic and business logic** ensure your domain layer is independent of infrastructure or framework specific details.
|
||||
* Ensure **separation of data concerns** never mix UI data, business data, and domain entities in a single layer.
|
||||
|
||||
#### **Typing and Type Safety**
|
||||
#### **Typing and Type Safety**
|
||||
|
||||
* **Always define types** explicitly for variables, parameters, and return values.
|
||||
* Avoid using `any` if you're unsure about a type, lean on **unknown** or **generics** until you can define it properly.
|
||||
* **Interfaces and Types** should be descriptive and reusable prefer interfaces for object shapes, and types for unions/intersections or specific business rules.
|
||||
* Avoid overcomplicating types focus on clarity and consistency.
|
||||
* **Always define types** explicitly for variables, parameters, and return values.
|
||||
* Avoid using `any` if you're unsure about a type, lean on **unknown** or **generics** until you can define it properly.
|
||||
* **Interfaces and Types** should be descriptive and reusable prefer interfaces for object shapes, and types for unions/intersections or specific business rules.
|
||||
* Avoid overcomplicating types focus on clarity and consistency.
|
||||
|
||||
#### **Code Simplicity**
|
||||
#### **Code Simplicity**
|
||||
|
||||
* Write **simple, understandable code** don't over engineer solutions unless absolutely necessary.
|
||||
* Keep methods and functions **small and focused** follow the Single Responsibility Principle.
|
||||
* **Comment only when necessary** to explain complex or non obvious patterns **no comments for simple or self explanatory code**.
|
||||
* Write **simple, understandable code** don't over engineer solutions unless absolutely necessary.
|
||||
* Keep methods and functions **small and focused** follow the Single Responsibility Principle.
|
||||
* **Comment only when necessary** to explain complex or non obvious patterns **no comments for simple or self explanatory code**.
|
||||
|
||||
#### **Production-Ready Code**
|
||||
#### **Production-Ready Code**
|
||||
|
||||
* Always write **production-grade code** optimize for maintainability, readability, and scalability.
|
||||
* Ensure **robust error handling** catch edge cases, validate inputs, and handle exceptions gracefully.
|
||||
* Always write **production-grade code** optimize for maintainability, readability, and scalability.
|
||||
* Ensure **robust error handling** catch edge cases, validate inputs, and handle exceptions gracefully.
|
||||
|
||||
#### **Framework and Library Usage**
|
||||
#### **Framework and Library Usage**
|
||||
|
||||
* Use frameworks and libraries **where they make sense**, but avoid unnecessary dependencies, we usually want to keep dependencies down.
|
||||
* Follow **framework best practices** for structure, state management, and lifecycle methods
|
||||
* Keep **UI and business logic separate** don't directly tie your UI components to business logic; use hooks or services to handle interactions.
|
||||
* Use frameworks and libraries **where they make sense**, but avoid unnecessary dependencies, we usually want to keep dependencies down.
|
||||
* Follow **framework best practices** for structure, state management, and lifecycle methods
|
||||
* Keep **UI and business logic separate** don't directly tie your UI components to business logic; use hooks or services to handle interactions.
|
||||
|
||||
#### **Documentation**
|
||||
#### **Documentation**
|
||||
|
||||
* **Document key architecture decisions** especially if they are complex or non intuitive.
|
||||
* Only document the **why** and **how** when it's not obvious avoid redundant or trivial comments.
|
||||
* Keep your documentation to the developmentlog.md Make a new section, dont write to long, just briefely what needs to be documented.
|
||||
* **Document key architecture decisions** especially if they are complex or non intuitive.
|
||||
* Only document the **why** and **how** when it's not obvious avoid redundant or trivial comments.
|
||||
* Keep your documentation to the developmentlog.md Make a new section, dont write to long, just briefely what needs to be documented.
|
||||
|
||||
#### **Performance Considerations**
|
||||
#### **Performance Considerations**
|
||||
|
||||
* Optimize for **readability first**, then **performance** measure performance bottlenecks before optimizing.
|
||||
* When optimizing, our first priority is finding arcitectural problems, then finding out ways to parralelize.
|
||||
* Optimize for **readability first**, then **performance** measure performance bottlenecks before optimizing.
|
||||
* When optimizing, our first priority is finding arcitectural problems, then finding out ways to parralelize.
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
45
home/xdg.nix
45
home/xdg.nix
@@ -4,22 +4,39 @@
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal
|
||||
#xdg-desktop-portal-wlr
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-gnome
|
||||
kdePackages.xdg-desktop-portal-kde
|
||||
xdg-launch
|
||||
xdg-ninja
|
||||
xdg-utils
|
||||
];
|
||||
|
||||
{
|
||||
# Enable XDG base directories
|
||||
xdg.enable = true;
|
||||
|
||||
# home.sessionVariables = {
|
||||
# };
|
||||
# Install the necessary packages for XDG compliance and management
|
||||
home.packages = with pkgs; [
|
||||
xdg-utils
|
||||
xdg-launch
|
||||
xdg-ninja
|
||||
];
|
||||
|
||||
# Define session variables for XDG directories
|
||||
home.sessionVariables = {
|
||||
# Set other tools' paths to XDG directories (they should be relative to XDG_DATA_HOME or XDG_STATE_HOME)
|
||||
GOPATH = "$XDG_DATA_HOME/go";
|
||||
CARGO_HOME = "$XDG_DATA_HOME/cargo";
|
||||
RUSTUP_HOME = "$XDG_DATA_HOME/rustup";
|
||||
DOTNET_CLI_HOME = "$XDG_DATA_HOME/dotnet";
|
||||
GNUPGHOME = "$XDG_DATA_HOME/gnupg";
|
||||
ZDOTDIR = "$XDG_CONFIG_HOME/zsh"; # Optional, for Zsh configuration
|
||||
HISTFILE = "$XDG_STATE_HOME/bash/history"; # Optional, for Bash history file location
|
||||
};
|
||||
|
||||
# Enable XDG user directories (like Documents, Downloads, etc.)
|
||||
xdg.userDirs.enable = true;
|
||||
xdg.userDirs.createDirectories = true;
|
||||
|
||||
# Enable autostart functionality with read-only mode (prevents arbitrary service additions)
|
||||
xdg.autostart.enable = true;
|
||||
xdg.autostart.readOnly = true;
|
||||
|
||||
# Handle XDG MIME type associations (useful for apps)
|
||||
xdg.mime.enable = true;
|
||||
xdg.mimeApps.enable = true;
|
||||
}
|
||||
|
||||
15
home/zed.nix
15
home/zed.nix
@@ -1,7 +1,6 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
unstable,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
@@ -16,6 +15,7 @@
|
||||
|
||||
programs.zed-editor = {
|
||||
enable = true;
|
||||
#package = pkgs.zed-editor-fhs;
|
||||
package = pkgs.unstable.zed-editor-fhs;
|
||||
extraPackages = with pkgs; [
|
||||
nodejs
|
||||
@@ -60,6 +60,19 @@
|
||||
dark = "Tokyo Night";
|
||||
light = "Tokyo Night Storm";
|
||||
};
|
||||
|
||||
features = {
|
||||
edit_prediction_provider = "copilot";
|
||||
};
|
||||
agent = {
|
||||
default_profile = "write";
|
||||
default_model = {
|
||||
provider = "copilot_chat";
|
||||
model = "claude-opus-4.5";
|
||||
};
|
||||
model_parameters = [ ];
|
||||
};
|
||||
|
||||
hour_format = "hour24";
|
||||
node = {
|
||||
path = lib.getExe pkgs.nodejs;
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
../../modules/tailscale.nix
|
||||
../../modules/basePackages.nix
|
||||
|
||||
../../modules/acme.nix
|
||||
../../modules/pangolin.nix
|
||||
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
# Enable OpenGL
|
||||
hardware.graphics = {
|
||||
@@ -6,9 +11,8 @@
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
|
||||
# Load nvidia driver for Xorg and Wayland
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
boot = {
|
||||
blacklistedKernelModules = [ "nouveau" ];
|
||||
@@ -18,32 +22,30 @@
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
#powerManagement.enable = true;
|
||||
# Fine-grained power management. Turns off GPU when not in use. Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
powerManagement.finegrained = false;
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
#powerManagement.enable = true;
|
||||
# Fine-grained power management. Turns off GPU when not in use. Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
powerManagement.finegrained = false;
|
||||
|
||||
# Use the NVidia open source kernel module (not to be confused with the independent third-party "nouveau" open source driver).
|
||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||
open = false; #need proprietary for cuda.
|
||||
# Use the NVidia open source kernel module (not to be confused with the independent third-party "nouveau" open source driver).
|
||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||
open = false; # need proprietary for cuda.
|
||||
|
||||
# Enable the Nvidia settings menu, accessible via `nvidia-settings`.
|
||||
#nvidiaSettings = true;
|
||||
# Enable the Nvidia settings menu, accessible via `nvidia-settings`.
|
||||
#nvidiaSettings = true;
|
||||
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
|
||||
# Enable the CUDA toolkit
|
||||
#install packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
cudaPackages.cudatoolkit
|
||||
cudaPackages.cudnn
|
||||
nvtopPackages.nvidia
|
||||
cudaPackages.nccl
|
||||
pkgs.cudaPackages.libcublas
|
||||
];
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
|
||||
# Enable the CUDA toolkit
|
||||
#install packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
cudaPackages.cudatoolkit
|
||||
cudaPackages.cudnn
|
||||
nvtopPackages.nvidia
|
||||
cudaPackages.nccl
|
||||
pkgs.cudaPackages.libcublas
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
../../modules/jupyterhub.nix
|
||||
../../modules/blog.nix
|
||||
../../modules/ollama.nix
|
||||
../../modules/docling.nix # temp for dev
|
||||
#../../modules/docling.nix # temp for dev ... Waiting for non broken docling-serve
|
||||
../../modules/kdeconnect.nix
|
||||
../../modules/desktopApplications.nix
|
||||
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
sops.secrets."acme/certs" = { };
|
||||
networking.enableIPv6 = false; #For some reason acme only works without ipv6, probably because of missing AAAA records.
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
sops.secrets."acme/certs" = { };
|
||||
networking.enableIPv6 = false; # For some reason acme only works without ipv6, probably because of missing AAAA records.
|
||||
networking.domain = "lauterer.it";
|
||||
#acme and certs helpful blog https://carjorvaz.com/posts/
|
||||
security.acme = {
|
||||
@@ -9,7 +14,7 @@
|
||||
defaults.email = "adrian+acme@lauterer.it";
|
||||
certs."${config.networking.domain}" = {
|
||||
domain = "${config.networking.domain}";
|
||||
extraDomainNames = [
|
||||
extraDomainNames = [
|
||||
"*.${config.networking.domain}"
|
||||
"lb0fj.eu"
|
||||
"*.lb0fj.eu"
|
||||
@@ -19,16 +24,16 @@
|
||||
"addictedmaker.eu"
|
||||
];
|
||||
## for testing.
|
||||
#server = "https://acme-staging-v02.api.letsencrypt.org/directory";
|
||||
#server = "https://acme-staging-v02.api.letsencrypt.org/directory";
|
||||
#enableDebugLogs = true;
|
||||
|
||||
#legos registrar specific stuff.
|
||||
#legos registrar specific stuff.
|
||||
dnsResolver = "ns1.hyp.net:53";
|
||||
dnsProvider = "domeneshop";
|
||||
dnsProvider = "domeneshop";
|
||||
dnsPropagationCheck = true;
|
||||
|
||||
|
||||
#need to manually create this file according to dnsprovider secrets, and format of key according to lego in privider and add to secrets.yaml
|
||||
credentialsFile = config.sops.secrets."acme/certs".path;
|
||||
credentialsFile = config.sops.secrets."acme/certs".path;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
ripgrep
|
||||
eza
|
||||
fastfetch
|
||||
|
||||
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
curl
|
||||
wget
|
||||
|
||||
|
||||
openssl
|
||||
gdb
|
||||
libgcc
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
{
|
||||
|
||||
|
||||
environment.systemPackages = [
|
||||
(pkgs.catppuccin-sddm.override {
|
||||
flavor = "mocha";
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
}:
|
||||
{
|
||||
services.docling-serve = {
|
||||
enable = false; #this is broken for now.
|
||||
package = pkgs.python312Packages.docling-serve;
|
||||
enable = true; # this is broken for now.
|
||||
package = pkgs.unstable.python313Packages.docling-serve;
|
||||
port = 5001;
|
||||
host = "127.0.0.1";
|
||||
openFirewall = true;
|
||||
|
||||
@@ -6,14 +6,10 @@
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ ];
|
||||
imports = [ ./nixpkgs.nix ]; # migrate this afterwards.
|
||||
|
||||
system.rebuild.enableNg = true;
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
# example "python3.11-youtube-dl-2021.12.17"
|
||||
];
|
||||
sops.secrets."github/api" = {
|
||||
mode = "0444";
|
||||
group = "root";
|
||||
|
||||
19
modules/nixpkgs.nix
Normal file
19
modules/nixpkgs.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ ];
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
permittedInsecurePackages = [
|
||||
# example "python3.11-youtube-dl-2021.12.17"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -6,16 +6,15 @@
|
||||
}:
|
||||
{
|
||||
|
||||
|
||||
services.pangolin = {
|
||||
services.pangolin = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
|
||||
|
||||
baseDomain = "lauterer.it";
|
||||
dashboardDomain = "auth.lauterer.it";
|
||||
dnsProvider = "domeneshop";
|
||||
|
||||
#settings
|
||||
|
||||
#settings
|
||||
#environmentFile
|
||||
#dataDir
|
||||
};
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
unstableOverlay = final: prev: {
|
||||
unstable = import inputs.unstable {
|
||||
inherit system;
|
||||
config = prev.config;
|
||||
inherit (final.stdenv.hostPlatform) system;
|
||||
inherit (config.nixpkgs) config;
|
||||
};
|
||||
};
|
||||
in
|
||||
|
||||
@@ -4,38 +4,65 @@
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
pkgs.xdg-desktop-portal-gnome
|
||||
pkgs.xdg-desktop-portal
|
||||
];
|
||||
|
||||
# XDG related configurations
|
||||
xdg = {
|
||||
autostart.enable = true;
|
||||
menus.enable = true;
|
||||
icons.enable = true;
|
||||
sounds.enable = true;
|
||||
# Enable desktop portal integration
|
||||
portal = {
|
||||
enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
enable = true; # Enable the portal system
|
||||
xdgOpenUsePortal = true; # Use portal for opening files and URLs
|
||||
|
||||
# Additional portals for specific environments
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal
|
||||
#xdg-desktop-portal-wlr
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-gnome
|
||||
kdePackages.xdg-desktop-portal-kde
|
||||
xdg-launch
|
||||
xdg-ninja
|
||||
xdg-utils
|
||||
kdePackages.xdg-desktop-portal-kde # For KDE environment
|
||||
];
|
||||
|
||||
# Configuration packages for portals (like GNOME session, Niri, etc.)
|
||||
configPackages = with pkgs; [
|
||||
gnome-session
|
||||
niri
|
||||
];
|
||||
};
|
||||
|
||||
# Enable autostart functionality (launch apps on login)
|
||||
autostart.enable = true;
|
||||
|
||||
# Enable menu support for applications
|
||||
menus.enable = true;
|
||||
|
||||
# Enable icon theme support (icons for applications, etc.)
|
||||
icons.enable = true;
|
||||
|
||||
# Enable sounds for system events (like notifications)
|
||||
sounds.enable = true;
|
||||
|
||||
# Terminal execution for XDG spec
|
||||
terminal-exec.enable = true;
|
||||
};
|
||||
|
||||
# Enable MIME type handling for file associations
|
||||
xdg.mime.enable = true;
|
||||
|
||||
# Enable additional configurations for portals
|
||||
xdg.portal.wlr.enable = false; # Disable Wayland/Weston portal support (as you've commented out)
|
||||
xdg.portal.lxqt.styles = true; # Enable LXQt portal styles (optional)
|
||||
xdg.portal.lxqt.enable = false; # Disable LXQt portal integration (commented out as unnecessary)
|
||||
|
||||
# Icons
|
||||
xdg.icons.fallbackCursorThemes = [ "Adwaita" ]; # Set a default cursor theme (you can change this)
|
||||
|
||||
# Terminal execution configuration
|
||||
xdg.terminal-exec.package = pkgs.xterm; # Choose the terminal emulator (can be changed to your preference)
|
||||
xdg.terminal-exec.settings = { }; # Terminal-specific settings (customizable)
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user