mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-11 02:56:27 +00:00
Initial commit
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
result
|
||||
175
flake.lock
generated
Normal file
175
flake.lock
generated
Normal file
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"nodes": {
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1698479159,
|
||||
"narHash": "sha256-rJHBDwW4LbADEfhkgGHjKGfL2dF44NrlyXdXeZrQahs=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "f92a54fef4eacdbe86b0a2054054dd58b0e2a2a4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland": {
|
||||
"inputs": {
|
||||
"hyprland-protocols": "hyprland-protocols",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"systems": "systems",
|
||||
"wlroots": "wlroots",
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1698407117,
|
||||
"narHash": "sha256-3X8R+N43YscAEbx+IrhaGNfM3yK+uxjTGuLv9VB82NY=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "4a4e13f8acedd2dc44236deed13fd47096cbe508",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-protocols": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1691753796,
|
||||
"narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-protocols",
|
||||
"rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-protocols",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1698134075,
|
||||
"narHash": "sha256-foCD+nuKzfh49bIoiCBur4+Fx1nozo+4C/6k8BYk4sg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8efd5d1e283604f75a808a20e6cde0ef313d07d4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1698318101,
|
||||
"narHash": "sha256-gUihHt3yPD7bVqg+k/UVHgngyaJ3DMEBchbymBMvK1E=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "63678e9f3d3afecfeafa0acead6239cdb447574c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"hyprland": "hyprland",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"wlroots": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"host": "gitlab.freedesktop.org",
|
||||
"lastModified": 1697909146,
|
||||
"narHash": "sha256-jU0I6FoCKnj4zIBL4daosFWh81U1fM719Z6cae8PxSY=",
|
||||
"owner": "wlroots",
|
||||
"repo": "wlroots",
|
||||
"rev": "47bf87ade2bd32395615a385ebde1fefbcdf79a2",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.freedesktop.org",
|
||||
"owner": "wlroots",
|
||||
"repo": "wlroots",
|
||||
"rev": "47bf87ade2bd32395615a385ebde1fefbcdf79a2",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"xdph": {
|
||||
"inputs": {
|
||||
"hyprland-protocols": [
|
||||
"hyprland",
|
||||
"hyprland-protocols"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1697981233,
|
||||
"narHash": "sha256-y8q4XUwx+gVK7i2eLjfR32lVo7TYvEslyzrmzYEaPZU=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "22e7a65ff9633e1dedfa5317fdffc49f68de2ff2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
40
flake.nix
Normal file
40
flake.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
};
|
||||
|
||||
outputs = {nixpkgs, home-manager, hyprland, ...}:
|
||||
let
|
||||
username = "theaninova";
|
||||
system = "x86_64-linux";
|
||||
stateVersion = "23.11";
|
||||
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
|
||||
homeDirPrefix = if pkgs.stdenv.hostPlatform.isDarwin then "/Users" else "/home";
|
||||
homeDirectory = "/${homeDirPrefix}/${username}";
|
||||
|
||||
home = (import ./home.nix {
|
||||
inherit homeDirectory pkgs stateVersion system username;
|
||||
});
|
||||
in {
|
||||
homeConfigurations.${username} = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
|
||||
modules = [
|
||||
hyprland.homeManagerModules.default
|
||||
home
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
24
home.nix
Normal file
24
home.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ homeDirectory, pkgs, stateVersion, system, username }:
|
||||
let
|
||||
packages = import ./packages.nix { inherit pkgs; };
|
||||
in {
|
||||
home = {
|
||||
inherit homeDirectory packages stateVersion username;
|
||||
|
||||
shellAliases = {
|
||||
reload-home-manager-config = "home-manager switch --flake ${builtins.toString ./.}";
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
inherit system;
|
||||
allowUnfree = true;
|
||||
allowUnsupportedSystem = true;
|
||||
experimental-features = "nix-command flakes";
|
||||
};
|
||||
};
|
||||
|
||||
programs = import ./programs.nix { inherit pkgs; };
|
||||
services = import ./services.nix;
|
||||
}
|
||||
49
hyprland.nix
Normal file
49
hyprland.nix
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
inputs = {
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
split-monitor-workspaces = {
|
||||
url = "github:Duckonaut/split-monitor-workspaces";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
imports = [ hyprland.homeManagerModules.default ];
|
||||
wayland.windowManager.hyprland {
|
||||
enabled = true;
|
||||
extraConfig = ''
|
||||
# window layout
|
||||
monitor=DP-1,1920x1080@240,0x0,1,vrr,1
|
||||
monitor=DP-3:2560x1440@75,1920x0,1,vrr,1
|
||||
monitor=HDMI-1:1920x1080@75,0x1080,1,transform,2
|
||||
|
||||
# workspaces
|
||||
workspace=1,monitor:DP-1,persistent:true
|
||||
workspace=2,monitor:DP-1,persistent:true
|
||||
workspace=3,monitor:DP-1,persistent:true
|
||||
workspace=4,monitor:DP-3,persistent:true
|
||||
workspace=5,monitor:DP-3,persistent:true
|
||||
workspace=6,monitor:DP-3,persistent:true
|
||||
workspace=7,monitor:HDMI-1,persistent:true
|
||||
workspace=8,monitor:HDMI-1,persistent:true
|
||||
workspace=9,monitor:HDMI-1,persistent:true
|
||||
|
||||
# window rules
|
||||
windowrule=pseudo,^(alacritty)$
|
||||
|
||||
# Keybinds
|
||||
$mod = SUPER
|
||||
|
||||
## base
|
||||
bind=$mod,Q,killactive
|
||||
|
||||
## programs
|
||||
bind=$mod,T,exec,alacritty
|
||||
'';
|
||||
};
|
||||
|
||||
programs = {
|
||||
alacritty.enabled = true;
|
||||
};
|
||||
}
|
||||
|
||||
8
packages.nix
Normal file
8
packages.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ pkgs }:
|
||||
|
||||
let
|
||||
nixTools = with pkgs; [
|
||||
cachix
|
||||
lorri
|
||||
];
|
||||
in nixTools
|
||||
7
programs.nix
Normal file
7
programs.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ pkgs }:
|
||||
{
|
||||
home-manager.enable = true;
|
||||
zsh = import ./programs/zsh.nix { inherit pkgs; };
|
||||
rbw = import ./programs/bitwarden.nix;
|
||||
git = import ./programs/git.nix;
|
||||
}
|
||||
8
programs/bitwarden.nix
Normal file
8
programs/bitwarden.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
base_url = "pw.theaninova.de";
|
||||
email = "pw@theaninova.de";
|
||||
pinentry = "gnome3";
|
||||
};
|
||||
}
|
||||
9
programs/git.nix
Normal file
9
programs/git.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
enable = true;
|
||||
userName = "Thea Schöbl";
|
||||
userEmail = "dev@theaninova.de";
|
||||
signing = {
|
||||
key = "6C9E EFC5 1AE0 0131 78DE B9C8 68FF FB1E C187 88CA";
|
||||
signByDefault = true;
|
||||
};
|
||||
}
|
||||
38
programs/zsh.nix
Normal file
38
programs/zsh.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{ pkgs }:
|
||||
{
|
||||
enable = true;
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [ "git" "docker" "zsh-interactive-cd" ];
|
||||
theme = "amuse";
|
||||
};
|
||||
plugins = [
|
||||
{
|
||||
name = "zsh-autosuggestions";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "zsh-users";
|
||||
repo = "zsh-autosuggestions";
|
||||
rev = "v0.7.0";
|
||||
sha256 = "sha256-KLUYpUu4DHRumQZ3w59m9aTW6TBKMCXl2UcKi4uMd7w=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "shellfirm";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "kaplanelad";
|
||||
repo = "shellfirm";
|
||||
rev = "v0.2.7";
|
||||
sha256 = "sha256-rUK5YoXpjAdxJhoYIf5yNtUGDGnAXCDIkPrgm4QI2jc=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "zsh-syntax-highlighting";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "zsh-users";
|
||||
repo = "zsh-syntax-highlighting";
|
||||
rev = "0.7.1";
|
||||
sha256 = "sha256-gOG0NLlaJfotJfs+SUhGgLTNOnGLjoqnUp54V9aFJg8=";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
7
services.nix
Normal file
7
services.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
gpg-agent = {
|
||||
enable = true;
|
||||
enableSshSupport = true;
|
||||
pinentryFlavor = "gnome3";
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user