This commit is contained in:
Mohamed Chrayed 2024-08-22 09:44:45 +02:00
commit b4933db3ef
22 changed files with 402 additions and 166 deletions

BIN
assets/wallpaper-asia.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
assets/wallpaper-kame.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 MiB

2
dotfiles/directory Normal file
View File

@ -0,0 +1,2 @@
[Desktop Entry]
Icon=folder-git

View File

@ -1,95 +0,0 @@
[
{
"data": [
{
"autoRotation": "InTabletMode",
"brightness": 1,
"colorProfileSource": "sRGB",
"connectorName": "DP-2",
"edidHash": "5feed23fa2b9fadf2c619ead8e5a5738",
"edidIdentifier": "PHL 49823 352 46 2023 0",
"highDynamicRange": true,
"iccProfilePath": "",
"mode": {
"height": 1440,
"refreshRate": 175000,
"width": 3440
},
"overscan": 0,
"rgbRange": "Automatic",
"scale": 1,
"sdrBrightness": 455,
"sdrGamutWideness": 0.7,
"transform": "Normal",
"vrrPolicy": "Automatic",
"wideColorGamut": true
},
{
"autoRotation": "InTabletMode",
"brightness": 1,
"colorProfileSource": "sRGB",
"connectorName": "HDMI-A-1",
"edidHash": "45c097af286682cb62ce182c666c5962",
"edidIdentifier": "PHL 1931 16843009 1 2023 0",
"highDynamicRange": false,
"iccProfilePath": "",
"mode": {
"height": 2160,
"refreshRate": 60000,
"width": 3840
},
"overscan": 0,
"rgbRange": "Automatic",
"scale": 1,
"sdrBrightness": 200,
"sdrGamutWideness": 0,
"transform": "Normal",
"vrrPolicy": "Automatic",
"wideColorGamut": false
}
],
"name": "outputs"
},
{
"data": [
{
"lidClosed": false,
"outputs": [
{
"enabled": true,
"outputIndex": 0,
"position": {
"x": 0,
"y": 0
},
"priority": 0
},
{
"enabled": false,
"outputIndex": 1,
"position": {
"x": 2752,
"y": 0
},
"priority": -1
}
]
},
{
"lidClosed": false,
"outputs": [
{
"enabled": true,
"outputIndex": 0,
"position": {
"x": 0,
"y": 0
},
"priority": 0
}
]
}
],
"name": "setups"
}
]

215
dotfiles/user-places.xbel Normal file
View File

@ -0,0 +1,215 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xbel>
<xbel xmlns:bookmark="http://www.freedesktop.org/standards/desktop-bookmarks" xmlns:kdepriv="http://www.kde.org/kdepriv" xmlns:mime="http://www.freedesktop.org/standards/shared-mime-info">
<info>
<metadata owner="http://www.kde.org">
<kde_places_version>4</kde_places_version>
<GroupState-Places-IsHidden>false</GroupState-Places-IsHidden>
<GroupState-Remote-IsHidden>false</GroupState-Remote-IsHidden>
<GroupState-Devices-IsHidden>false</GroupState-Devices-IsHidden>
<GroupState-RemovableDevices-IsHidden>false</GroupState-RemovableDevices-IsHidden>
<GroupState-Tags-IsHidden>false</GroupState-Tags-IsHidden>
<withRecentlyUsed>true</withRecentlyUsed>
<GroupState-RecentlySaved-IsHidden>false</GroupState-RecentlySaved-IsHidden>
<withBaloo>true</withBaloo>
<GroupState-SearchFor-IsHidden>false</GroupState-SearchFor-IsHidden>
</metadata>
</info>
<bookmark href="file:///home/mo">
<title>Home</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="user-home"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1722875040/0</ID>
<isSystemItem>true</isSystemItem>
</metadata>
</info>
</bookmark>
<bookmark href="file:///home/mo/Schreibtisch">
<title>Desktop</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="user-desktop"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1722875040/1</ID>
<isSystemItem>true</isSystemItem>
<IsHidden>true</IsHidden>
</metadata>
</info>
</bookmark>
<bookmark href="file:///home/mo/Bilder">
<title>Pictures</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="folder-pictures"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1722875040/7</ID>
<isSystemItem>true</isSystemItem>
</metadata>
</info>
</bookmark>
<bookmark href="file:///home/mo/Code">
<title>Code</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="folder-git"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1723820821/2</ID>
</metadata>
</info>
</bookmark>
<bookmark href="file:///home/mo/Dokumente">
<title>Documents</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="folder-documents"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1722875040/2</ID>
<isSystemItem>true</isSystemItem>
</metadata>
</info>
</bookmark>
<bookmark href="file:///home/mo/Downloads">
<title>Downloads</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="folder-downloads"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1722875040/3</ID>
<isSystemItem>true</isSystemItem>
</metadata>
</info>
</bookmark>
<bookmark href="file:///home/mo/Musik">
<title>Music</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="folder-music"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1722875040/6</ID>
<isSystemItem>true</isSystemItem>
</metadata>
</info>
</bookmark>
<bookmark href="file:///home/mo/%C3%96ffentlich">
<title>Öffentlich</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="folder-public"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1723820827/3</ID>
</metadata>
</info>
</bookmark>
<bookmark href="file:///home/mo/Schreibtisch">
<title>Schreibtisch</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="user-desktop"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1723820837/4</ID>
</metadata>
</info>
</bookmark>
<bookmark href="file:///home/mo/Videos">
<title>Videos</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="folder-videos"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1722875040/8</ID>
<isSystemItem>true</isSystemItem>
</metadata>
</info>
</bookmark>
<bookmark href="file:///home/mo/Vorlagen">
<title>Vorlagen</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="folder-templates"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1723820856/5</ID>
</metadata>
</info>
</bookmark>
<bookmark href="smb://administrator@server.chrayed.de/Daten">
<title>Daten</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="network-workgroup"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1723820812/0</ID>
</metadata>
</info>
</bookmark>
<bookmark href="remote:/">
<title>Network</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="folder-network"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1722875040/4</ID>
<isSystemItem>true</isSystemItem>
</metadata>
</info>
</bookmark>
<bookmark href="trash:/">
<title>Trash</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="user-trash"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1722875040/5</ID>
<isSystemItem>true</isSystemItem>
</metadata>
</info>
</bookmark>
<bookmark href="recentlyused:/files">
<title>Recent Files</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="document-open-recent"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1722875040/9</ID>
<isSystemItem>true</isSystemItem>
</metadata>
</info>
</bookmark>
<bookmark href="recentlyused:/locations">
<title>Recent Locations</title>
<info>
<metadata owner="http://freedesktop.org">
<bookmark:icon name="folder-open-recent"/>
</metadata>
<metadata owner="http://www.kde.org">
<ID>1722875040/10</ID>
<isSystemItem>true</isSystemItem>
</metadata>
</info>
</bookmark>
<separator>
<info>
<metadata owner="http://www.kde.org">
<UDI>/org/freedesktop/UDisks2/block_devices/nvme0n1p2</UDI>
<isSystemItem>true</isSystemItem>
<uuid>27c4c28c-0cd4-4d41-bdcd-0145c5d61a5a</uuid>
</metadata>
</info>
</separator>
</xbel>

0
dotfiles/zshrc Normal file
View File

148
flake.nix
View File

@ -1,86 +1,132 @@
{ {
description = "Moe.OS"; description = "Moe.OS";
# Define Inputs
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable"; nixpkgs.url = "nixpkgs/nixos-unstable";
jovian.url = "github:Jovian-Experiments/Jovian-NixOS/development";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/master"; url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
jovian.url = "github:Jovian-Experiments/Jovian-NixOS/development";
plasma-manager = { plasma-manager = {
url = "github:nix-community/plasma-manager/trunk"; url = "github:nix-community/plasma-manager/trunk";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager"; inputs.home-manager.follows = "home-manager";
}; };
}; };
# Define Outputs, import Modules
outputs = { self, nixpkgs, home-manager, jovian, plasma-manager, ... }: outputs =
{
nixpkgs,
home-manager,
jovian,
plasma-manager,
...
}:
let let
lib = nixpkgs.lib; # Define system globally since I have no aarch devices
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; }; pkgs = import nixpkgs { inherit system; };
lib = nixpkgs.lib;
commonModules = [ # NixOS Modules for all hosts
systemModules = [
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
./modules/system/apps-shell
./modules/system/boot ./modules/system/boot
./modules/system/devices ./modules/system/devices
./modules/system/home-manager
./modules/system/locale ./modules/system/locale
./modules/system/networking ./modules/system/networking
./modules/system/nixsettings ./modules/system/nixsettings
./modules/system/shell ./modules/system/shell
./modules/system/syncthing
./modules/system/systemversion ./modules/system/systemversion
./modules/system/upgrades ./modules/system/upgrades
./modules/system/users
]; ];
# Home Manager Modules for all hosts
homeManagerConfig = { userModules = [
home-manager.useGlobalPkgs = true; ./modules/user/git
home-manager.useUserPackages = true; ./modules/user/homeversion
home-manager.backupFileExtension = "backup"; ];
home-manager.extraSpecialArgs = { inherit pkgs; }; in
home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ]; {
}; nixosConfigurations = {
# Workstation config
# Host-specific configurations # user and hostName variable inside hostConfig so we can call it in other modules
hosts = { workstation =
computer-mo = { let
user = "mo"; user = "mo";
extraModules = []; hostName = "workstation";
userConfig = { in
isNormalUser = true; lib.nixosSystem {
home = "/home/mo"; specialArgs = {
shell = pkgs.zsh; inherit systemModules;
extraGroups = [ "wheel" "networkmanager" ]; inherit userModules;
inherit system;
inherit user;
inherit hostName;
};
system = system;
# Device specific NixOS Modules
modules = systemModules ++ [
jovian.nixosModules.jovian
./hosts/${hostName}
./modules/system/apps-misc
./modules/system/browser
./modules/system/controller
./modules/system/jovian-${hostName}
./modules/system/lact
./modules/system/sddm
./modules/system/plasma
./modules/system/steam
{
# Device specific Home Manager Modules
home-manager.users.${user}.imports = userModules ++ [
./modules/user/plasma
];
# Issue with Plasma Manager, has to be imported in a special way
home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ];
}
];
}; };
}; };
# Steamdeck config
steamdeck = { # user and hostName variable inside hostConfig so we can call it in other modules
steamdeck =
let
user = "deck"; user = "deck";
extraModules = []; hostName = "steamdeck";
userConfig = { in
isNormalUser = true;
home = "/home/deck";
shell = pkgs.zsh;
extraGroups = [ "wheel" "networkmanager" ];
};
};
};
in {
nixosConfigurations = lib.mapAttrs (hostName: hostConfig:
lib.nixosSystem { lib.nixosSystem {
specialArgs = {}; specialArgs = {
modules = commonModules ++ hostConfig.extraModules ++ [ inherit systemModules;
# Users configuration inherit userModules;
{ users.users.${hostConfig.user} = hostConfig.userConfig; } inherit system;
inherit user;
# Home Manager user imports inherit hostName;
{ home-manager.users.${hostConfig.user}.imports = [ };
system = system;
# Device specific NixOS Modules
modules = systemModules ++ [
jovian.nixosModules.jovian
./hosts/${hostName}
./modules/system/apps-misc
./modules/system/browser
./modules/system/controller
./modules/system/jovian-${hostName}
./modules/system/lact
./modules/system/plasma
./modules/system/steam
{
# Device specific Home Manager Modules
home-manager.users.${user}.imports = userModules ++ [
./modules/user/plasma
]; ];
# Issue with Plasma Manager, has to be imported in a special way
home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ];
} }
homeManagerConfig
]; ];
} };
) hosts;
}; };
} }

View File

@ -0,0 +1,24 @@
{ ... }:
{
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-partlabel/root";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-partlabel/EFI";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ {
device = "/var/lib/swapfile";
size = 16*1024;
}];
}

View File

@ -6,7 +6,6 @@
mangohud mangohud
pciutils pciutils
aha aha
lact
vesktop vesktop
google-chrome google-chrome
teams-for-linux teams-for-linux

View File

@ -0,0 +1,7 @@
{ home-manager, pkgs, ... }:
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit pkgs; };
home-manager.backupFileExtension = "backup";
}

View File

@ -0,0 +1,14 @@
{ user, ... }:
{
jovian.steam = {
enable = true;
autoStart = true;
user = user;
desktopSession = "plasma";
};
jovian.decky-loader.enable = true;
jovian.devices.steamdeck = {
enable = true;
autoUpdate = true;
};
}

View File

@ -1,9 +1,9 @@
{ ... }: { user, ... }:
{ {
jovian.steam = { jovian.steam = {
enable = true; enable = true;
autoStart = false; autoStart = false;
user = "mo"; user = user;
desktopSession = "plasma"; desktopSession = "plasma";
}; };
jovian.hardware.has.amd.gpu = true; jovian.hardware.has.amd.gpu = true;

View File

@ -1,11 +1,7 @@
{ user, pkgs, ... }: { pkgs, ... }:
{ {
services.desktopManager.plasma6.enable = true; services.desktopManager.plasma6.enable = true;
services.displayManager.sddm.wayland.enable = true;
services.displayManager.sddm.enable = true;
services.xserver.enable = false; services.xserver.enable = false;
services.displayManager.autoLogin.enable = true;
services.displayManager.autoLogin.user = user;
environment.systemPackages = environment.systemPackages =
(with pkgs; [ (with pkgs; [

View File

@ -0,0 +1,7 @@
{ user, ... }:
{
services.displayManager.sddm.wayland.enable = true;
services.displayManager.sddm.enable = true;
services.displayManager.autoLogin.enable = true;
services.displayManager.autoLogin.user = user;
}

View File

@ -1,4 +1,4 @@
{ ... }: { pkgs, ... }:
{ {
programs.steam = { programs.steam = {
enable = true; enable = true;
@ -6,4 +6,7 @@
dedicatedServer.openFirewall = true; dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true; localNetworkGameTransfers.openFirewall = true;
}; };
environment.systemPackages = [
pkgs.gamescope
];
} }

View File

@ -0,0 +1,4 @@
{ ... }:
{
}

View File

@ -1,4 +1,4 @@
{ lib, ... }: { ... }:
{ {
system.stateVersion = "24.05"; system.stateVersion = "24.05";
} }

View File

@ -0,0 +1,7 @@
{ user, ... }:
{
users.users.${user} = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ];
};
}

View File

@ -1,19 +1,26 @@
{ ... }: { user, ... }:
{ {
home.file.".config/haruna/haruna.conf".source = ../dotfiles/haruna.conf; home.file."Code/.directory".source = ../../../dotfiles/directory;
home.file.".local/share/color-schemes/BreezeDunkelFarbe.colors".source = ../dotfiles/BreezeDunkelFarbe.colors; home.file.".config/haruna/haruna.conf".source = ../../../dotfiles/haruna.conf;
home.file.".local/share/color-schemes/BreezeHellFarbe.colors".source = ../dotfiles/BreezeHellFarbe.colors; home.file.".local/share/color-schemes/BreezeDunkelFarbe.colors".source = ../../../dotfiles/BreezeDunkelFarbe.colors;
home.file.".config/kglobalshortcutsrc".source = ../dotfiles/kglobalshortcutsrc; home.file.".local/share/color-schemes/BreezeHellFarbe.colors".source = ../../../dotfiles/BreezeHellFarbe.colors;
home.file."Bilder/Hintergründe/wallpaper-nix.png".source = ../assets/wallpaper-nix.png; home.file.".config/kglobalshortcutsrc".source = ../../../dotfiles/kglobalshortcutsrc;
home.file.".config/kwinrc".source = ../dotfiles/kwinrc; home.file."Bilder/Wallpaper/wallpaper-nix.png".source = ../../../assets/wallpaper-nix.png;
home.file.".config/kwinoutputconfig.json".source = ../dotfiles/kwinoutputconfig.json; home.file."Bilder/Wallpaper/wallpaper-asia.jpg".source = ../../../assets/wallpaper-asia.jpg;
home.file."Bilder/Wallpaper/wallpaper-kame.jpg".source = ../../../assets/wallpaper-kame.jpg;
home.file."Bilder/Wallpaper/wallpaper-retrogirl.png".source = ../../../assets/wallpaper-retrogirl.png;
home.file.".config/kwinrc".source = ../../../dotfiles/kwinrc;
home.file.".local/share/user-places.xbel".source = ../../../dotfiles/user-places.xbel;
home.file.".zshrc".source = ../../../dotfiles/zshrc;
programs.plasma = { programs.plasma = {
enable = true; enable = true;
workspace.wallpaper = "/home/mo/Bilder/Hintergründe/wallpaper-nix.png"; workspace.wallpaperSlideShow.path = /home/mo/Bilder/Wallpaper;
kscreenlocker.appearance.wallpaper = "/home/mo/Bilder/Hintergründe/wallpaper-nix.png"; workspace.wallpaperSlideShow.interval = 864000;
#workspace.wallpaper = "/home/mo/Bilder/Wallpaper/wallpaper-nix.png";
kscreenlocker.appearance.wallpaper = "/home/mo/Bilder/Wallpaper/wallpaper-nix.png";
kwin.titlebarButtons.left = ["keep-above-windows"]; kwin.titlebarButtons.left = ["keep-above-windows"];
kwin.titlebarButtons.right = ["minimize" "maximize" "close"]; kwin.titlebarButtons.right = ["minimize" "maximize" "close"];