commit 9f1f69cf9b06e75aa0ba11be2ef824d45822a092 Author: Mohamed C. Date: Thu May 29 13:53:53 2025 +0200 initial setup diff --git a/README.md b/README.md new file mode 100644 index 0000000..be0fbde --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +## NixOS config + +Daily Driver Nixos configuration. + + +### Todo + +- [X] Better autoupgrade +- [X] Bash/ZSH Settings +- [ ] ssh key deployment with [agenix](https://github.com/ryantm/agenix) +- [x] alternative way to declare .nix files instead of dumping them into configuration.nix -> now uses groups in flake.nix +- [x] Multi Host functionality for homelab +- [X] OCI container for common services +- [X] Fix Home-Manager issues with immutable .config files during rebuild -> files kglobalshortcutsrc and kwinrc can't be overwritten because of plasma-manager diff --git a/assets/wallpaper-abstractcolor.png b/assets/wallpaper-abstractcolor.png new file mode 100644 index 0000000..a6a87c7 Binary files /dev/null and b/assets/wallpaper-abstractcolor.png differ diff --git a/assets/wallpaper-animerain.png b/assets/wallpaper-animerain.png new file mode 100644 index 0000000..d1ad0b1 Binary files /dev/null and b/assets/wallpaper-animerain.png differ diff --git a/assets/wallpaper-asia.jpg b/assets/wallpaper-asia.jpg new file mode 100644 index 0000000..b254afa Binary files /dev/null and b/assets/wallpaper-asia.jpg differ diff --git a/assets/wallpaper-beach.jpg b/assets/wallpaper-beach.jpg new file mode 100644 index 0000000..0b0f9be Binary files /dev/null and b/assets/wallpaper-beach.jpg differ diff --git a/assets/wallpaper-car.png b/assets/wallpaper-car.png new file mode 100644 index 0000000..803630a Binary files /dev/null and b/assets/wallpaper-car.png differ diff --git a/assets/wallpaper-clouds.png b/assets/wallpaper-clouds.png new file mode 100644 index 0000000..f7baeff Binary files /dev/null and b/assets/wallpaper-clouds.png differ diff --git a/assets/wallpaper-controller.png b/assets/wallpaper-controller.png new file mode 100644 index 0000000..9acb1a3 Binary files /dev/null and b/assets/wallpaper-controller.png differ diff --git a/assets/wallpaper-controllerwhite.jpg b/assets/wallpaper-controllerwhite.jpg new file mode 100644 index 0000000..39b687f Binary files /dev/null and b/assets/wallpaper-controllerwhite.jpg differ diff --git a/assets/wallpaper-crow.jpg b/assets/wallpaper-crow.jpg new file mode 100644 index 0000000..03f5279 Binary files /dev/null and b/assets/wallpaper-crow.jpg differ diff --git a/assets/wallpaper-cs2.jpg b/assets/wallpaper-cs2.jpg new file mode 100644 index 0000000..371ec8b Binary files /dev/null and b/assets/wallpaper-cs2.jpg differ diff --git a/assets/wallpaper-fuji.jpg b/assets/wallpaper-fuji.jpg new file mode 100644 index 0000000..e9518e0 Binary files /dev/null and b/assets/wallpaper-fuji.jpg differ diff --git a/assets/wallpaper-gameboy.png b/assets/wallpaper-gameboy.png new file mode 100644 index 0000000..d69eec3 Binary files /dev/null and b/assets/wallpaper-gameboy.png differ diff --git a/assets/wallpaper-gore.png b/assets/wallpaper-gore.png new file mode 100644 index 0000000..eead89d Binary files /dev/null and b/assets/wallpaper-gore.png differ diff --git a/assets/wallpaper-house.png b/assets/wallpaper-house.png new file mode 100644 index 0000000..09d4307 Binary files /dev/null and b/assets/wallpaper-house.png differ diff --git a/assets/wallpaper-kame.jpg b/assets/wallpaper-kame.jpg new file mode 100644 index 0000000..a265e74 Binary files /dev/null and b/assets/wallpaper-kame.jpg differ diff --git a/assets/wallpaper-kanagawa.jpg b/assets/wallpaper-kanagawa.jpg new file mode 100644 index 0000000..4bcbd69 Binary files /dev/null and b/assets/wallpaper-kanagawa.jpg differ diff --git a/assets/wallpaper-landscape.png b/assets/wallpaper-landscape.png new file mode 100644 index 0000000..6cfa149 Binary files /dev/null and b/assets/wallpaper-landscape.png differ diff --git a/assets/wallpaper-landscape2.png b/assets/wallpaper-landscape2.png new file mode 100644 index 0000000..b8b1f1e Binary files /dev/null and b/assets/wallpaper-landscape2.png differ diff --git a/assets/wallpaper-lava.jpg b/assets/wallpaper-lava.jpg new file mode 100644 index 0000000..79d9ad5 Binary files /dev/null and b/assets/wallpaper-lava.jpg differ diff --git a/assets/wallpaper-minimalmountain.png b/assets/wallpaper-minimalmountain.png new file mode 100644 index 0000000..3b2ac08 Binary files /dev/null and b/assets/wallpaper-minimalmountain.png differ diff --git a/assets/wallpaper-mountain.png b/assets/wallpaper-mountain.png new file mode 100644 index 0000000..28dbf11 Binary files /dev/null and b/assets/wallpaper-mountain.png differ diff --git a/assets/wallpaper-mountain2.png b/assets/wallpaper-mountain2.png new file mode 100644 index 0000000..28dbf11 Binary files /dev/null and b/assets/wallpaper-mountain2.png differ diff --git a/assets/wallpaper-nix.png b/assets/wallpaper-nix.png new file mode 100644 index 0000000..21c3156 Binary files /dev/null and b/assets/wallpaper-nix.png differ diff --git a/assets/wallpaper-pixelcity b/assets/wallpaper-pixelcity new file mode 100644 index 0000000..4bd5c70 Binary files /dev/null and b/assets/wallpaper-pixelcity differ diff --git a/assets/wallpaper-plant.jpg b/assets/wallpaper-plant.jpg new file mode 100644 index 0000000..4418c02 Binary files /dev/null and b/assets/wallpaper-plant.jpg differ diff --git a/assets/wallpaper-retrogirl.png b/assets/wallpaper-retrogirl.png new file mode 100644 index 0000000..5e5189e Binary files /dev/null and b/assets/wallpaper-retrogirl.png differ diff --git a/assets/wallpaper-sake.jpg b/assets/wallpaper-sake.jpg new file mode 100644 index 0000000..3c328fd Binary files /dev/null and b/assets/wallpaper-sake.jpg differ diff --git a/assets/wallpaper-spacecyan.png b/assets/wallpaper-spacecyan.png new file mode 100644 index 0000000..a86a124 Binary files /dev/null and b/assets/wallpaper-spacecyan.png differ diff --git a/assets/wallpaper-street.jpg b/assets/wallpaper-street.jpg new file mode 100644 index 0000000..184ffba Binary files /dev/null and b/assets/wallpaper-street.jpg differ diff --git a/assets/wallpaper-switch.png b/assets/wallpaper-switch.png new file mode 100644 index 0000000..16a6add Binary files /dev/null and b/assets/wallpaper-switch.png differ diff --git a/assets/wallpaper-switchorange.png b/assets/wallpaper-switchorange.png new file mode 100644 index 0000000..b1a0bac Binary files /dev/null and b/assets/wallpaper-switchorange.png differ diff --git a/assets/wallpaper-sword.jpg b/assets/wallpaper-sword.jpg new file mode 100644 index 0000000..b397d20 Binary files /dev/null and b/assets/wallpaper-sword.jpg differ diff --git a/assets/wallpaper-tape.jpg b/assets/wallpaper-tape.jpg new file mode 100644 index 0000000..d78b993 Binary files /dev/null and b/assets/wallpaper-tape.jpg differ diff --git a/assets/wallpaper-tuxdev.png b/assets/wallpaper-tuxdev.png new file mode 100644 index 0000000..ef30a94 Binary files /dev/null and b/assets/wallpaper-tuxdev.png differ diff --git a/assets/wallpaper-wave.jpg b/assets/wallpaper-wave.jpg new file mode 100644 index 0000000..4bcbd69 Binary files /dev/null and b/assets/wallpaper-wave.jpg differ diff --git a/assets/wallpaper-windows98.png b/assets/wallpaper-windows98.png new file mode 100644 index 0000000..5724962 Binary files /dev/null and b/assets/wallpaper-windows98.png differ diff --git a/assets/wallpaper-xp.jpg b/assets/wallpaper-xp.jpg new file mode 100644 index 0000000..bb0820d Binary files /dev/null and b/assets/wallpaper-xp.jpg differ diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..0b9b2d1 --- /dev/null +++ b/flake.lock @@ -0,0 +1,138 @@ +{ + "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1747793476, + "narHash": "sha256-2qAOSixSrbb9l6MI+SI4zGineOzDcc2dgOOFK9Dx+IY=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "2468b2d35512d093aeb04972a1d8c20a0735793f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "master", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1747744144, + "narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "nur": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1747824892, + "narHash": "sha256-5lYnHfkCsdt75BS2qYNLlDrF5vM6eTTNveqMq564mwU=", + "owner": "nix-community", + "repo": "NUR", + "rev": "2a41603d663c0065eddaf1dde1e405b31e3c7f8b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "plasma-manager": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1742765550, + "narHash": "sha256-2vVIh2JrL6GAGfgCeY9e6iNKrBjs0Hw3bGQEAbwVs68=", + "owner": "nix-community", + "repo": "plasma-manager", + "rev": "b70be387276e632fe51232887f9e04e2b6ef8c16", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "trunk", + "repo": "plasma-manager", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs", + "nur": "nur", + "plasma-manager": "plasma-manager" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..e24f43c --- /dev/null +++ b/flake.nix @@ -0,0 +1,102 @@ +{ + description = "Moe.OS"; + inputs = { + nixpkgs.url = "nixpkgs/nixos-unstable"; + home-manager = { + url = "github:nix-community/home-manager/master"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + plasma-manager = { + url = "github:nix-community/plasma-manager/trunk"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-manager.follows = "home-manager"; + }; + nur = { + url = "github:nix-community/NUR"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { nixpkgs, home-manager, plasma-manager, nur, ... }: + let + + system = "x86_64-linux"; + lib = nixpkgs.lib; + pkgs = import nixpkgs {inherit system;}; + + filterNixFiles = dir: lib.filter (n: lib.strings.hasSuffix ".nix" n) (lib.filesystem.listFilesRecursive dir); + + root.base = filterNixFiles ./root/base; + root.desktop = filterNixFiles ./root/desktop; + root.filesystem.client = filterNixFiles ./root/filesystem/client; + root.filesystem.server = filterNixFiles ./root/filesystem/server; + root.gaming.desktop = filterNixFiles ./root/gaming/desktop; + root.gaming.console = filterNixFiles ./root/gaming/console; + root.gnome = filterNixFiles ./root/gnome; + root.hyprland = filterNixFiles ./root/hyprland; + root.plasma = filterNixFiles ./root/plasma; + root.services = filterNixFiles ./root/services; + + home.base = filterNixFiles ./home/base; + home.gaming = filterNixFiles ./home/gaming; + home.gnome = filterNixFiles ./home/gnome; + #home.hyprland = filterNixFiles ./home/hyprland; + home.plasma = filterNixFiles ./home/plasma; + + root.external = [ + home-manager.nixosModules.home-manager + nur.modules.nixos.default + ]; + + home.external = [ + plasma-manager.homeManagerModules.plasma-manager + ]; + + in + { + nixosConfigurations = { + Computer-Mo = + let + user = "mo"; + hostName = "Computer-Mo"; + in + lib.nixosSystem { + specialArgs = { inherit user; inherit hostName; inherit system; }; + modules = + root.external ++ + root.base ++ + root.desktop ++ + root.filesystem.client ++ + root.hyprland ++ + root.gaming.desktop ++[ + { + home-manager.users.${user}.imports = + home.base ++ + home.hyprland ++ + home.gaming; + home-manager.sharedModules = home.external; + } + ]; + }; + server = + let + user = "administrator"; + hostName = "server"; + in + lib.nixosSystem { + specialArgs = { inherit user; inherit hostName; inherit system; }; + modules = + root.external ++ + root.base ++ + root.services ++ + root.filesystem.server ++ [ + { + home-manager.users.${user}.imports = + home.base; + home-manager.sharedModules = home.external; + } + ]; + }; + }; + }; +} diff --git a/home/base/git/default.nix b/home/base/git/default.nix new file mode 100644 index 0000000..bad5f55 --- /dev/null +++ b/home/base/git/default.nix @@ -0,0 +1,12 @@ +{ ... }: +{ + programs.git = { + enable = true; + userName = "Mohamed C."; + userEmail = "mohamed@chrayed.de"; + extraConfig = { + init.defaultBranch = "main"; + core.editor = "nano"; + }; + }; +} diff --git a/home/base/homeversion/default.nix b/home/base/homeversion/default.nix new file mode 100644 index 0000000..ef79f35 --- /dev/null +++ b/home/base/homeversion/default.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + home.stateVersion = "25.05"; +} diff --git a/home/base/shell/default.nix b/home/base/shell/default.nix new file mode 100644 index 0000000..b028594 --- /dev/null +++ b/home/base/shell/default.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + home.file.".zshrc".source = ./dotfiles/zsh-config; +} diff --git a/home/base/shell/dotfiles/zsh-config b/home/base/shell/dotfiles/zsh-config new file mode 100644 index 0000000..e69de29 diff --git a/home/base/ssh/default.nix b/home/base/ssh/default.nix new file mode 100644 index 0000000..3d84f6b --- /dev/null +++ b/home/base/ssh/default.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + home.file."./.ssh/config".source = ./dotfiles/ssh-identityfile; +} diff --git a/home/base/ssh/dotfiles/ssh-identityfile b/home/base/ssh/dotfiles/ssh-identityfile new file mode 100644 index 0000000..ebc500b --- /dev/null +++ b/home/base/ssh/dotfiles/ssh-identityfile @@ -0,0 +1,3 @@ +IdentityFile ~/.ssh/extern +IdentityFile ~/.ssh/intern +IdentityFile ~/.ssh/arbeit diff --git a/home/gaming/steam/default.nix b/home/gaming/steam/default.nix new file mode 100644 index 0000000..7706a73 --- /dev/null +++ b/home/gaming/steam/default.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + home.file.".config/autostart/steam.desktop".source = ./dotfiles/steam-desktop; +} diff --git a/home/gaming/steam/dotfiles/steam-desktop b/home/gaming/steam/dotfiles/steam-desktop new file mode 100644 index 0000000..0147092 --- /dev/null +++ b/home/gaming/steam/dotfiles/steam-desktop @@ -0,0 +1,282 @@ +[Desktop Entry] +Name=Steam +Comment=Application for managing and playing games on Steam +Comment[pt_BR]=Aplicativo para jogar e gerenciar jogos no Steam +Comment[bg]=Приложение за ръководене и пускане на игри в Steam +Comment[cs]=Aplikace pro spravování a hraní her ve službě Steam +Comment[da]=Applikation til at håndtere og spille spil på Steam +Comment[nl]=Applicatie voor het beheer en het spelen van games op Steam +Comment[fi]=Steamin pelien hallintaan ja pelaamiseen tarkoitettu sovellus +Comment[fr]=Application de gestion et d'utilisation des jeux sur Steam +Comment[de]=Anwendung zum Verwalten und Spielen von Spielen auf Steam +Comment[el]=Εφαρμογή διαχείρισης παιχνιδιών στο Steam +Comment[hu]=Alkalmazás a Steames játékok futtatásához és kezeléséhez +Comment[it]=Applicazione per la gestione e l'esecuzione di giochi su Steam +Comment[ja]=Steam 上でゲームを管理&プレイするためのアプリケーション +Comment[ko]=Steam에 있는 게임을 관리하고 플레이할 수 있는 응용 프로그램 +Comment[no]=Program for å administrere og spille spill på Steam +Comment[pt_PT]=Aplicação para organizar e executar jogos no Steam +Comment[pl]=Aplikacja do zarządzania i uruchamiania gier na platformie Steam +Comment[ro]=Aplicație pentru administrarea și jucatul jocurilor pe Steam +Comment[ru]=Приложение для игр и управления играми в Steam +Comment[es]=Aplicación para administrar y ejecutar juegos en Steam +Comment[sv]=Ett program för att hantera samt spela spel på Steam +Comment[zh_CN]=管理和进行 Steam 游戏的应用程序 +Comment[zh_TW]=管理並執行 Steam 遊戲的應用程式 +Comment[th]=โปรแกรมสำหรับจัดการและเล่นเกมบน Steam +Comment[tr]=Steam üzerinden oyun oynama ve düzenleme uygulaması +Comment[uk]=Програма для керування іграми та запуску ігор у Steam +Comment[vi]=Ứng dụng để quản lý và chơi trò chơi trên Steam +Exec=steam %U -silent +Icon=steam +Terminal=false +Type=Application +Categories=Network;FileTransfer;Game; +MimeType=x-scheme-handler/steam;x-scheme-handler/steamlink; +Actions=Store;Community;Library;Servers;Screenshots;News;Settings;BigPicture;Friends; +PrefersNonDefaultGPU=true +X-KDE-RunOnDiscreteGpu=true + +[Desktop Action Store] +Name=Store +Name[pt_BR]=Loja +Name[bg]=Магазин +Name[cs]=Obchod +Name[da]=Butik +Name[nl]=Winkel +Name[fi]=Kauppa +Name[fr]=Magasin +Name[de]=Shop +Name[el]=ΚΑΤΑΣΤΗΜΑ +Name[hu]=Áruház +Name[it]=Negozio +Name[ja]=ストア +Name[ko]=상점 +Name[no]=Butikk +Name[pt_PT]=Loja +Name[pl]=Sklep +Name[ro]=Magazin +Name[ru]=Магазин +Name[es]=Tienda +Name[sv]=Butik +Name[zh_CN]=商店 +Name[zh_TW]=商店 +Name[th]=ร้านค้า +Name[tr]=Mağaza +Name[uk]=Крамниця +Name[vi]=Cửa hàng +Exec=steam steam://store + +[Desktop Action Community] +Name=Community +Name[pt_BR]=Comunidade +Name[bg]=Общност +Name[cs]=Komunita +Name[da]=Fællesskab +Name[nl]=Community +Name[fi]=Yhteisö +Name[fr]=Communauté +Name[de]=Community +Name[el]=Κοινότητα +Name[hu]=Közösség +Name[it]=Comunità +Name[ja]=コミュニティ +Name[ko]=커뮤니티 +Name[no]=Samfunn +Name[pt_PT]=Comunidade +Name[pl]=Społeczność +Name[ro]=Comunitate +Name[ru]=Сообщество +Name[es]=Comunidad +Name[sv]=Gemenskap +Name[zh_CN]=社区 +Name[zh_TW]=社群 +Name[th]=ชุมชน +Name[tr]=Topluluk +Name[uk]=Спільнота +Name[vi]=Cộng đồng +Exec=steam steam://url/SteamIDControlPage + +[Desktop Action Library] +Name=Library +Name[pt_BR]=Biblioteca +Name[bg]=Библиотека +Name[cs]=Knihovna +Name[da]=Bibliotek +Name[nl]=Bibliotheek +Name[fi]=Kokoelma +Name[fr]=Bibliothèque +Name[de]=Bibliothek +Name[el]=Συλλογή +Name[hu]=Könyvtár +Name[it]=Libreria +Name[ja]=ライブラリ +Name[ko]=라이브러리 +Name[no]=Bibliotek +Name[pt_PT]=Biblioteca +Name[pl]=Biblioteka +Name[ro]=Colecţie +Name[ru]=Библиотека +Name[es]=Biblioteca +Name[sv]=Bibliotek +Name[zh_CN]=库 +Name[zh_TW]=收藏庫 +Name[th]=คลัง +Name[tr]=Kütüphane +Name[uk]=Бібліотека +Name[vi]=Thư viện +Exec=steam steam://open/games + +[Desktop Action Servers] +Name=Servers +Name[pt_BR]=Servidores +Name[bg]=Сървъри +Name[cs]=Servery +Name[da]=Servere +Name[nl]=Servers +Name[fi]=Palvelimet +Name[fr]=Serveurs +Name[de]=Server +Name[el]=Διακομιστές +Name[hu]=Szerverek +Name[it]=Server +Name[ja]=サーバー +Name[ko]=서버 +Name[no]=Tjenere +Name[pt_PT]=Servidores +Name[pl]=Serwery +Name[ro]=Servere +Name[ru]=Серверы +Name[es]=Servidores +Name[sv]=Servrar +Name[zh_CN]=服务器 +Name[zh_TW]=伺服器 +Name[th]=เซิร์ฟเวอร์ +Name[tr]=Sunucular +Name[uk]=Сервери +Name[vi]=Máy chủ +Exec=steam steam://open/servers + +[Desktop Action Screenshots] +Name=Screenshots +Name[pt_BR]=Capturas de tela +Name[bg]=Снимки +Name[cs]=Snímky obrazovky +Name[da]=Skærmbilleder +Name[nl]=Screenshots +Name[fi]=Kuvankaappaukset +Name[fr]=Captures d'écran +Name[de]=Screenshots +Name[el]=Φωτογραφίες +Name[hu]=Képernyőmentések +Name[it]=Screenshot +Name[ja]=スクリーンショット +Name[ko]=스크린샷 +Name[no]=Skjermbilder +Name[pt_PT]=Capturas de ecrã +Name[pl]=Zrzuty ekranu +Name[ro]=Capturi de ecran +Name[ru]=Скриншоты +Name[es]=Capturas +Name[sv]=Skärmdumpar +Name[zh_CN]=截图 +Name[zh_TW]=螢幕擷圖 +Name[th]=ภาพหน้าจอ +Name[tr]=Ekran Görüntüleri +Name[uk]=Скріншоти +Name[vi]=Ảnh chụp +Exec=steam steam://open/screenshots + +[Desktop Action News] +Name=News +Name[pt_BR]=Notícias +Name[bg]=Новини +Name[cs]=Zprávy +Name[da]=Nyheder +Name[nl]=Nieuws +Name[fi]=Uutiset +Name[fr]=Actualités +Name[de]=Neuigkeiten +Name[el]=Νέα +Name[hu]=Hírek +Name[it]=Notizie +Name[ja]=ニュース +Name[ko]=뉴스 +Name[no]=Nyheter +Name[pt_PT]=Novidades +Name[pl]=Aktualności +Name[ro]=Știri +Name[ru]=Новости +Name[es]=Noticias +Name[sv]=Nyheter +Name[zh_CN]=新闻 +Name[zh_TW]=新聞 +Name[th]=ข่าวสาร +Name[tr]=Haberler +Name[uk]=Новини +Name[vi]=Tin tức +Exec=steam steam://open/news + +[Desktop Action Settings] +Name=Settings +Name[pt_BR]=Configurações +Name[bg]=Настройки +Name[cs]=Nastavení +Name[da]=Indstillinger +Name[nl]=Instellingen +Name[fi]=Asetukset +Name[fr]=Paramètres +Name[de]=Einstellungen +Name[el]=Ρυθμίσεις +Name[hu]=Beállítások +Name[it]=Impostazioni +Name[ja]=設定 +Name[ko]=설정 +Name[no]=Innstillinger +Name[pt_PT]=Definições +Name[pl]=Ustawienia +Name[ro]=Setări +Name[ru]=Настройки +Name[es]=Parámetros +Name[sv]=Inställningar +Name[zh_CN]=设置 +Name[zh_TW]=設定 +Name[th]=การตั้งค่า +Name[tr]=Ayarlar +Name[uk]=Налаштування +Name[vi]=Thiết lập +Exec=steam steam://open/settings + +[Desktop Action BigPicture] +Name=Big Picture +Exec=steam steam://open/bigpicture + +[Desktop Action Friends] +Name=Friends +Name[pt_BR]=Amigos +Name[bg]=Приятели +Name[cs]=Přátelé +Name[da]=Venner +Name[nl]=Vrienden +Name[fi]=Kaverit +Name[fr]=Amis +Name[de]=Freunde +Name[el]=Φίλοι +Name[hu]=Barátok +Name[it]=Amici +Name[ja]=フレンド +Name[ko]=친구 +Name[no]=Venner +Name[pt_PT]=Amigos +Name[pl]=Znajomi +Name[ro]=Prieteni +Name[ru]=Друзья +Name[es]=Amigos +Name[sv]=Vänner +Name[zh_CN]=好友 +Name[zh_TW]=好友 +Name[th]=เพื่อน +Name[tr]=Arkadaşlar +Name[uk]=Друзі +Name[vi]=Bạn bè +Exec=steam steam://open/friends diff --git a/home/gnome/gnome/default.nix b/home/gnome/gnome/default.nix new file mode 100644 index 0000000..646324e --- /dev/null +++ b/home/gnome/gnome/default.nix @@ -0,0 +1,130 @@ +{ user, ... }: +{ +# Global Hotkeys +dconf.settings = { + "org/gnome/shell/keybindings" = { + focus-active-notification = []; + open-new-window-application-1 = []; + open-new-window-application-2 = []; + open-new-window-application-3 = []; + open-new-window-application-4 = []; + open-new-window-application-5 = []; + open-new-window-application-6 = []; + open-new-window-application-7 = []; + open-new-window-application-8 = []; + open-new-window-application-9 = []; + toggle-message-tray = ["N"]; + }; + "org/gnome/settings-daemon/plugins/media-keys" = { + help = []; + home = ["E"]; + screenreader = []; + magnifier = []; + magnifier-zoom-in = []; + magnifier-zoom-out = []; + }; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { + #binding = ["Return"]; + command = ["kgx --tab"]; + name = ["Console"]; + }; + "org/gnome/desktop/wm/keybindings" = { + activate-window-menu = []; + always-on-top = ["T"]; + begin-move = ["M"]; + begin-resize = ["R"]; + close = ["Q"]; + cycle-group = []; + cycle-group-backward = []; + cycle-panels = []; + cycle-panels-backward = []; + cycle-windows = []; + cycle-windows-backward = []; + lower = []; + maximize = []; + maximize-horizontally = []; + minimize = ["Down"]; + move-to-monitor-down = []; + move-to-monitor-left = []; + move-to-monitor-right = []; + move-to-monitor-up = []; + move-to-workspace-1 = []; + move-to-workspace-down = []; + move-to-workspace-last = []; + move-to-workspace-left = []; + move-to-workspace-right = []; + move-to-workspace-up = []; + show-desktop = ["D"]; + switch-applications = ["Tab"]; + switch-applications-backward = ["Tab"]; + switch-group = ["Tab"]; + switch-group-backward = ["Tab"]; + panel-run-dialog = ["Space"]; + switch-input-source = []; + switch-input-source-backward = []; + switch-panels = []; + switch-panels-backward = []; + switch-to-workspace-1 = []; + switch-to-workspace-down = []; + switch-to-workspace-last = []; + switch-to-workspace-left = []; + switch-to-workspace-right = []; + switch-to-workspace-up = []; + toggle-fullscreen = ["F"]; + toggle-maximized = ["Up"]; + toggle-on-all-workspaces = ["S"]; + unmaximize = []; + }; + "org/gnome/mutter" = { + experimental-features = ["variable-refresh-rate"]; + center-new-windows = true; + edge-tiling = true; + dynamic-workspaces = true; + }; + "org/gnome/desktop/interface" = { + font-name = "IBM Plex Sans 11"; + document-font-name = "IBM Plex Sans 11"; + monospace-font-name = "IBM Plex Mono 11"; + gtk-theme = "adw-gtk3"; + enable-hot-corners = false; + cursor-theme = "Adwaita"; + }; + "org/gnome/shell/extensions/rounded-window-corners-reborn" = { + border-width = -2; + skip-libadwaita-app = false; + }; + "org/gnome/shell/extensions/clipboard-indicator" = { + toggle-menu = ["V"]; + }; + "org/gnome/shell/extensions/azwallpaper" = { + #slideshow-directory = "/home/${user}/Bilder/Wallpaper"; + slideshow-use-absolute-time-for-duration = true; + }; + "org/gnome/desktop/background" = { + color-shading-type = "solid"; + picture-options = "zoom"; + #picture-uri = "file://" + /home/${user}/Bilder/Wallpaper/wallpaper-asia.jpg; + }; + "org/gnome/shell/extensions/nightthemeswitcher/commands" = { + enabled = true; + sunrise = "gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3' && gsettings set org.gnome.desktop.interface color-scheme 'default'"; + sunset = "gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3-dark' && gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'"; + }; + "org/gnome/shell" = { + enabled-extensions = [ + "light-style@gnome-shell-extensions.gcampax.github.com" + "clipboard-indicator@tudmotu.com" + "AlphabeticalAppGrid@stuarthayhurst" + "rounded-window-corners@fxgn" + "appindicatorsupport@rgcjonas.gmail.com" + "nightthemeswitcher@romainvigier.fr" + "azwallpaper@azwallpaper.gitlab.com" ]; + }; + }; + # Wallpaper + home.file.wallpaper = { + recursive = true; + source = ../../../assets; + target = "Bilder/Wallpaper"; + }; +} diff --git a/home/plasma/plasma/default.nix b/home/plasma/plasma/default.nix new file mode 100644 index 0000000..7ca132a --- /dev/null +++ b/home/plasma/plasma/default.nix @@ -0,0 +1,105 @@ +{ user, hostName, ... }: +{ + home.file."Code/.directory".source = ./dotfiles/code-folder; + home.file.".config/haruna/haruna.conf".source = ./dotfiles/haruna-config; + home.file.".local/share/user-places.xbel".source = ./dotfiles/userplaces-${hostName}; + home.file.".config/kde-material-you-colors/config.conf".source = ./dotfiles/kmyc-config; + home.file.".config/autostart/kde-material-you-colors.desktop".source = ./dotfiles/kmyc-desktop; + home.file.wallpaper = { + recursive = true; + source = ../../../assets; + target = "Bilder/Wallpaper"; + }; + + programs.plasma = { + enable = true; + immutableByDefault = false; + workspace.wallpaperSlideShow.path = /home/${user}/Bilder/Wallpaper; + workspace.wallpaperSlideShow.interval = 864000; + workspace.windowDecorations.library = "org.kde.klassy"; + workspace.windowDecorations.theme = "Klassy"; + kscreenlocker.appearance.wallpaper = "/home/${user}/Bilder/Wallpaper/wallpaper-beach.png"; + kscreenlocker.lockOnResume = false; + kscreenlocker.lockOnStartup = false; + kscreenlocker.passwordRequired = false; + powerdevil.AC.dimDisplay.enable = false; + powerdevil.AC.turnOffDisplay.idleTimeoutWhenLocked = 600; + session.general.askForConfirmationOnLogout = false; + fonts = { + menu.family = "Adwaita Sans"; + menu.pointSize = 10; + menu.weight = "normal"; + general.family = "Adwaita Sans"; + general.pointSize = 10; + general.weight = "normal"; + small.family = "Adwaita Sans"; + small.pointSize = 8; + small.weight = "normal"; + toolbar.family = "Adwaita Sans"; + toolbar.pointSize = 10; + toolbar.weight = "normal"; + fixedWidth.family = "Adwaita Mono"; + fixedWidth.pointSize = 11; + fixedWidth.weight = "normal"; + windowTitle.family = "Adwaita Sans"; + windowTitle.pointSize = 12; + windowTitle.weight = "normal"; + }; + workspace.cursor = { + size = 24; + theme = "Breeze_Light"; + }; + #workspace.lookAndFeel = "org.kde.breeze.desktop"; + workspace.colorScheme = "MaterialYouLight"; + panels = [ + { + location = "bottom"; + floating = true; + alignment = "center"; + height = 46; + lengthMode = "fit"; + hiding = "dodgewindows"; + widgets = [ + { + name = "org.kde.plasma.kickoff"; + config = { + General = { + icon = "nix-snowflake"; + }; + }; + } + "org.kde.plasma.marginsseparator" + { + iconTasks = { + launchers = [ + "applications:org.kde.dolphin.desktop" + "applications:org.kde.konsole.desktop" + "applications:google-chrome.desktop" + "applications:org.kde.kate.desktop" + "applications:steam.desktop" + "applications:vesktop.desktop" + "applications:org.kde.plasma-systemmonitor.desktop" + "applications:systemsettings.desktop" + ]; + }; + } + "org.kde.plasma.marginsseparator" + { + systemTray.items = { + shown = [ + "org.kde.plasma.bluetooth" + "org.kde.plasma.networkmanagement" + ]; + }; + } + { + digitalClock = { + calendar.firstDayOfWeek = "monday"; + time.format = "24h"; + }; + } + ]; + } + ]; + }; +} diff --git a/home/plasma/plasma/dotfiles/Keybinds.kksrc b/home/plasma/plasma/dotfiles/Keybinds.kksrc new file mode 100644 index 0000000..b7355d7 --- /dev/null +++ b/home/plasma/plasma/dotfiles/Keybinds.kksrc @@ -0,0 +1,378 @@ +[ActivityManager][Global Shortcuts] +switch-to-activity-99a658ea-e650-4e16-bc1c-5e90fd8097c3= + +[KDE Keyboard Layout Switcher][Global Shortcuts] +Switch to Last-Used Keyboard Layout= +Switch to Next Keyboard Layout= + +[StandardShortcuts] +AboutApp= +AboutKDE= +Activate Next Tab=Ctrl+]; Ctrl+PgDown +Activate Previous Tab=Ctrl+PgUp; Ctrl+[ +ActualSize=Ctrl+0 +AddBookmark=Ctrl+B +Back=Alt+Left; Back +BackwardWord=Ctrl+Left +Begin=Ctrl+Home +BeginningOfLine=Home +Clear= +Close=Ctrl+Esc; Ctrl+W +ConfigureNotifications= +ConfigureToolbars= +Copy=Ctrl+Ins; Ctrl+C +CreateFolder=Ctrl+Shift+N +Cut=Ctrl+X; Shift+Del +DeleteFile=Shift+Del +DeleteWordBack=Ctrl+Backspace +DeleteWordForward=Ctrl+Del +Deselect=Ctrl+Shift+A +DocumentBack=Alt+Shift+Left +DocumentForward=Alt+Shift+Right +Donate= +EditBookmarks= +End=Ctrl+End +EndOfLine=End +Find=Ctrl+F +FindNext=F3 +FindPrev=Shift+F3 +FitToHeight= +FitToPage= +FitToWidth= +Forward=Forward; Alt+Right +ForwardWord=Ctrl+Right +FullScreen=Ctrl+Shift+F +Goto= +GotoLine=Ctrl+G +GotoPage= +Help=F1 +Home=Home Page; Alt+Home +KeyBindings=Ctrl+Alt+, +Mail= +MoveToTrash=Del +New=Ctrl+N +Next=PgDown +NextCompletion=Ctrl+Down +Open=Ctrl+O +OpenContextMenu=Menu; Shift+F10 +OpenMainMenu=F10 +OpenRecent= +Paste=Ctrl+V; Shift+Ins +Paste Selection=Ctrl+Shift+Ins +Preferences=Ctrl+Shift+, +PrevCompletion=Ctrl+Up +Print=Ctrl+P +PrintPreview= +Prior=PgUp +Quit=Ctrl+Q +Redo=Ctrl+Shift+Z +Reload=Refresh; F5 +RenameFile=F2 +Replace=Ctrl+R +ReportBug= +Revert= +RotateDown=Down +RotateUp=Up +Save=Ctrl+S +SaveAs=Ctrl+Shift+S +SelectAll=Ctrl+A +ShowHideHiddenFiles=Ctrl+H; Alt+. +ShowMenubar=Ctrl+M +ShowStatusbar= +ShowToolbar= +Spelling= +SubstringCompletion=Ctrl+T +SwitchApplicationLanguage= +TextCompletion=Ctrl+E +Undo=Ctrl+Z +Up=Alt+Up +WhatsThis=Shift+F1 +Zoom= +ZoomIn=Ctrl+=; Ctrl++ +ZoomOut=Ctrl+- + +[kaccess][Global Shortcuts] +Toggle Screen Reader On and Off= + +[kcm_touchpad][Global Shortcuts] +Disable Touchpad=Touchpad Off +Enable Touchpad=Touchpad On +Toggle Touchpad=Meta+Ctrl+Touchpad Toggle; Touchpad Toggle; Meta+Ctrl+Zenkaku Hankaku + +[kmix][Global Shortcuts] +decrease_microphone_volume=Microphone Volume Down +decrease_volume=Volume Down +decrease_volume_small=Shift+Volume Down +increase_microphone_volume=Microphone Volume Up +increase_volume=Volume Up +increase_volume_small=Shift+Volume Up +mic_mute=Microphone Mute; Meta+Volume Mute +mute=Volume Mute + +[ksmserver][Global Shortcuts] +Halt Without Confirmation= +Lock Session=Meta+L; Screensaver +Log Out=Ctrl+Alt+Del +Log Out Without Confirmation= +LogOut= +Reboot= +Reboot Without Confirmation= +Shut Down= + +[kwin][Global Shortcuts] +Activate Window Demanding Attention= +Cycle Overview= +Cycle Overview Opposite= +Decrease Opacity= +Edit Tiles=Meta+T +Expose= +ExposeAll=Launch (C) +ExposeClass= +ExposeClassCurrentDesktop= +Grid View= +Increase Opacity= +Kill Window=Meta+Shift+Q +MinimizeAll=Meta+D +Move Tablet to Next Output= +MoveMouseToCenter= +MoveMouseToFocus= +MoveZoomDown= +MoveZoomLeft= +MoveZoomRight= +MoveZoomUp= +Overview= +Setup Window Shortcut= +Show Desktop= +Switch One Desktop Down= +Switch One Desktop Up= +Switch One Desktop to the Left= +Switch One Desktop to the Right= +Switch Window Down= +Switch Window Left= +Switch Window Right= +Switch Window Up= +Switch to Desktop 1= +Switch to Desktop 10= +Switch to Desktop 11= +Switch to Desktop 12= +Switch to Desktop 13= +Switch to Desktop 14= +Switch to Desktop 15= +Switch to Desktop 16= +Switch to Desktop 17= +Switch to Desktop 18= +Switch to Desktop 19= +Switch to Desktop 2= +Switch to Desktop 20= +Switch to Desktop 3= +Switch to Desktop 4= +Switch to Desktop 5= +Switch to Desktop 6= +Switch to Desktop 7= +Switch to Desktop 8= +Switch to Desktop 9= +Switch to Next Desktop= +Switch to Next Screen= +Switch to Previous Desktop= +Switch to Previous Screen= +Switch to Screen 0= +Switch to Screen 1= +Switch to Screen 2= +Switch to Screen 3= +Switch to Screen 4= +Switch to Screen 5= +Switch to Screen 6= +Switch to Screen 7= +Switch to Screen Above= +Switch to Screen Below= +Switch to Screen to the Left= +Switch to Screen to the Right= +Toggle Night Color= +Toggle Window Raise/Lower= +Walk Through Windows=Alt+Tab +Walk Through Windows (Reverse)=Alt+Shift+Tab +Walk Through Windows Alternative= +Walk Through Windows Alternative (Reverse)= +Walk Through Windows of Current Application=Meta+Tab +Walk Through Windows of Current Application (Reverse)=Meta+Shift+Tab +Walk Through Windows of Current Application Alternative= +Walk Through Windows of Current Application Alternative (Reverse)= +Window Above Other Windows= +Window Below Other Windows= +Window Close=Alt+F4; Meta+Q +Window Custom Quick Tile Bottom= +Window Custom Quick Tile Left= +Window Custom Quick Tile Right= +Window Custom Quick Tile Top= +Window Fullscreen= +Window Grow Horizontal= +Window Grow Vertical= +Window Lower= +Window Maximize=Meta+Up +Window Maximize Horizontal= +Window Maximize Vertical= +Window Minimize=Meta+Down +Window Move= +Window Move Center= +Window No Border= +Window On All Desktops= +Window One Desktop Down= +Window One Desktop Up= +Window One Desktop to the Left= +Window One Desktop to the Right= +Window One Screen Down= +Window One Screen Up= +Window One Screen to the Left= +Window One Screen to the Right= +Window Operations Menu= +Window Pack Down= +Window Pack Left= +Window Pack Right= +Window Pack Up= +Window Quick Tile Bottom= +Window Quick Tile Bottom Left= +Window Quick Tile Bottom Right= +Window Quick Tile Left=Meta+Left +Window Quick Tile Right=Meta+Right +Window Quick Tile Top= +Window Quick Tile Top Left= +Window Quick Tile Top Right= +Window Raise= +Window Resize= +Window Shade= +Window Shrink Horizontal= +Window Shrink Vertical= +Window to Desktop 1= +Window to Desktop 10= +Window to Desktop 11= +Window to Desktop 12= +Window to Desktop 13= +Window to Desktop 14= +Window to Desktop 15= +Window to Desktop 16= +Window to Desktop 17= +Window to Desktop 18= +Window to Desktop 19= +Window to Desktop 2= +Window to Desktop 20= +Window to Desktop 3= +Window to Desktop 4= +Window to Desktop 5= +Window to Desktop 6= +Window to Desktop 7= +Window to Desktop 8= +Window to Desktop 9= +Window to Next Desktop= +Window to Next Screen= +Window to Previous Desktop= +Window to Previous Screen= +Window to Screen 0= +Window to Screen 1= +Window to Screen 2= +Window to Screen 3= +Window to Screen 4= +Window to Screen 5= +Window to Screen 6= +Window to Screen 7= +disableInputCapture= +view_actual_size= +view_zoom_in= +view_zoom_out= + +[mediacontrol][Global Shortcuts] +mediavolumedown= +mediavolumeup= +nextmedia=Media Next +pausemedia=Media Pause +playmedia= +playpausemedia=Media Play +previousmedia=Media Previous +stopmedia=Media Stop + +[org.kde.dolphin.desktop][Global Shortcuts] +_launch=Meta+E + +[org.kde.kcalc.desktop][Global Shortcuts] +_launch=Calculator + +[org.kde.konsole.desktop][Global Shortcuts] +NewTab= +NewWindow= +_launch=Meta+Return + +[org.kde.krunner.desktop][Global Shortcuts] +RunClipboard= +_launch=Search; Alt+Space; Alt+F2 + +[org.kde.kscreen.desktop][Global Shortcuts] +ShowOSD=Meta+P; Display + +[org.kde.plasma-systemmonitor.desktop][Global Shortcuts] +_launch=Meta+Esc + +[org.kde.plasma.emojier.desktop][Global Shortcuts] +_launch= + +[org.kde.spectacle.desktop][Global Shortcuts] +ActiveWindowScreenShot= +CurrentMonitorScreenShot= +FullScreenScreenShot= +OpenWithoutScreenshot= +RecordRegion= +RecordScreen= +RecordWindow= +RectangularRegionScreenShot= +WindowUnderCursorScreenShot= +_launch=Print + +[org_kde_powerdevil][Global Shortcuts] +Decrease Keyboard Brightness=Keyboard Brightness Down +Decrease Screen Brightness=Monitor Brightness Down +Decrease Screen Brightness Small=Shift+Monitor Brightness Down +Hibernate=Hibernate +Increase Keyboard Brightness=Keyboard Brightness Up +Increase Screen Brightness=Monitor Brightness Up +Increase Screen Brightness Small=Shift+Monitor Brightness Up +PowerDown=Power Down +PowerOff=Power Off +Sleep=Sleep +Toggle Keyboard Backlight=Keyboard Light On/Off +Turn Off Screen= +powerProfile=Battery; Meta+B + +[plasmashell][Global Shortcuts] +activate application launcher=Alt+F1; Meta +activate task manager entry 1=Meta+1 +activate task manager entry 10= +activate task manager entry 2=Meta+2 +activate task manager entry 3=Meta+3 +activate task manager entry 4=Meta+4 +activate task manager entry 5=Meta+5 +activate task manager entry 6=Meta+6 +activate task manager entry 7=Meta+7 +activate task manager entry 8=Meta+8 +activate task manager entry 9=Meta+9 +clear-history= +clipboard_action= +cycle-panels= +cycleNextAction= +cyclePrevAction= +manage activities= +next activity= +previous activity= +repeat_action= +show dashboard= +show-barcode= +show-on-mouse-pos=Meta+V +stop current activity= +switch to next activity= +switch to previous activity= +toggle do not disturb= + +[systemsettings.desktop][Global Shortcuts] +_launch=Tools +kcm-kscreen= +kcm-lookandfeel= +kcm-powerdevilprofilesconfig= +kcm-screenlocker= +kcm-users= diff --git a/home/plasma/plasma/dotfiles/code-folder b/home/plasma/plasma/dotfiles/code-folder new file mode 100644 index 0000000..3e7a4a6 --- /dev/null +++ b/home/plasma/plasma/dotfiles/code-folder @@ -0,0 +1,2 @@ +[Desktop Entry] +Icon=folder-git diff --git a/home/plasma/plasma/dotfiles/haruna-config b/home/plasma/plasma/dotfiles/haruna-config new file mode 100644 index 0000000..36e2f7a --- /dev/null +++ b/home/plasma/plasma/dotfiles/haruna-config @@ -0,0 +1,13 @@ +[Audio] +PreferredLanguage=eng,en,ger,de,jap,ja + +[General] +AppendVideoToSingleInstance=true +ShowPreviewThumbnail=true +UseSingleInstance=true + +[Playback] +UseHWDecoding=true + +[Subtitles] +PreferredLanguage=eng,en,ger,de,jap,ja diff --git a/home/plasma/plasma/dotfiles/kdeshortcuts-config b/home/plasma/plasma/dotfiles/kdeshortcuts-config new file mode 100644 index 0000000..bbc3777 --- /dev/null +++ b/home/plasma/plasma/dotfiles/kdeshortcuts-config @@ -0,0 +1,300 @@ +[ActivityManager] +_k_friendly_name=Aktivitätenverwaltung +switch-to-activity-3ca404ec-5cd5-4e96-a3cf-39ff49b582e8=,none,Zu Aktivität „Standard“ wechseln + +[KDE Keyboard Layout Switcher] +Switch to Last-Used Keyboard Layout=Meta+Alt+L,Meta+Alt+L,Auf zuletzt verwendete Tastaturbelegung umschalten +Switch to Next Keyboard Layout=Meta+Alt+K,Meta+Alt+K,Auf nächste Tastaturbelegung umschalten +_k_friendly_name=Umschaltung der Tastaturbelegung + +[KDE Keyboard Layout Switcher][Global Shortcuts] +_k_friendly_name= + +[kaccess] +Toggle Screen Reader On and Off=Meta+Alt+S,Meta+Alt+S,Screenreader ein-/ausschalten +_k_friendly_name=Zugangshilfen + +[kcm_touchpad] +Disable Touchpad=Touchpad Off,Touchpad Off, +Enable Touchpad=Touchpad On,Touchpad On, +Toggle Touchpad=Touchpad Toggle\t\tMeta+Ctrl+Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku,Touchpad Toggle\tTouchpad Toggle\tMeta+Ctrl+Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku, +_k_friendly_name=kcm_touchpad + +[kcm_touchpad][Global Shortcuts] +_k_friendly_name= + +[kmix] +_k_friendly_name=Lautstärke +decrease_microphone_volume=Microphone Volume Down,Microphone Volume Down,Mikrofonlautstärke verringern +decrease_volume=Volume Down,Volume Down,Lautstärke verringern +decrease_volume_small=Shift+Volume Down,Shift+Volume Down,Lautstärke um 1 % verringern +increase_microphone_volume=Microphone Volume Up,Microphone Volume Up,Mikrofonlautstärke erhöhen +increase_volume=Volume Up,Volume Up,Lautstärke erhöhen +increase_volume_small=Shift+Volume Up,Shift+Volume Up,Lautstärke um 1 % erhöhen +mic_mute=Microphone Mute\tMeta+Volume Mute,Microphone Mute\tMeta+Volume Mute,Mikrofon stummschalten +mute=Volume Mute,Volume Mute,Stummschalten + +[ksmserver] +Halt Without Confirmation=,,Ohne Rückfrage herunterfahren +Lock Session=Meta+L\tScreensaver,Meta+L\tScreensaver,Sitzung sperren +Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,Abmeldedialog anzeigen +Log Out Without Confirmation=,,Ohne Rückfrage abmelden +LogOut=,,Abmelden +Reboot=,,Neu starten +Reboot Without Confirmation=,,Ohne Rückfrage neu starten +Shut Down=,,Herunterfahren +_k_friendly_name=ksmserver + +[ksmserver][Global Shortcuts] +_k_friendly_name= + +[kwin] +Activate Window Demanding Attention=Meta+Ctrl+A,Meta+Ctrl+A,Fenster aktivieren\\, das Aufmerksamkeit erfordert +Cycle Overview=,none,Durch Überblick und Rasteransicht wechseln +Cycle Overview Opposite=,none,Durch Rasteransicht und Überblick wechseln +Decrease Opacity=,,Die Deckkraft des aktiven Fensters um 5 % verringern +Edit Tiles=,Meta+T,Tiling-Editor ein-/ausschalten +Expose=,Ctrl+F9,Fenster der aktuellen Arbeitsfläche anzeigen +ExposeAll=Ctrl+F10\tLaunch (C),Ctrl+F10\tLaunch (C),Fenster aller Arbeitsflächen anzeigen +ExposeClass=,Ctrl+F7,Fenster der Fensterklasse anzeigen +ExposeClassCurrentDesktop=,none,Fenster der Fensterklasse auf der aktuellen Arbeitsfläche anzeigen +Grid View=,Meta+G,Übersicht umschalten +Increase Opacity=,,Die Deckkraft des aktiven Fensters um 5 % erhöhen +Kill Window=Meta+Shift+Q,Meta+Ctrl+Esc,Fenster beseitigen +MinimizeAll=Meta+D,none,MinimizeAll +Move Tablet to Next Output=,none,Move the tablet to the next output +MoveMouseToCenter=,Meta+F6,Mauszeiger zentrieren +MoveMouseToFocus=,Meta+F5,Mauszeiger in den Fokus verschieben +MoveZoomDown=,none,Vergrößerten Bereich nach unten verschieben +MoveZoomLeft=,none,Vergrößerten Bereich nach links verschieben +MoveZoomRight=,none,Vergrößerten Bereich nach rechts verschieben +MoveZoomUp=,none,Vergrößerten Bereich nach oben verschieben +Overview=,Meta+W,Übersicht umschalten +Setup Window Shortcut=,,Kurzbefehl für Fenster einrichten +Show Desktop=none,Meta+D,Blick auf die Arbeitsfläche +Switch One Desktop Down=Meta+Ctrl+Down,Meta+Ctrl+Down,Eine Arbeitsfläche nach unten +Switch One Desktop Up=Meta+Ctrl+Up,Meta+Ctrl+Up,Eine Arbeitsfläche nach oben +Switch One Desktop to the Left=Meta+Ctrl+Left,Meta+Ctrl+Left,Eine Arbeitsfläche nach links +Switch One Desktop to the Right=Meta+Ctrl+Right,Meta+Ctrl+Right,Eine Arbeitsfläche nach rechts +Switch Window Down=,Meta+Alt+Down,Zum Fenster darunter wechseln +Switch Window Left=,Meta+Alt+Left,Zum Fenster links wechseln +Switch Window Right=,Meta+Alt+Right,Zum Fenster rechts wechseln +Switch Window Up=,Meta+Alt+Up,Zum Fenster darüber wechseln +Switch to Desktop 1=Ctrl+F1,Ctrl+F1,Auf Arbeitsfläche 1 umschalten +Switch to Desktop 10=,,Auf Arbeitsfläche 10 umschalten +Switch to Desktop 11=,,Auf Arbeitsfläche 11 umschalten +Switch to Desktop 12=,,Auf Arbeitsfläche 12 umschalten +Switch to Desktop 13=,,Auf Arbeitsfläche 13 umschalten +Switch to Desktop 14=,,Auf Arbeitsfläche 14 umschalten +Switch to Desktop 15=,,Auf Arbeitsfläche 15 umschalten +Switch to Desktop 16=,,Auf Arbeitsfläche 16 umschalten +Switch to Desktop 17=,,Auf Arbeitsfläche 17 umschalten +Switch to Desktop 18=,,Auf Arbeitsfläche 18 umschalten +Switch to Desktop 19=,,Auf Arbeitsfläche 19 umschalten +Switch to Desktop 2=Ctrl+F2,Ctrl+F2,Auf Arbeitsfläche 2 umschalten +Switch to Desktop 20=,,Auf Arbeitsfläche 20 umschalten +Switch to Desktop 3=Ctrl+F3,Ctrl+F3,Auf Arbeitsfläche 3 umschalten +Switch to Desktop 4=Ctrl+F4,Ctrl+F4,Auf Arbeitsfläche 4 umschalten +Switch to Desktop 5=,,Auf Arbeitsfläche 5 umschalten +Switch to Desktop 6=,,Auf Arbeitsfläche 6 umschalten +Switch to Desktop 7=,,Auf Arbeitsfläche 7 umschalten +Switch to Desktop 8=,,Auf Arbeitsfläche 8 umschalten +Switch to Desktop 9=,,Auf Arbeitsfläche 9 umschalten +Switch to Next Desktop=,,Zur nächsten Arbeitsfläche umschalten +Switch to Next Screen=,,Zum nächsten Bildschirm wechseln +Switch to Previous Desktop=,,Zur vorherigen Arbeitsfläche umschalten +Switch to Previous Screen=,,Zum vorherigen Bildschirm wechseln +Switch to Screen 0=,,Zum Bildschirm 0 wechseln +Switch to Screen 1=,,Zum Bildschirm 1 wechseln +Switch to Screen 2=,,Zum Bildschirm 2 wechseln +Switch to Screen 3=,,Zum Bildschirm 3 wechseln +Switch to Screen 4=,,Zum Bildschirm 4 wechseln +Switch to Screen 5=,,Zum Bildschirm 5 wechseln +Switch to Screen 6=,,Zum Bildschirm 6 wechseln +Switch to Screen 7=,,Zum Bildschirm 7 wechseln +Switch to Screen Above=,,Zum Bildschirm oben wechseln +Switch to Screen Below=,,Zum Bildschirm unten wechseln +Switch to Screen to the Left=,,Zum Bildschirm links wechseln +Switch to Screen to the Right=,,Zum Bildschirm rechts wechseln +Toggle Night Color=,none,Nachtlicht aussetzen/fortsetzen +Toggle Window Raise/Lower=,,Fenster nach vorne/hinten +Walk Through Windows=Alt+Tab,Alt+Tab,Zwischen Fenstern wechseln +Walk Through Windows (Reverse)=Alt+Shift+Tab,Alt+Shift+Tab,Zwischen Fenstern wechseln (Gegenrichtung) +Walk Through Windows Alternative=,,Alternatives Wechseln zwischen Fenstern +Walk Through Windows Alternative (Reverse)=,,Alternatives Wechseln zwischen Fenstern (Gegenrichtung) +Walk Through Windows of Current Application=Meta+Tab,Alt+`,Zwischen Fenstern der aktuellen Anwendung wechseln +Walk Through Windows of Current Application (Reverse)=,Alt+~,Zwischen Fenstern der aktuellen Anwendung wechseln (Gegenrichtung) +Walk Through Windows of Current Application Alternative=,,Alternatives Wechseln zwischen Fenstern der aktuellen Anwendung +Walk Through Windows of Current Application Alternative (Reverse)=,,Alternatives Wechseln zwischen Fenstern der aktuellen Anwendung (Gegenrichtung) +Window Above Other Windows=,,Fenster im Vordergrund halten +Window Below Other Windows=,,Fenster im Hintergrund halten +Window Close=Alt+F4\tMeta+Q,Alt+F4,Fenster schließen +Window Custom Quick Tile Bottom=,,Custom Quick Tile Window to the Bottom +Window Custom Quick Tile Left=,,Custom Quick Tile Window to the Left +Window Custom Quick Tile Right=,,Custom Quick Tile Window to the Right +Window Custom Quick Tile Top=,,Custom Quick Tile Window to the Top +Window Fullscreen=Meta+F,,Fenster auf Vollbildgröße +Window Grow Horizontal=,,Fenster waagerecht maximieren +Window Grow Vertical=,,Fenster senkrecht maximieren +Window Lower=,,Fenster nach hinten +Window Maximize=Meta+Up,Meta+PgUp,Fenster maximieren +Window Maximize Horizontal=,,Fenster waagerecht maximieren +Window Maximize Vertical=,,Fenster senkrecht maximieren +Window Minimize=Meta+Down,Meta+PgDown,Fenster minimieren +Window Move=,,Fenster verschieben +Window Move Center=,,Fenster zentrieren +Window No Border=,,Titelleiste und Rahmen des Fensters ein-/ausschalten +Window On All Desktops=,,Fenster auf allen Arbeitsflächen anzeigen +Window One Desktop Down=,Meta+Ctrl+Shift+Down,Fenster eine Arbeitsfläche nach unten +Window One Desktop Up=,Meta+Ctrl+Shift+Up,Fenster eine Arbeitsfläche nach oben +Window One Desktop to the Left=,Meta+Ctrl+Shift+Left,Fenster eine Arbeitsfläche nach links +Window One Desktop to the Right=,Meta+Ctrl+Shift+Right,Fenster eine Arbeitsfläche nach rechts +Window One Screen Down=,,Fenster einen Bildschirm nach unten verschieben +Window One Screen Up=,,Fenster einen Bildschirm nach oben verschieben +Window One Screen to the Left=,,Fenster einen Bildschirm nach links verschieben +Window One Screen to the Right=,,Fenster einen Bildschirm nach rechts verschieben +Window Operations Menu=,Alt+F3,Fensteraktionen-Menü +Window Pack Down=,,Fenster nach unten verschieben +Window Pack Left=,,Fenster nach links verschieben +Window Pack Right=,,Fenster nach rechts verschieben +Window Pack Up=,,Fenster nach oben verschieben +Window Quick Tile Bottom=,Meta+Down,Fenster am unteren Bildschirmrand anordnen +Window Quick Tile Bottom Left=,,Fenster am linken unteren Bildschirmrand anordnen +Window Quick Tile Bottom Right=,,Fenster am rechten unteren Bildschirmrand anordnen +Window Quick Tile Left=Meta+Left,Meta+Left,Fenster am linken Bildschirmrand anordnen +Window Quick Tile Right=Meta+Right,Meta+Right,Fenster am rechten Bildschirmrand anordnen +Window Quick Tile Top=,Meta+Up,Fenster am oberen Bildschirmrand anordnen +Window Quick Tile Top Left=,,Fenster am linken oberen Bildschirmrand anordnen +Window Quick Tile Top Right=,,Fenster am rechten oberen Bildschirmrand anordnen +Window Raise=,,Fenster nach vorne +Window Resize=,,Fenstergröße ändern +Window Shade=,,Fensterheber betätigen +Window Shrink Horizontal=,,Fenster waagerecht verkleinern +Window Shrink Vertical=,,Fenster senkrecht verkleinern +Window to Desktop 1=,,Fenster auf Arbeitsfläche 1 +Window to Desktop 10=,,Fenster auf Arbeitsfläche 10 +Window to Desktop 11=,,Fenster auf Arbeitsfläche 11 +Window to Desktop 12=,,Fenster auf Arbeitsfläche 12 +Window to Desktop 13=,,Fenster auf Arbeitsfläche 13 +Window to Desktop 14=,,Fenster auf Arbeitsfläche 14 +Window to Desktop 15=,,Fenster auf Arbeitsfläche 15 +Window to Desktop 16=,,Fenster auf Arbeitsfläche 16 +Window to Desktop 17=,,Fenster auf Arbeitsfläche 17 +Window to Desktop 18=,,Fenster auf Arbeitsfläche 18 +Window to Desktop 19=,,Fenster auf Arbeitsfläche 19 +Window to Desktop 2=,,Fenster auf Arbeitsfläche 2 +Window to Desktop 20=,,Fenster auf Arbeitsfläche 20 +Window to Desktop 3=,,Fenster auf Arbeitsfläche 3 +Window to Desktop 4=,,Fenster auf Arbeitsfläche 4 +Window to Desktop 5=,,Fenster auf Arbeitsfläche 5 +Window to Desktop 6=,,Fenster auf Arbeitsfläche 6 +Window to Desktop 7=,,Fenster auf Arbeitsfläche 7 +Window to Desktop 8=,,Fenster auf Arbeitsfläche 8 +Window to Desktop 9=,,Fenster auf Arbeitsfläche 9 +Window to Next Desktop=,,Fenster auf nächste Arbeitsfläche verschieben +Window to Next Screen=Meta+Shift+Tab,Meta+Shift+Right,Fenster auf nächsten Bildschirm verschieben +Window to Previous Desktop=,,Fenster auf vorherige Arbeitsfläche verschieben +Window to Previous Screen=,Meta+Shift+Left,Fenster auf vorherigen Bildschirm verschieben +Window to Screen 0=,,Fenster auf Bildschirm 0 verschieben +Window to Screen 1=,,Fenster auf Bildschirm 1 verschieben +Window to Screen 2=,,Fenster auf Bildschirm 2 verschieben +Window to Screen 3=,,Fenster auf Bildschirm 3 verschieben +Window to Screen 4=,,Fenster auf Bildschirm 4 verschieben +Window to Screen 5=,,Fenster auf Bildschirm 5 verschieben +Window to Screen 6=,,Fenster auf Bildschirm 6 verschieben +Window to Screen 7=,,Fenster auf Bildschirm 7 verschieben +_k_friendly_name=kwin +disableInputCapture=Meta+Shift+Esc,Meta+Shift+Esc,Disable Active Input Capture +view_actual_size=Meta+0,Meta+0,Auf Originalgröße zoomen +view_zoom_in=,Meta++\tMeta+=,Vergrößern +view_zoom_out=,Meta+-,Verkleinern + +[kwin][Global Shortcuts] +_k_friendly_name= + +[mediacontrol] +_k_friendly_name=Mediensteuerung +mediavolumedown=,,Medienwiedergabe leiser +mediavolumeup=,,Medienwiedergabe lauter +nextmedia=Media Next,Media Next,Nächstes Medium wiedergeben +pausemedia=Media Pause,Media Pause,Medienwiedergabe pausieren +playmedia=,,Medienwiedergabe starten +playpausemedia=Media Play,Media Play,Medienwiedergabe starten/pausieren +previousmedia=Media Previous,Media Previous,Vorheriges Medium wiedergeben +stopmedia=Media Stop,Media Stop,Medienwiedergabe anhalten + +[org_kde_powerdevil] +Decrease Keyboard Brightness=Keyboard Brightness Down,Keyboard Brightness Down,Helligkeit der Tastatur-Hintergrundbeleuchtung verringern +Decrease Screen Brightness=Monitor Brightness Down,Monitor Brightness Down,Bildschirmhelligkeit verringern +Decrease Screen Brightness Small=Shift+Monitor Brightness Down,Shift+Monitor Brightness Down,Bildschirmhelligkeit um 1 % verringern +Hibernate=Hibernate,Hibernate,Ruhezustand +Increase Keyboard Brightness=Keyboard Brightness Up,Keyboard Brightness Up,Helligkeit der Tastatur-Hintergrundbeleuchtung erhöhen +Increase Screen Brightness=Monitor Brightness Up,Monitor Brightness Up,Bildschirmhelligkeit erhöhen +Increase Screen Brightness Small=Shift+Monitor Brightness Up,Shift+Monitor Brightness Up,Bildschirmhelligkeit um 1 % erhöhen +PowerDown=Power Down,Power Down,Abschalten +PowerOff=Power Off,Power Off,Ausschalten +Sleep=Sleep,Sleep,Standby-Modus +Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,Hintergrundbeleuchtung der Tastatur umschalten +Turn Off Screen=,none,Bildschirm ausschalten +_k_friendly_name=Energieverwaltung +powerProfile=Battery\tMeta+B,Battery\tMeta+B,Energieprofil wechseln + +[plasmashell] +_k_friendly_name=plasmashell +activate application launcher=Meta\tAlt+F1,Meta\tAlt+F1,Anwendungsstarter aktivieren +activate task manager entry 1=Meta+1,Meta+1,Fensterleisteneintrag 1 aktivieren +activate task manager entry 10=,,Fensterleisteneintrag 10 aktivieren +activate task manager entry 2=Meta+2,Meta+2,Fensterleisteneintrag 2 aktivieren +activate task manager entry 3=Meta+3,Meta+3,Fensterleisteneintrag 3 aktivieren +activate task manager entry 4=Meta+4,Meta+4,Fensterleisteneintrag 4 aktivieren +activate task manager entry 5=Meta+5,Meta+5,Fensterleisteneintrag 5 aktivieren +activate task manager entry 6=Meta+6,Meta+6,Fensterleisteneintrag 6 aktivieren +activate task manager entry 7=Meta+7,Meta+7,Fensterleisteneintrag 7 aktivieren +activate task manager entry 8=Meta+8,Meta+8,Fensterleisteneintrag 8 aktivieren +activate task manager entry 9=Meta+9,Meta+9,Fensterleisteneintrag 9 aktivieren +clear-history=,,Bisherigen Inhalt der Zwischenablage löschen +clipboard_action=,Meta+Ctrl+X,Automatisches Aufklappmenü für Aktionen +cycle-panels=,Meta+Alt+P,Tastaturfokus zwischen Kontrollleisten umschalten +cycleNextAction=,,Nächstes Element im Verlauf +cyclePrevAction=,,Vorheriges Element im Verlauf +manage activities=,Meta+Q,Aktivitätenwechsler anzeigen +next activity=,none,Zwischen Aktivitäten wechseln +previous activity=,none,Zwischen Aktivitäten wechseln (Gegenrichtung) +repeat_action=,,Aktionen der aktuellen Zwischenablage manuell aufrufen +show dashboard=,Ctrl+F12,Arbeitsfläche anzeigen +show-barcode=,,Strichcode anzeigen … +show-on-mouse-pos=Meta+V,Meta+V,Elemente der Zwischenablage an Mausposition anzeigen +stop current activity=,Meta+S,Aktuelle Aktivität anhalten +switch to next activity=,,Zur nächsten Aktivität wechseln +switch to previous activity=,,Zur vorherigen Aktivität wechseln +toggle do not disturb=,,Nicht stören umschalten + +[services][org.kde.konsole.desktop] +NewTab= +NewWindow= +_launch=Meta+Return + +[services][org.kde.krunner.desktop] +RunClipboard= + +[services][org.kde.plasma.emojier.desktop] +_launch=Meta+C + +[services][org.kde.spectacle.desktop] +ActiveWindowScreenShot= +CurrentMonitorScreenShot= +FullScreenScreenShot= +OpenWithoutScreenshot= +RecordRegion= +RecordScreen= +RecordWindow= +RectangularRegionScreenShot= +WindowUnderCursorScreenShot= +_launch=Print + +[services][systemsettings.desktop] +kcm-kscreen= +kcm-lookandfeel= +kcm-powerdevilprofilesconfig= +kcm-screenlocker= +kcm-users= diff --git a/home/plasma/plasma/dotfiles/klassy-config b/home/plasma/plasma/dotfiles/klassy-config new file mode 100644 index 0000000..b13f470 --- /dev/null +++ b/home/plasma/plasma/dotfiles/klassy-config @@ -0,0 +1,8 @@ +[TitleBarSpacing] +TitleAlignment=AlignLeft + +[Windeco] +ButtonIconStyle=StyleRedmond11 +ButtonShape=ShapeIntegratedRoundedRectangleGrouped +RoundBottomCornersWhenNoBorders=true +WindowCornerRadius=3 diff --git a/home/plasma/plasma/dotfiles/kmyc-config b/home/plasma/plasma/dotfiles/kmyc-config new file mode 100644 index 0000000..7c084b5 --- /dev/null +++ b/home/plasma/plasma/dotfiles/kmyc-config @@ -0,0 +1,197 @@ +[CUSTOM] +# INSTRUCTIONS +# Run kde-material-you-colors with no arguments from terminal +# to debug your configuration changing in real time. +# NOTE: +# Any argument passed from the command line overrides their counterpart here. + +# Monitor to get wallpaper from +# For me main is 0 but second one is 6, play with this to find yours +# Default is 0 +monitor = 0 + +# File containing absolute path of an image (Takes precedence over automatic wallpaper detection) +# Commented by default +#file = /tmp/000_eDP-1_current_wallpaper + +# Custom color used to generate M3 color scheme (Takes precedence over automatic wallpaper detection, monitor and file options) +# Accepted values are hex (e.g #ff0000) and rgb (e.g 255,0,0) colors (rgb is converted to hex) +#color = 255,0,1 + +# List of 7 space separated colors (hex or rgb) to be used for text in pywal/konsole/KSyntaxHighlighting instead of wallpaper ones +# Accepted values are hex e.g #ff0000 and rgb e.g 255,0,0 colors (rgb is converted to hex) +# Commented by default +# Example using catppuccin color scheme: +#custom_colors_list = #ED8796 #A6DA95 #EED49F #8AADF4 #F5BDE6 #8BD5CA #f5a97f + +# Enable Light mode +# Accepted values are True or False +# Commented by default to follow System Color Setting (Material You Light/Dark only) +# NOTE: +# Will fallback to dark mode if not defined here or enabled in Settings +#light = False + +# Alternative color mode (default is 0), some images return more than one color, this will use either the matched or last color +# Default is 0 +ncolor = 0 + +# Light scheme icons theme +# Commented by default +iconslight = klassy + +# Dark scheme icons theme +# Commented by default +iconsdark = klassy-dark + +# Use pywal to theme other programs using Material You colors +# https://github.com/dylanaraps/pywal/wiki/Customization +# You need to install pywal python module first +# Accepted values are True or False +# Commented by default +pywal=True + +# Force light/dark mode for pywal and/or Konsole +# Accepted values are True or False comment out to dark/light scheme +# Commented by default (Follows light option above) +# NOTE: +# Theming Konsole doesn't require pywal to be installed +#pywal_light = False + +# The amount of perceptible color for backgrounds in dark mode +# A number between 0 and 4.0 (limited for accessibility purposes) +# Defaults to 1 if not set +#light_blend_multiplier = 1.0 + +# The amount of perceptible color for backgrounds in dark mode +# A number between 0 and 4.0 (limited for accessibility purposes) +# Defaults to 1 if not set +#dark_blend_multiplier = 1.0 + +# A script/command that will be executed on start or wallpaper/dark/light/settings change +# example below using https://github.com/vlevit/notify-send.sh to send a desktop notification: +#on_change_hook = notify-send.sh "kde-material-you-colors" "This is a test" -t 2000 + +# Tint Sierra Breeze decoration buttons https://github.com/kay0u/SierraBreeze +# Accepted values are True or False +# Default is False +# NOTE: +# This WILL OVERWRITE any set colors and reload KWin (screen will blink on x11) +#sierra_breeze_buttons_color = True + +# Disable automatic Konsole theming +# Default is False +# NOTE: +# When enabled, Konsole color scheme files are still generated, but not enforced +#disable_konsole = False + +# Konsole background opacity (normal and dark mode) +# An integer between 0 and 100 +# Default is commented (opaque) +#konsole_opacity = 85 +#konsole_opacity_dark = 85 + +# Title Bar opacity (normal and dark mode) +# Requires one of the following window decorations: +# Klassy https://github.com/paulmcauley/klassy || Sierra Breeze Enhanced https://github.com/kupiqu/SierraBreezeEnhanced +# An integer between 0 and 100 +# Default is commented (opaque) +# NOTE: +# This will reload KWin (screen will blink on x11) +#titlebar_opacity = 85 +#titlebar_opacity_dark = 85 + +# ToolBar opacity (normal and dark mode) needs Lightly Application Style to work https://github.com/Luwx/Lightly +# An integer between 0 and 100 +# Default is commented (opaque) +# NOTE: +# kirigami ToolBar opacity is not affected by this option https://github.com/Luwx/Lightly/issues/128 +#toolbar_opacity = 85 +#toolbar_opacity_dark = 85 + +# Tint Klassy Window Decoration window outline https://github.com/paulmcauley/klassy +# Accepted values are True or False +# Default is False +# NOTE: +# This will reload KWin (screen will blink on x11) +#klassy_windeco_outline= True + +# List of space separated window class names to apply a darker titlebar, +# useful for terminals, code editors and other programs themed by pywal +# will create a window rule matching names in a case insensitive manner +# Commented by default +# This WILL reload KWin (screen will blink on x11) +# Example with konsole, Alacritty and kitty terminals +#darker_window_list = konsole Alacritty kitty + +# Enable startup delay delay before doing anything, +# useful for waiting for other utilities that may change themes on boot. +# Requires setting startup_delay below or passing --sd SECONDS +# Commented by default +#use_startup_delay = True + +# Startup delay in seconds +# Useful for waiting for other utilities that may change themes on boot +# Commented by default +#startup_delay = 5 + +# Main loop delay in seconds +# How often the main program looks for wallpaper/config changes. +# Useful to save some power +# Default is 1 seconds +# Commented by default +#main_loop_delay = 1 + +# Delay between desktop view screenshots in seconds +# Some wallpaper plugins display a constant transition based on time or other +# circumstances, this option can be configured to decrease the amount +# of detections for those cases to save power. +# NOTE: +# Should be bigger than main_loop_delay (will take main_loop_delay otherwise) +# Default is 900 seconds (15 minutes) +# Commented by default +#screenshot_delay = 900 + +# Extract colors from screenshot once after changing plugin +# This option makes sense for wallpaper plugins that display an animated loop +# that never stops. This option makes the color extraction run +# only a single time instead of detecting every change. +# Useful to save power and resources for wallpapers that need screenshot +# Default is False +# Commented by default +#once_after_change = False + +# Pause mode +# Disables wallpaper detection and automatic theming +# Default is False +#pause_mode = False + +# Scheme Variant +# Changes between Material You scheme variants (0-8) +# 0 = Content +# 1 = Expressive +# 2 = Fidelity +# 3 = Monochrome +# 4 = Neutral +# 5 = TonalSpot +# 6 = Vibrant +# 7 = Rainbow +# 8 = FruitSalad +# Default is 5 +scheme_variant = 5 + +# Colorfulness +# Changes chroma (colorfulness) of theme +# An integer between 0.5 and 10 +# Default is 1 +chroma_multiplier = 1 + +# Brightness +# Changes tone (brightness) of theme +# An integer between 0.5 and 1.5 +# Default is 1 +tone_multiplier = 1 + +# QDbus executable +# Name or location of the QDbus executable e.g qdbus6, qdbus-qt6... +# Default is qdbus6 +qdbus_executable = qdbus diff --git a/home/plasma/plasma/dotfiles/kmyc-desktop b/home/plasma/plasma/dotfiles/kmyc-desktop new file mode 100644 index 0000000..8703fd5 --- /dev/null +++ b/home/plasma/plasma/dotfiles/kmyc-desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Exec=kde-material-you-colors +Icon= +Name=kde-material-you-colors +Path= +Terminal=False +Type=Application diff --git a/home/plasma/plasma/dotfiles/krunner-config b/home/plasma/plasma/dotfiles/krunner-config new file mode 100644 index 0000000..ceaf09b --- /dev/null +++ b/home/plasma/plasma/dotfiles/krunner-config @@ -0,0 +1,3 @@ +[General] +FreeFloating=true +historyBehavior=ImmediateCompletion diff --git a/home/plasma/plasma/dotfiles/kwin-config b/home/plasma/plasma/dotfiles/kwin-config new file mode 100644 index 0000000..3bdf34e --- /dev/null +++ b/home/plasma/plasma/dotfiles/kwin-config @@ -0,0 +1,26 @@ +[Desktops] +Id_1=29b63c03-e66e-4e5c-b4e4-b3b74c72c1e0 +Number=1 +Rows=1 + +[Round-Corners] +InactiveCornerRadius=3 +Size=3 + +[Tiling] +padding=4 + +[Tiling][8d68b562-7cb3-59eb-9dfc-6d7db3f311a8] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][958e4428-4cae-537e-8f11-81c0be072b7f] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Xwayland] +Scale=1 + +[org.kde.kdecoration2] +ButtonsOnLeft=F +ButtonsOnRight=IAX +library=org.kde.klassy +theme=Klassy diff --git a/home/plasma/plasma/dotfiles/kwin-rules b/home/plasma/plasma/dotfiles/kwin-rules new file mode 100644 index 0000000..01e690f --- /dev/null +++ b/home/plasma/plasma/dotfiles/kwin-rules @@ -0,0 +1,15 @@ +[2ade3df0-3c0b-4f75-bc22-ccfc46b21de9] +Description=Fenster-Einstellungen für vesktop +clientmachine=localhost +decocolor=BreezeDark +decocolorrule=2 +title=• Discord | #nixos | Nix/NixOS (unofficial) +types=1 +windowrole=browser-window +windowrolematch=1 +wmclass=vesktop +wmclassmatch=1 + +[General] +count=1 +rules=2ade3df0-3c0b-4f75-bc22-ccfc46b21de9 diff --git a/home/plasma/plasma/dotfiles/kwindecoration-config b/home/plasma/plasma/dotfiles/kwindecoration-config new file mode 100644 index 0000000..f614761 --- /dev/null +++ b/home/plasma/plasma/dotfiles/kwindecoration-config @@ -0,0 +1,2 @@ +[Global] +BundledWindecoPresetsImportedVersion=6.2.1 diff --git a/home/plasma/plasma/dotfiles/userplaces-Computer-Mo b/home/plasma/plasma/dotfiles/userplaces-Computer-Mo new file mode 100644 index 0000000..118ccc6 --- /dev/null +++ b/home/plasma/plasma/dotfiles/userplaces-Computer-Mo @@ -0,0 +1,215 @@ + + + + + + 4 + false + false + false + false + false + true + false + true + false + + + + Home + + + + + + 1722875040/0 + true + + + + + Desktop + + + + + + 1722875040/1 + true + true + + + + + Pictures + + + + + + 1722875040/7 + true + + + + + Code + + + + + + 1723820821/2 + + + + + Documents + + + + + + 1722875040/2 + true + + + + + Downloads + + + + + + 1722875040/3 + true + + + + + Music + + + + + + 1722875040/6 + true + + + + + Öffentlich + + + + + + 1723820827/3 + + + + + Schreibtisch + + + + + + 1723820837/4 + + + + + Videos + + + + + + 1722875040/8 + true + + + + + Vorlagen + + + + + + 1723820856/5 + + + + + Daten + + + + + + 1723820812/0 + + + + + Network + + + + + + 1722875040/4 + true + + + + + Trash + + + + + + 1722875040/5 + true + + + + + Recent Files + + + + + + 1722875040/9 + true + + + + + Recent Locations + + + + + + 1722875040/10 + true + + + + + + + /org/freedesktop/UDisks2/block_devices/nvme0n1p2 + true + 27c4c28c-0cd4-4d41-bdcd-0145c5d61a5a + + + + diff --git a/home/plasma/plasma/dotfiles/userplaces-konsole b/home/plasma/plasma/dotfiles/userplaces-konsole new file mode 100644 index 0000000..b712a69 --- /dev/null +++ b/home/plasma/plasma/dotfiles/userplaces-konsole @@ -0,0 +1,215 @@ + + + + + + 4 + false + false + false + false + false + true + false + true + false + + + + Home + + + + + + 1722875040/0 + true + + + + + Desktop + + + + + + 1722875040/1 + true + true + + + + + Pictures + + + + + + 1722875040/7 + true + + + + + Code + + + + + + 1723820821/2 + + + + + Documents + + + + + + 1722875040/2 + true + + + + + Downloads + + + + + + 1722875040/3 + true + + + + + Music + + + + + + 1722875040/6 + true + + + + + Öffentlich + + + + + + 1723820827/3 + + + + + Schreibtisch + + + + + + 1723820837/4 + + + + + Videos + + + + + + 1722875040/8 + true + + + + + Vorlagen + + + + + + 1723820856/5 + + + + + Daten + + + + + + 1723820812/0 + + + + + Network + + + + + + 1722875040/4 + true + + + + + Trash + + + + + + 1722875040/5 + true + + + + + Recent Files + + + + + + 1722875040/9 + true + + + + + Recent Locations + + + + + + 1722875040/10 + true + + + + + + + /org/freedesktop/UDisks2/block_devices/nvme0n1p2 + true + 27c4c28c-0cd4-4d41-bdcd-0145c5d61a5a + + + + diff --git a/home/plasma/plasma/dotfiles/userplaces-steamdeck b/home/plasma/plasma/dotfiles/userplaces-steamdeck new file mode 100644 index 0000000..b712a69 --- /dev/null +++ b/home/plasma/plasma/dotfiles/userplaces-steamdeck @@ -0,0 +1,215 @@ + + + + + + 4 + false + false + false + false + false + true + false + true + false + + + + Home + + + + + + 1722875040/0 + true + + + + + Desktop + + + + + + 1722875040/1 + true + true + + + + + Pictures + + + + + + 1722875040/7 + true + + + + + Code + + + + + + 1723820821/2 + + + + + Documents + + + + + + 1722875040/2 + true + + + + + Downloads + + + + + + 1722875040/3 + true + + + + + Music + + + + + + 1722875040/6 + true + + + + + Öffentlich + + + + + + 1723820827/3 + + + + + Schreibtisch + + + + + + 1723820837/4 + + + + + Videos + + + + + + 1722875040/8 + true + + + + + Vorlagen + + + + + + 1723820856/5 + + + + + Daten + + + + + + 1723820812/0 + + + + + Network + + + + + + 1722875040/4 + true + + + + + Trash + + + + + + 1722875040/5 + true + + + + + Recent Files + + + + + + 1722875040/9 + true + + + + + Recent Locations + + + + + + 1722875040/10 + true + + + + + + + /org/freedesktop/UDisks2/block_devices/nvme0n1p2 + true + 27c4c28c-0cd4-4d41-bdcd-0145c5d61a5a + + + + diff --git a/root/base/apps-shell/default.nix b/root/base/apps-shell/default.nix new file mode 100644 index 0000000..812e6eb --- /dev/null +++ b/root/base/apps-shell/default.nix @@ -0,0 +1,11 @@ +# Shell Apps for every host. +{ pkgs, ... }: +{ + environment.systemPackages = + (with pkgs; [ + wget + git + nil + yaml-language-server + ]); +} diff --git a/root/base/boot/default.nix b/root/base/boot/default.nix new file mode 100644 index 0000000..b0b9879 --- /dev/null +++ b/root/base/boot/default.nix @@ -0,0 +1,16 @@ +# Boot options. +{ ... }: +{ + boot.loader.systemd-boot.enable = true; + boot.loader.systemd-boot.consoleMode = "max"; + boot.loader.efi.canTouchEfiVariables = true; + boot.loader.timeout = 1; + boot.consoleLogLevel = 0; + # Lots of kernel params for pure quiet boot. + boot.kernelParams = [ "quiet" "splash" "boot.shell_on_fail" "i915.fastboot=1" "loglevel=3" "rd.systemd.show_status=false" "rd.udev.log_level=3" "udev.log_priority=3" "i915.enable_guc=2" ]; + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.verbose = false; + boot.initrd.enable = true; + boot.plymouth.enable = true; + boot.plymouth.theme = "bgrt"; +} diff --git a/root/base/firewall/default.nix b/root/base/firewall/default.nix new file mode 100644 index 0000000..c00cef8 --- /dev/null +++ b/root/base/firewall/default.nix @@ -0,0 +1,6 @@ +{ ... }: +{ + networking.firewall = { + enable = false; +}; +} diff --git a/root/base/firmware/default.nix b/root/base/firmware/default.nix new file mode 100644 index 0000000..08af608 --- /dev/null +++ b/root/base/firmware/default.nix @@ -0,0 +1,6 @@ +# Firmware updater. +{ ... }: +{ + services.fwupd.enable = true; + hardware.enableAllFirmware = true; +} diff --git a/root/base/home-manager/default.nix b/root/base/home-manager/default.nix new file mode 100644 index 0000000..5f87c45 --- /dev/null +++ b/root/base/home-manager/default.nix @@ -0,0 +1,8 @@ +# Home Manager Settings. +{ pkgs, user, hostName, ... }: +{ + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = { inherit pkgs; inherit user; inherit hostName; }; + home-manager.backupFileExtension = "backup"; +} diff --git a/root/base/locale/default.nix b/root/base/locale/default.nix new file mode 100644 index 0000000..a1649ae --- /dev/null +++ b/root/base/locale/default.nix @@ -0,0 +1,19 @@ +# Locale settings. +{ ... }: +{ + time.timeZone = "Europe/Berlin"; + i18n.defaultLocale = "de_DE.UTF-8"; + console.keyMap = "de"; + services.xserver.xkb.layout = "de"; + i18n.extraLocaleSettings = { + LC_ADDRESS = "de_DE.UTF-8"; + LC_IDENTIFICATION = "de_DE.UTF-8"; + LC_MEASUREMENT = "de_DE.UTF-8"; + LC_MONETARY = "de_DE.UTF-8"; + LC_NAME = "de_DE.UTF-8"; + LC_NUMERIC = "de_DE.UTF-8"; + LC_PAPER = "de_DE.UTF-8"; + LC_TELEPHONE = "de_DE.UTF-8"; + LC_TIME = "de_DE.UTF-8"; + }; +} diff --git a/root/base/microcode/default.nix b/root/base/microcode/default.nix new file mode 100644 index 0000000..601d2a4 --- /dev/null +++ b/root/base/microcode/default.nix @@ -0,0 +1,6 @@ +# CPU microcode, uses both since it can't hurt +{ lib, config,... }: +{ + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/root/base/networking/default.nix b/root/base/networking/default.nix new file mode 100644 index 0000000..7b72a84 --- /dev/null +++ b/root/base/networking/default.nix @@ -0,0 +1,8 @@ +# Simple networking settings. Uses DHCP. +{ lib, hostName, ... }: +{ + networking.hostName = hostName; + networking.useDHCP = lib.mkDefault true; + networking.networkmanager.enable = true; + networking.interfaces.enp11s0.wakeOnLan.enable = true; +} diff --git a/root/base/nixsettings/default.nix b/root/base/nixsettings/default.nix new file mode 100644 index 0000000..709c433 --- /dev/null +++ b/root/base/nixsettings/default.nix @@ -0,0 +1,7 @@ +# Misc. nix settings. +{ lib, ... }: +{ + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + nixpkgs.config.allowUnfree = true; + nix.settings.experimental-features = [ "nix-command" "flakes" ]; +} diff --git a/root/base/security/default.nix b/root/base/security/default.nix new file mode 100644 index 0000000..feb13e1 --- /dev/null +++ b/root/base/security/default.nix @@ -0,0 +1,5 @@ +# For now only enable rtkit. +{ ... }: +{ + security.rtkit.enable = true; +} diff --git a/root/base/shell/default.nix b/root/base/shell/default.nix new file mode 100644 index 0000000..a1461f2 --- /dev/null +++ b/root/base/shell/default.nix @@ -0,0 +1,12 @@ +# ZSH global settings. No HM needed. +{ pkgs, ... }: +{ + programs.zsh.enable = true; + programs.zsh.enableCompletion = true; + programs.zsh.syntaxHighlighting.enable = true; + programs.zsh.autosuggestions.enable = true; + programs.zsh.autosuggestions.async = true; + programs.zsh.ohMyZsh.enable = true; + programs.zsh.ohMyZsh.theme = "agnoster"; + users.defaultUserShell = pkgs.zsh; +} diff --git a/root/base/ssh/default.nix b/root/base/ssh/default.nix new file mode 100644 index 0000000..f199701 --- /dev/null +++ b/root/base/ssh/default.nix @@ -0,0 +1,12 @@ +# SSH settings. Defined authorized internal key and enables key authentication. +{ user, ... }: +{ + services.openssh = { + enable = true; + settings.PasswordAuthentication = false; + settings.KbdInteractiveAuthentication = false; + }; + users.users.${user}.openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAxNhl9lAA7SGpFv0/YhIrL+C1nrODGsvpXlevjpOP9d Interne Infrastruktur" + ]; +} diff --git a/root/base/systemversion/default.nix b/root/base/systemversion/default.nix new file mode 100644 index 0000000..549b337 --- /dev/null +++ b/root/base/systemversion/default.nix @@ -0,0 +1,5 @@ +# NixOS state version. +{ ... }: +{ + system.stateVersion = "25.05"; +} diff --git a/root/base/upgrades/default.nix b/root/base/upgrades/default.nix new file mode 100644 index 0000000..9f7a52e --- /dev/null +++ b/root/base/upgrades/default.nix @@ -0,0 +1,15 @@ +# Autoupdate settings. Maybe make it weekly. +{ hostName, ... }: +{ + # nix.optimise.automatic = true; + # nix.optimise.dates = [ "03:45" ]; + # system.autoUpgrade = { + # enable = true; + # dates = "04:00"; + # persistent = true; + # flake = "git+ssh://git@github.com/Moe1369/nixos-config.git?ref=main#${hostName}"; + # flags = [ + # ]; + # allowReboot = false; + # }; +} diff --git a/root/base/users/default.nix b/root/base/users/default.nix new file mode 100644 index 0000000..4d69ac3 --- /dev/null +++ b/root/base/users/default.nix @@ -0,0 +1,10 @@ +# Define users. Hashed Password reused across devices. +{ user, ... }: +{ + users.users.${user} = { + hashedPassword = "$y$j9T$qziHkyBuG215vEKwqmoFl1$Pd1zqAsFlx1.kENKSn7BCWA1vHTLF2wlq7BQjFxgTu8"; + description = "Mohamed Chrayed"; + isNormalUser = true; + extraGroups = [ "wheel" "networkmanager" ]; + }; +} diff --git a/root/desktop/apps-misc/default.nix b/root/desktop/apps-misc/default.nix new file mode 100644 index 0000000..fa10832 --- /dev/null +++ b/root/desktop/apps-misc/default.nix @@ -0,0 +1,14 @@ +# Normal desktop programs for both gnome and plasma. +{ pkgs, ... }: +{ + environment.systemPackages = + (with pkgs; [ + ibm-plex + adwaita-fonts + pciutils + aha + vesktop + obs-studio + teams-for-linux + ]); +} diff --git a/root/desktop/bluetooth/default.nix b/root/desktop/bluetooth/default.nix new file mode 100644 index 0000000..1ceccce --- /dev/null +++ b/root/desktop/bluetooth/default.nix @@ -0,0 +1,6 @@ +# Enable bluetooth on boot. +{ ... }: +{ + hardware.bluetooth.enable = true; + hardware.bluetooth.powerOnBoot = true; +} diff --git a/root/desktop/browser/default.nix b/root/desktop/browser/default.nix new file mode 100644 index 0000000..a8fc87d --- /dev/null +++ b/root/desktop/browser/default.nix @@ -0,0 +1,8 @@ +# Only install Chrome. Declaritive options not needed. +{ pkgs, ... }: +{ + environment.systemPackages = + (with pkgs; [ + google-chrome + ]); +} diff --git a/root/desktop/controller/default.nix b/root/desktop/controller/default.nix new file mode 100644 index 0000000..f48dff1 --- /dev/null +++ b/root/desktop/controller/default.nix @@ -0,0 +1,7 @@ +{ ... }: +{ + # Ignore Dualsense touchpad in desktop mode. + services.udev.extraRules ='' + ACTION=="add|change", KERNEL=="event[0-9]*", ATTRS{name}=="*Wireless Controller Touchpad", ENV{LIBINPUT_IGNORE_DEVICE}="1" + ''; +} diff --git a/root/desktop/graphics/default.nix b/root/desktop/graphics/default.nix new file mode 100644 index 0000000..8342a62 --- /dev/null +++ b/root/desktop/graphics/default.nix @@ -0,0 +1,15 @@ +# Install GPU drivers and vulkan hdr layer +{ pkgs, ... }: + { + hardware.amdgpu.initrd.enable = true; + boot.initrd.kernelModules = [ "amdgpu" ]; + boot.kernelModules = [ "amdgpu" ]; + environment.systemPackages = with pkgs;[ + vulkan-tools + vulkan-hdr-layer-kwin6 + ]; + hardware.graphics = { + enable = true; + enable32Bit = true; + }; +} diff --git a/root/desktop/input/default.nix b/root/desktop/input/default.nix new file mode 100644 index 0000000..ab4df49 --- /dev/null +++ b/root/desktop/input/default.nix @@ -0,0 +1,5 @@ +# Enable libinput. +{ ... }: +{ + services.libinput.enable = true; +} diff --git a/root/desktop/printing/default.nix b/root/desktop/printing/default.nix new file mode 100644 index 0000000..86b6f08 --- /dev/null +++ b/root/desktop/printing/default.nix @@ -0,0 +1,5 @@ +# Enable CUPS for printing. +{ ... }: +{ + services.printing.enable = true; +} diff --git a/root/desktop/sound/default.nix b/root/desktop/sound/default.nix new file mode 100644 index 0000000..2bab13e --- /dev/null +++ b/root/desktop/sound/default.nix @@ -0,0 +1,11 @@ +# Use pipewire and alsa instead of pulseaudio. +{ ... }: +{ + #hardware.pulseaudio.enable = false; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; +} diff --git a/root/filesystem/client/default.nix b/root/filesystem/client/default.nix new file mode 100644 index 0000000..0c1ab84 --- /dev/null +++ b/root/filesystem/client/default.nix @@ -0,0 +1,19 @@ +# Filesystem for clients. Use partlabel as device to make it reusable. Singledisk setup. +{ ... }: +{ + fileSystems."/" = + { device = "/dev/disk/by-label/root"; + fsType = "xfs"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-label/BOOT"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = [ { + device = "/var/lib/swapfile"; + size = 16*1024; + }]; +} diff --git a/root/filesystem/server/default.nix b/root/filesystem/server/default.nix new file mode 100644 index 0000000..bbbec43 --- /dev/null +++ b/root/filesystem/server/default.nix @@ -0,0 +1,30 @@ +# Filesystem settings for homeserver. Singledisk root with ext4 and external disks. External disks with ZFS. +{ ... }: +{ + # ZFS NEEDS hostID + networking.hostId = "efc6dacc"; + boot.zfs.devNodes = "/dev/disk/by-id"; + boot.zfs.extraPools = [ "ssd" "hdd" ]; + + fileSystems."/" = + { device = "/dev/disk/by-partlabel/root"; + fsType = "ext4"; + }; + + fileSystems."/var/lib/docker" = + { device = "ssd/docker"; + fsType = "zfs"; + options = [ "zfsutil" ]; + }; + + fileSystems."/data" = + { device = "hdd/data"; + fsType = "zfs"; + options = [ "zfsutil" ]; + }; + + swapDevices = [ { + device = "/var/lib/swapfile"; + size = 16*1024; + }]; +} diff --git a/root/gaming/console/jovian/default.nix b/root/gaming/console/jovian/default.nix new file mode 100644 index 0000000..ae83d92 --- /dev/null +++ b/root/gaming/console/jovian/default.nix @@ -0,0 +1,7 @@ +{ user, ... }: +{ + jovian.steam.enable = true; + jovian.steam.autoStart = true; + jovian.steam.user = user; + jovian.steam.desktopSession = "plasma"; +} diff --git a/root/gaming/desktop/lact/default.nix b/root/gaming/desktop/lact/default.nix new file mode 100644 index 0000000..4295782 --- /dev/null +++ b/root/gaming/desktop/lact/default.nix @@ -0,0 +1,24 @@ +# Use LACT for GPU overclocking +{ pkgs,... }: +{ + environment.systemPackages = + (with pkgs; [ + lact + ]); + + # Enable Modprobe + boot.extraModprobeConfig = '' + options amdgpu ppfeaturemask=0xFFF7FFFF + ''; + + # Enable Systemd Service + systemd.services.lact = { + enable = true; + description = "AMDGPU Control Daemon"; + after = ["multi-user.target"]; + wantedBy = ["multi-user.target"]; + serviceConfig = { + ExecStart = "${pkgs.lact}/bin/lact daemon"; + }; + }; +} diff --git a/root/gaming/desktop/steam/default.nix b/root/gaming/desktop/steam/default.nix new file mode 100644 index 0000000..8982cec --- /dev/null +++ b/root/gaming/desktop/steam/default.nix @@ -0,0 +1,48 @@ +{ pkgs, ... }: +# Scripts for SteamOS session +let + jupiter-biosupdate = pkgs.writeShellScriptBin "jupiter-biosupdate" '' + exit 0; + ''; + + steamos-update = pkgs.writeShellScriptBin "steamos-update" '' + exit 7; + ''; + + steamos-select-branch = pkgs.writeShellScriptBin "steamos-select-branch" '' + echo "Not applicable for this OS" + ''; + + steamos-session-select = pkgs.writeShellScriptBin "steamos-session-select" '' + steam -shutdown + ''; +in +{ + environment.systemPackages = [ + jupiter-biosupdate + steamos-update + steamos-select-branch + steamos-session-select + ]; + hardware.steam-hardware.enable = true; + programs.steam = { + enable = true; + extest.enable = true; + gamescopeSession.enable = true; + gamescopeSession.args = [ + "--mangoapp" + ]; + gamescopeSession.steamArgs = [ + "-steamdeck" + "-steamos3" + ]; + extraCompatPackages = with pkgs; [ + proton-ge-bin + ]; + extraPackages = with pkgs; [ + gamescope + mangohud + vulkan-hdr-layer-kwin6 + ]; + }; +} diff --git a/root/gnome/applications/default.nix b/root/gnome/applications/default.nix new file mode 100644 index 0000000..9d05a41 --- /dev/null +++ b/root/gnome/applications/default.nix @@ -0,0 +1,52 @@ +{ pkgs, ...}:{ + # Install applications. + programs.file-roller.enable = true; + services.gnome.tinysparql.enable = true; + environment.systemPackages = with pkgs; [ + gnome-text-editor + dconf-editor + mission-center + amberol + clapper + speedtest + pdfarranger + video-trimmer + commit + cartridges + gnome-obfuscate + parabolic + gnome-tweaks + adw-gtk3 + adwsteamgtk + gdm-settings + tsukimi + gnomeExtensions.appindicator + gnomeExtensions.rounded-window-corners-reborn + gnomeExtensions.clipboard-indicator + gnomeExtensions.middle-click-to-close-in-overview + gnomeExtensions.wallpaper-slideshow + gnomeExtensions.alphabetical-app-grid + gnomeExtensions.night-theme-switcher + ]; + # Don't install unneeded applications. + environment.gnome.excludePackages = (with pkgs; [ + xterm + gnome-software + gnome-connections + gnome-maps + gnome-weather + gnome-photos + gnome-tour + gedit + gnome-music + gnome-terminal + epiphany + geary + gnome-characters + totem + tali + iagno + hitori + atomix + ]); +} diff --git a/root/gnome/desktop-environment/default.nix b/root/gnome/desktop-environment/default.nix new file mode 100644 index 0000000..9b2c629 --- /dev/null +++ b/root/gnome/desktop-environment/default.nix @@ -0,0 +1,6 @@ +{ ... }: +{ + # Install Gnome. + services.xserver.enable = true; + services.xserver.desktopManager.gnome.enable = true; +} diff --git a/root/gnome/display-manager/default.nix b/root/gnome/display-manager/default.nix new file mode 100644 index 0000000..79a8377 --- /dev/null +++ b/root/gnome/display-manager/default.nix @@ -0,0 +1,13 @@ +# Gnome Display Manager. +{ user, lib, config, ... }: +{ +# Enable GDM only on workstation. +services.xserver = lib.mkIf (config.networking.hostName == "Computer-Mo") { + displayManager.gdm.enable = true; +}; +# Autologin only on workstation. Not needed on konsole or steamdeck. Jovian Greeter is being used. +services.displayManager = lib.mkIf (config.networking.hostName == "Computer-Mo") { + autoLogin.enable = true; + autoLogin.user = user; +}; +} diff --git a/root/hyprland/default.nix b/root/hyprland/default.nix new file mode 100644 index 0000000..ae116cb --- /dev/null +++ b/root/hyprland/default.nix @@ -0,0 +1,15 @@ +{pkgs, ...}: +{ + programs.hyprland.enable = true; + programs.waybar.enable = true; + programs.hyprlock.enable = true; + programs.uwsm.enable = true; + programs.hyprland.withUWSM = true; + environment.systemPackages = [ + pkgs.kitty + pkgs.wofi + pkgs.anyrun + pkgs.ptyxis + pkgs.hyprpolkitagent + ]; +} diff --git a/root/plasma/applications/default.nix b/root/plasma/applications/default.nix new file mode 100644 index 0000000..700049d --- /dev/null +++ b/root/plasma/applications/default.nix @@ -0,0 +1,27 @@ +{ pkgs, ...}: { +environment.systemPackages = + (with pkgs; [ + nur.repos.shadowrz.klassy-qt6 + kdePackages.kate + kdePackages.isoimagewriter + kdePackages.gwenview + kdePackages.okular + kdePackages.kdenlive + kdePackages.elisa + kdePackages.wallpaper-engine-plugin + kdePackages.qtwebengine + haruna + krita + kdePackages.kcolorchooser + kdePackages.kfind + kdePackages.kcalc + kdePackages.filelight + kdePackages.skanlite + kdePackages.ksystemlog + kdePackages.partitionmanager + kdePackages.plasma-browser-integration + kdePackages.koi + python312Packages.kde-material-you-colors + pywal + ]); +} diff --git a/root/plasma/desktop-environment/default.nix b/root/plasma/desktop-environment/default.nix new file mode 100644 index 0000000..af521f8 --- /dev/null +++ b/root/plasma/desktop-environment/default.nix @@ -0,0 +1,6 @@ +{ pkgs, user, ... }: +{ + # Install plasma without xserver. Use wayland. + services.desktopManager.plasma6.enable = true; + services.xserver.enable = false; +} diff --git a/root/plasma/display-manager/default.nix b/root/plasma/display-manager/default.nix new file mode 100644 index 0000000..81d9c28 --- /dev/null +++ b/root/plasma/display-manager/default.nix @@ -0,0 +1,10 @@ +{ user, ... }: +{ + # Only use sddm on Computer-Mo. + services.displayManager = { + sddm.wayland.enable = true; + sddm.enable = true; + autoLogin.enable = true; + autoLogin.user = user; + }; +} diff --git a/root/services/authentik/default.nix b/root/services/authentik/default.nix new file mode 100644 index 0000000..6191779 --- /dev/null +++ b/root/services/authentik/default.nix @@ -0,0 +1,118 @@ +{ ... }: +{ + virtualisation.oci-containers.containers."container-authentik-cache" = { + image = "docker.io/library/redis:alpine"; + networks = [ + "network-internal" + ]; + volumes = [ + "volume-authentik-cache:/data:rw" + ]; + cmd = [ "--save" "60" "1" "--loglevel" "warning" ]; + extraOptions = [ + "--pull=always" + ]; + }; + + virtualisation.oci-containers.containers."container-authentik-db" = { + image = "docker.io/library/postgres:12-alpine"; + environment = { + "POSTGRES_DB" = "authentik"; + "POSTGRES_PASSWORD" = "shmJQWMIWJRI23jn19842!"; + "POSTGRES_USER" = "authentik"; + }; + networks = [ + "network-internal" + ]; + volumes = [ + "volume-authentik-db:/var/lib/postgresql/data:rw" + ]; + extraOptions = [ + "--pull=always" + ]; + }; + virtualisation.oci-containers.containers."container-authentik-ldap" = { + image = "ghcr.io/goauthentik/ldap"; + environment = { + "AUTHENTIK_HOST" = "http://container-authentik-server:9000"; + "AUTHENTIK_INSECURE" = "true"; + "AUTHENTIK_TOKEN" = "yZPlmWkdLsteKXXAJJPFO0Txd7o9zZlIfFdyBlGh0LjPjatYjpcqSYHwzMQ9"; + }; + networks = [ + "network-internal" + ]; + ports = [ + "389:3389" + "636:6636" + ]; + dependsOn = [ + "container-authentik-server" + "container-authentik-worker" + "container-authentik-cache" + "container-authentik-db" + ]; + extraOptions = [ + "--pull=always" + ]; + }; + virtualisation.oci-containers.containers."container-authentik-server" = { + image = "ghcr.io/goauthentik/server"; + environment = { + "AUTHENTIK_SECRET_KEY" = "OS7C4vThZKf5tPGKlOu3QXgZIHWAF7HBfpk/Y6LMVh7QMdyOD6NwojmASlKb3lwtYA5OdZzDLB2GNSQg"; + "AUTHENTIK_POSTGRESQL__HOST" = "container-authentik-db"; + "AUTHENTIK_POSTGRESQL__NAME" = "authentik"; + "AUTHENTIK_POSTGRESQL__PASSWORD" = "shmJQWMIWJRI23jn19842!"; + "AUTHENTIK_POSTGRESQL__USER" = "authentik"; + "AUTHENTIK_REDIS__HOST" = "container-authentik-cache"; + "AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS" = "172.16.0.0/12"; + }; + networks = [ + "network-internal" + ]; + ports = [ + "9000:9000" + "9443:9443" + ]; + volumes = [ + "volume-authentik-media:/media:rw" + "volume-authentik-templates:/templates:rw" + ]; + cmd = [ "server" ]; + dependsOn = [ + "container-authentik-cache" + "container-authentik-db" + ]; + extraOptions = [ + "--pull=always" + ]; + }; + virtualisation.oci-containers.containers."container-authentik-worker" = { + image = "ghcr.io/goauthentik/server"; + environment = { + "AUTHENTIK_SECRET_KEY" = "OS7C4vThZKf5tPGKlOu3QXgZIHWAF7HBfpk/Y6LMVh7QMdyOD6NwojmASlKb3lwtYA5OdZzDLB2GNSQg"; + "AUTHENTIK_POSTGRESQL__HOST" = "container-authentik-db"; + "AUTHENTIK_POSTGRESQL__NAME" = "authentik"; + "AUTHENTIK_POSTGRESQL__PASSWORD" = "shmJQWMIWJRI23jn19842!"; + "AUTHENTIK_POSTGRESQL__USER" = "authentik"; + "AUTHENTIK_REDIS__HOST" = "container-authentik-cache"; + "AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS" = "172.16.0.0/12"; + }; + networks = [ + "network-internal" + ]; + volumes = [ + "/run/docker.sock:/var/run/docker.sock:rw" + "volume-authentik-certs:/certs:rw" + "volume-authentik-media:/media:rw" + "volume-authentik-templates:/templates:rw" + ]; + cmd = [ "worker" ]; + dependsOn = [ + "container-authentik-cache" + "container-authentik-db" + ]; + extraOptions = [ + "--pull=always" + ]; + }; +} diff --git a/root/services/bazarr/default.nix b/root/services/bazarr/default.nix new file mode 100644 index 0000000..ec7f875 --- /dev/null +++ b/root/services/bazarr/default.nix @@ -0,0 +1,23 @@ +{ ... }: +{ + virtualisation.oci-containers.containers."container-bazarr-app" = { + autoStart = true; + image = "lscr.io/linuxserver/bazarr:latest"; + environment = { + "TZ" = "Europe/Berlin"; + "PUID" = "0"; + "PGID" = "0"; + }; + networks = [ + "network-internal" + ]; + volumes = [ + "volume-bazarr-config:/config:rw" + "/data:/data:rw" + ]; + ports = ["6767:6767"]; + extraOptions = [ + "--pull=always" + ]; + }; +} diff --git a/root/services/borg/default.nix b/root/services/borg/default.nix new file mode 100644 index 0000000..aebe752 --- /dev/null +++ b/root/services/borg/default.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: +{ + services.borgbackup.jobs."server" = { + paths = "/var/lib/docker"; + encryption.mode = "repokey-blake2"; + encryption.passCommand = "cat /root/passphrase"; + environment.BORG_RSH = "ssh -i /home/administrator/.ssh/extern"; + repo = "e6cr76lv@e6cr76lv.repo.borgbase.com:repo"; + compression = "auto,zstd"; + startAt = "daily"; + }; +} diff --git a/root/services/docker-network/default.nix b/root/services/docker-network/default.nix new file mode 100644 index 0000000..fec29ce --- /dev/null +++ b/root/services/docker-network/default.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: +{ + system.activationScripts.network-internal = '' + ${pkgs.docker}/bin/docker network create network-internal + ''; +} diff --git a/root/services/docker-runtime/default.nix b/root/services/docker-runtime/default.nix new file mode 100644 index 0000000..b0cbc67 --- /dev/null +++ b/root/services/docker-runtime/default.nix @@ -0,0 +1,8 @@ +{ ... }: +{ + virtualisation.docker = { + enable = true; + autoPrune.enable = false; + }; + virtualisation.oci-containers.backend = "docker"; +} diff --git a/root/services/emby/default.nix b/root/services/emby/default.nix new file mode 100644 index 0000000..95232a3 --- /dev/null +++ b/root/services/emby/default.nix @@ -0,0 +1,37 @@ +{ pkgs, ... }: +{ + hardware.graphics = { + enable = true; + extraPackages = with pkgs; [ + intel-media-driver + intel-compute-runtime + vpl-gpu-rt + vaapiVdpau + libvdpau-va-gl + intel-vaapi-driver + ]; + }; + virtualisation.oci-containers.containers."container-emby-app" = { + autoStart = true; + image = "lscr.io/linuxserver/emby:beta"; + devices = [ + "/dev/dri:/dev/dri" + ]; + environment = { + "TZ" = "Europe/Berlin"; + "PUID" = "0"; + "PGID" = "0"; + }; + networks = [ + "network-internal" + ]; + volumes = [ + "volume-emby-config:/config:rw" + "/data:/data:rw" + ]; + ports = ["8096:8096"]; + extraOptions = [ + "--pull=always" + ]; + }; +} diff --git a/root/services/home-assistant/default.nix b/root/services/home-assistant/default.nix new file mode 100644 index 0000000..81f124b --- /dev/null +++ b/root/services/home-assistant/default.nix @@ -0,0 +1,48 @@ +{ ... }: +{ + virtualisation.oci-containers.containers."container-home-assistant-app" = { + autoStart = true; + image = "ghcr.io/home-assistant/home-assistant:stable"; + devices = [ + "/dev/ttyUSB0:/dev/ttyUSB0" + ]; + environment = { + "TZ" = "Europe/Berlin"; + "PUID" = "0"; + "PGID" = "0"; + }; + networks = [ + "network-internal" + ]; + ports = [ + "8123:8123" + ]; + volumes = [ + "volume-home-assistant-config:/config:rw" + "/var/run/docker.sock:/var/run/docker.sock:ro" + ]; + extraOptions = [ + "--pull=always" + ]; + }; + virtualisation.oci-containers.containers."container-home-assistant-mqtt" = { + autoStart = true; + image = "eclipse-mosquitto:latest"; + environment = { + "TZ" = "Europe/Berlin"; + "PUID" = "0"; + "PGID" = "0"; + }; + networks = [ + "network-internal" + ]; + ports = [ + "1883:1883" + "9001:9001" + ]; + volumes = [ + "volume-home-assistant-mqtt:/etc/mosquitto:rw" + "volume-home-assistant-mqtt-config:/mosquitto/config:rw" + ]; + }; +} diff --git a/root/services/jellyseerr/default.nix b/root/services/jellyseerr/default.nix new file mode 100644 index 0000000..899dcc4 --- /dev/null +++ b/root/services/jellyseerr/default.nix @@ -0,0 +1,21 @@ +{ ... }: +{ + virtualisation.oci-containers.containers."container-jellyseerr-app" = { + autoStart = true; + image = "fallenbagel/jellyseerr"; + environment = { + "TZ" = "Europe/Berlin"; + "JELLYFIN_TYPE" = "emby"; + }; + networks = [ + "network-internal" + ]; + volumes = [ + "volume-jellyseerr-config:/app/config:rw" + ]; + ports = ["5055:5055"]; + extraOptions = [ + "--pull=always" + ]; + }; +} diff --git a/root/services/radarr/default.nix b/root/services/radarr/default.nix new file mode 100644 index 0000000..3493aa7 --- /dev/null +++ b/root/services/radarr/default.nix @@ -0,0 +1,24 @@ +{ ... }: +{ + virtualisation.oci-containers.containers."container-radarr-app" = { + autoStart = true; + image = "lscr.io/linuxserver/radarr:latest"; + environment = { + "TZ" = "Europe/Berlin"; + "PUID" = "0"; + "PGID" = "0"; + }; + networks = [ + "network-internal" + "network-external" + ]; + volumes = [ + "volume-radarr-config:/config:rw" + "/data:/data:rw" + ]; + ports = ["7878:7878"]; + extraOptions = [ + "--pull=always" + ]; + }; +} diff --git a/root/services/recyclarr/default.nix b/root/services/recyclarr/default.nix new file mode 100644 index 0000000..bb4cf45 --- /dev/null +++ b/root/services/recyclarr/default.nix @@ -0,0 +1,21 @@ +{ ... }: +{ + virtualisation.oci-containers.containers."container-recyclarr-app" = { + autoStart = true; + image = "ghcr.io/recyclarr/recyclarr:latest"; + environment = { + "TZ" = "Europe/Berlin"; + "PUID" = "0"; + "PGID" = "0"; + }; + networks = [ + "network-internal" + ]; + volumes = [ + "volume-recyclarr-config:/config:rw" + ]; + extraOptions = [ + "--pull=always" + ]; + }; +} diff --git a/root/services/recyclarr/dotfiles/recyclarr.yml b/root/services/recyclarr/dotfiles/recyclarr.yml new file mode 100644 index 0000000..0ebb86a --- /dev/null +++ b/root/services/recyclarr/dotfiles/recyclarr.yml @@ -0,0 +1,108 @@ +sonarr: + series: + media_naming: + series: emby + season: default + episodes: + rename: true + standard: default + daily: default + anime: default + base_url: 'http://container-sonarr-app:8989' + api_key: 21811d916522404eae24cb2e1c32a655 + include: + - template: sonarr-v4-quality-profile-web-2160p + - template: sonarr-v4-custom-formats-web-2160p + quality_profiles: + - name: WEB-2160p + reset_unmatched_scores: + enabled: true + min_format_score: -10000 + upgrade: + allowed: true + until_quality: Bluray-2160p + score_set: default + quality_sort: top + qualities: + - name: Bluray-2160p + - name: Bluray-2160p Remux + - name: 2160p MQ + - WEBDL-2160p + - WEBRip-2160p + - name: Bluray-1080p Remux + - name: Bluray-1080p + - name: 1080p MQ + qualities: + - WEBDL-1080p + - WEBRip-1080p + - name: LQ + qualities: + - HDTV-2160p + - HDTV-1080p + - name: Trash + qualities: + - Bluray-720p + - WEBDL-720p + - WEBRip-720p + - HDTV-720p + - Bluray-576p + - Bluray-480p + - WEBDL-480p + - WEBRip-480p + - DVD + - SDTV +radarr: + movies: + media_naming: + folder: emby + movie: + rename: true + standard: emby + base_url: 'http://container-radarr-app:7878' + api_key: 81dc7e319c2745138bf86f19a0e4cf2d + include: + - template: radarr-quality-profile-sqp-1-2160p-default + - template: radarr-custom-formats-sqp-1-2160p + custom_formats: + - trash_ids: + - b17886cb4158d9fea189859409975758 + - 55a5b50cb416dea5a50c4955896217ab + quality_profiles: + - name: SQP-1 (2160p) + reset_unmatched_scores: + enabled: true + min_format_score: -10000 + upgrade: + allowed: true + until_quality: Bluray-2160p + score_set: SQP-1 + quality_sort: top + qualities: + - name: Bluray-2160p + - name: Remux-2160p + - name: 2160-MQ + qualities: + - WEBDL-2160p + - WEBRip-2160p + - name: Remux-1080p + - name: Bluray-1080p + - name: 1080p + qualities: + - WEBDL-1080p + - WEBRip-1080p + - name: LQ + qualities: + - HDTV-2160p + - HDTV-1080p + - name: Trash + qualities: + - Bluray-720p + - WEBDL-720p + - WEBRip-720p + - HDTV-720p + - Bluray-576p + - WEBRip-480p + - WEBDL-480p + - Bluray-480p + - DVD + - SDTV diff --git a/root/services/sabnzbd/default.nix b/root/services/sabnzbd/default.nix new file mode 100644 index 0000000..b326523 --- /dev/null +++ b/root/services/sabnzbd/default.nix @@ -0,0 +1,23 @@ +{ ... }: +{ + virtualisation.oci-containers.containers."container-sabnzbd-app" = { + autoStart = true; + image = "lscr.io/linuxserver/sabnzbd:latest"; + environment = { + "TZ" = "Europe/Berlin"; + "PUID" = "0"; + "PGID" = "0"; + }; + networks = [ + "network-internal" + ]; + volumes = [ + "volume-sabnzbd-config:/config:rw" + "/data:/data:rw" + ]; + ports = ["8080:8080"]; + extraOptions = [ + "--pull=always" + ]; + }; +} diff --git a/root/services/sonarr/default.nix b/root/services/sonarr/default.nix new file mode 100644 index 0000000..6bd19b0 --- /dev/null +++ b/root/services/sonarr/default.nix @@ -0,0 +1,23 @@ +{ ... }: +{ + virtualisation.oci-containers.containers."container-sonarr-app" = { + autoStart = true; + image = "lscr.io/linuxserver/sonarr:latest"; + environment = { + "TZ" = "Europe/Berlin"; + "PUID" = "0"; + "PGID" = "0"; + }; + networks = [ + "network-internal" + ]; + volumes = [ + "volume-sonarr-config:/config:rw" + "/data:/data:rw" + ]; + ports = ["8989:8989"]; + extraOptions = [ + "--pull=always" + ]; + }; +}