diff options
133 files changed, 0 insertions, 6814 deletions
diff --git a/README.md b/README.md deleted file mode 100644 index dc50321..0000000 --- a/README.md +++ /dev/null @@ -1,269 +0,0 @@ -# NixOS Configuration - -A modular NixOS flake configuration for managing multiple machines (kronos, herra, mystra) with a layered architecture and swappable desktop rices. - -## Quick Start - -```bash -# Apply configuration -sudo nixos-rebuild switch - -# Build for specific host -sudo nixos-rebuild switch --flake .#kronos -sudo nixos-rebuild switch --flake .#herra -sudo nixos-rebuild switch --flake .#mystra - -# Test without applying -sudo nixos-rebuild test - -# Validate syntax -nix flake check - -# Preview changes -sudo nixos-rebuild dry-run - -# Update flake inputs -nix flake update -``` - -## Architecture - -``` -flake.nix # Entry point - assigns rices to hosts - ↓ -hosts/{kronos,herra,mystra}/ # Per-machine configs - ├─ configuration.nix # Machine identity + overrides - └─ hardware-configuration.nix # Hardware (autogenerated) - -system/ # System-wide base config - └─ default.nix # Orchestrator (base modules only) - ├─ boot.nix, audio.nix, bluetooth.nix - ├─ networking.nix, graphics.nix - ├─ packages.nix, programs.nix, services.nix - └─ users.nix, nix.nix - -home/rices/{rice}/ # Rice configs (self-contained) - ├─ default.nix # Exports {system, home} - ├─ system.nix # NixOS: Desktop + Stylix - └─ home.nix # HM: imports program configs - -home/mun/ # User "mun" config - └─ default.nix # User orchestrator - └─ programs/ # git, ssh, zsh - -home/rices/ # Desktop rices - ├─ nord-blue/ # Complete rice (i3wm) - ├─ original/ # Complete rice (i3wm) - ├─ schrottkatze/ # Complete rice I borrowed from Schrottkatze's config (niri) - └─ cinnamon/ # Complete rice (Cinnamon) -``` - -## Directory Structure - -``` -. -├── flake.nix # Flake inputs/outputs -├── flake.lock # Reproducibility lock -│ -├── hosts/ -│ ├── kronos/ # Machine 1 -│ │ ├── configuration.nix -│ │ └── hardware-configuration.nix -│ ├── herra/ # Machine 2 (desktop, dual-boot, Zen kernel) -│ │ ├── configuration.nix -│ │ ├── hardware-configuration.nix -│ │ ├── packages.nix -│ │ ├── audio.nix -│ │ └── drivers.nix -│ └── mystra/ # Machine 3 -│ ├── configuration.nix -│ └── hardware-configuration.nix -│ -├── system/ # System-wide base modules -│ ├── default.nix # Imports all base system modules -│ ├── nix.nix # Nix settings, flakes -│ ├── boot.nix # Bootloader, kernel -│ ├── audio.nix # Pipewire -│ ├── bluetooth.nix # Bluetooth -│ ├── networking.nix # NetworkManager -│ ├── graphics.nix # GPU drivers -│ ├── packages.nix # System packages -│ ├── programs.nix # System programs -│ ├── services.nix # System services -│ └── users.nix # User accounts -│ -└── home/ - ├── mun/ # User "mun" - │ ├── default.nix # User orchestrator - │ └── programs/ - │ ├── git.nix - │ ├── ssh.nix - │ └── zsh.nix - │ - └── rices/ # Desktop themes - ├── nord-blue/ # Complete rice (i3wm) - │ ├── default.nix # Exports {system, home} - │ ├── system.nix # NixOS: Desktop + stylix - │ ├── home.nix # HM: imports all configs - │ ├── i3.nix - │ ├── alacritty.nix - │ ├── nvim.nix - │ ├── helix.nix - │ ├── picom.nix - │ └── fastfetch.nix - │ - ├── original/ # Complete rice (i3wm) - │ ├── default.nix # Exports {system, home} - │ ├── system.nix # NixOS: Desktop + stylix - │ ├── home.nix # HM: imports all configs - │ ├── variables.nix # Color definitions - │ ├── i3.nix - │ ├── kitty.nix - │ ├── polybar.nix - │ ├── rofi.nix - │ ├── dunst.nix - │ ├── neovim.nix - │ ├── nnn.nix - │ ├── picom.nix - │ ├── scripts.nix - │ └── xdg.nix - │ - └── plasma6/ # Complete rice (KDE Plasma) - ├── default.nix # Exports {system, home} - ├── system.nix # NixOS: Plasma + stylix - ├── home.nix # HM: Plasma configs - └── variables.nix # Wallpaper path -``` - -## Configuration Layers - -### 1. System Layer (`system/`) -Base system config applied to all machines: boot, networking, audio, graphics, packages, services, users. Does NOT include desktop or stylix (moved to rice layer). - -### 2. Machine Layer (`hosts/`) -Per-machine identity (hostname), hardware configuration, and optional machine-specific overrides (e.g., herra uses Zen kernel). - -### 3. Rice Layer (`home/rices/*/`) -Self-contained desktop environment configs. Each rice exports `{system, home}`: -- **system.nix**: NixOS-level (desktop environment, system packages, stylix theming) -- **home.nix**: Home-manager level (imports program configs like i3, terminal, editor) -- **default.nix**: Exports both modules for flake consumption - -### 4. User Layer (`home/mun/`) -User-specific shared programs: git, ssh, zsh config. Only contains configs shared across all rices. - -## Adding Configurations - -**New system package:** -```nix -# system/packages.nix -environment.systemPackages = with pkgs; [ - # add here -]; -``` - -**New system module:** -1. Create `system/mymodule.nix` -2. Add to `system/default.nix` imports - -**New user program:** -1. Create `home/mun/programs/myprogram.nix` -2. Add to `home/mun/default.nix` imports - -**New rice module:** -1. Create file in target rice directory (e.g., `home/rices/nord-blue/mymodule.nix`) -2. Add to that rice's `home.nix` imports - -## Switching Rices - -Rices are assigned per-host in `flake.nix`. Edit the `nixosConfigurations` section: - -```nix -nixosConfigurations = { - kronos = mkSystem "kronos" "nord-blue"; # Laptop uses nord-blue - herra = mkSystem "herra" "plasma6"; # Desktop uses plasma6 - mystra = mkSystem "mystra" "nord-blue"; # Another machine uses nord-blue -}; -``` - -Then rebuild: `sudo nixos-rebuild switch` - -Each rice exports `{system, home}` from its `default.nix`: -1. **system**: Imported by `mkSystem` (NixOS modules - desktop, stylix) -2. **home**: Imported by `mkHomeManagerModule` (HM modules - program configs) - -## Creating a New Rice - -1. Create directory: `home/rices/my-rice/` -2. Create `system.nix` with NixOS-level configs: - ```nix - {pkgs, ...}: { - services.xserver = { - enable = true; - windowManager.i3.enable = true; - # ... desktop environment config - }; - - stylix = { - enable = true; - # ... theming config - }; - } - ``` -3. Create `home.nix` with home-manager imports: - ```nix - {...}: { - imports = [ - ./i3.nix - ./terminal.nix - ./editor.nix - # ... program configs - ]; - } - ``` -4. Create `default.nix` to export both modules: - ```nix - { - system = import ./system.nix; - home = import ./home.nix; - } - ``` -5. Add application configs (i3.nix, terminal, editor, etc.) -6. Optional: Create `variables.nix` for shared variables -7. Assign to host in `flake.nix`: `myhost = mkSystem "myhost" "my-rice";` - -## Machine-Specific Config - -Each host has minimal configuration - hostname, hardware, and optional overrides: - -```nix -# hosts/kronos/configuration.nix (minimal) -{ - imports = [ ./hardware-configuration.nix ]; - networking.hostName = "kronos"; -} - -# hosts/herra/configuration.nix (with overrides) -{ - imports = [ - ./hardware-configuration.nix - ./packages.nix - ./audio.nix - ./drivers.nix - ]; - networking.hostName = "herra"; - boot.loader.grub.useOSProber = true; # Dual-boot with Windows - boot.kernelPackages = lib.mkForce pkgs.linuxPackages_zen; # Gaming kernel -} -``` - -All shared config lives in `system/` and `home/`. - -## Flake Inputs - -- `nixpkgs` - NixOS 25.11 (stable) -- `nixpkgs-unstable` - Rolling release, accessible via `pkgs.unstable.*` -- `home-manager` - 25.11 (user environment manager) -- `stylix` - System-wide theming framework (base16 colors, fonts, cursor) -- `fenix` - Rust toolchain manager (provides latest stable/nightly Rust) -- `crane` - Nix build system for Rust projects diff --git a/assets/texmf/tex/latex/scpzine/scpzine.sty b/assets/texmf/tex/latex/scpzine/scpzine.sty deleted file mode 100644 index a46f0e0..0000000 --- a/assets/texmf/tex/latex/scpzine/scpzine.sty +++ /dev/null @@ -1,467 +0,0 @@ -% ============================================================ -% scpzine.sty — SCP Foundation Zine Package -% Reusable formatting for SCP personnel briefing zines -% -% Usage: \usepackage[options]{scpzine} -% -% PRINTING: -% Compile TWICE (TikZ needs two passes). -% Print > Booklet > A3 paper > flip on long edge. -% ============================================================ -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{scpzine}[2026/04/23 SCP Foundation Zine Package] - -% ── Package options ───────────────────────────────────────── -\newif\ifscpzine@impose\scpzine@imposefalse -\DeclareOption{impose}{\scpzine@imposetrue} -\ProcessOptions\relax - -% ── Required packages ────────────────────────────────────── -\RequirePackage[a5paper, - top=9mm, bottom=9mm, - left=9mm, right=9mm]{geometry} -\RequirePackage[T1]{fontenc} -\RequirePackage[utf8]{inputenc} -\RequirePackage{lmodern} -\RequirePackage{courier} -\renewcommand{\familydefault}{\ttdefault} -\RequirePackage{microtype} -\RequirePackage{parskip} -\setlength{\parskip}{2pt plus 1pt minus 1pt} -\setlength{\parindent}{0pt} -\RequirePackage{setspace} -\RequirePackage{ragged2e} -\sloppy -\setlength{\emergencystretch}{3em} -\RequirePackage{graphicx} -\RequirePackage{wrapfig} -\RequirePackage[dvipsnames]{xcolor} -\RequirePackage{tikz} -\usetikzlibrary{calc} -\RequirePackage{booktabs} -\RequirePackage{tabularx} -\RequirePackage{array} -\RequirePackage{soul} -\RequirePackage{textcase} -\RequirePackage{eso-pic} -\RequirePackage[hidelinks]{hyperref} -\RequirePackage{fancyhdr} -\RequirePackage{environ} - -% ── Imposition (optional) ────────────────────────────────── -\ifscpzine@impose - \RequirePackage{pgfpages} - \pgfpagesuselayout{2 on 1}[a3paper,landscape,border shrink=3mm] -\fi - -% ============================================================ -% COLOUR PALETTE -% ============================================================ -\definecolor{paperbg}{RGB}{240, 232, 208} -\definecolor{fadedink}{RGB}{48, 44, 36} -\definecolor{stampred}{RGB}{158, 26, 26} -\definecolor{rulercolor}{RGB}{100, 88, 68} -\definecolor{redactbg}{RGB}{10, 10, 10} - -% ============================================================ -% PAGE BACKGROUND — aged paper on every page -% ============================================================ -\AddToShipoutPictureBG{% - \AtPageLowerLeft{% - \textcolor{paperbg}{\rule{\paperwidth}{\paperheight}}% - }% -} - -% ============================================================ -% DOCUMENT METADATA — set these in your document preamble -% ============================================================ -\newcommand{\scpnumber}[1]{\def\scp@number{#1}} -\newcommand{\scpclass}[1]{\def\scp@class{#1}} -\newcommand{\scpsite}[1]{\def\scp@site{#1}} -\newcommand{\scpsector}[1]{\def\scp@sector{#1}} -\newcommand{\scpdocid}[1]{\def\scp@docid{#1}} -\newcommand{\scpissue}[1]{\def\scp@issue{#1}} -\newcommand{\scpclearance}[1]{\def\scp@clearance{#1}} -\newcommand{\scptype}[1]{\def\scp@type{#1}} -\newcommand{\scpseries}[1]{\def\scp@series{#1}} - -% Defaults -\def\scp@number{SCP-XXX} -\def\scp@class{Euclid} -\def\scp@site{Site-19} -\def\scp@sector{Sector C} -\def\scp@docid{PB-XXX-X} -\def\scp@issue{1} -\def\scp@clearance{LEVEL 2} -\def\scp@type{HUMANOID} -\def\scp@series{SECTOR ORIENTATION SERIES} - -% ============================================================ -% HEADERS / FOOTERS -% ============================================================ -\pagestyle{fancy} -\fancyhf{} -\renewcommand{\headrulewidth}{0pt} -\renewcommand{\footrulewidth}{0pt} - -\fancyhead[L]{% - \scriptsize\underline{\texttt{RESTRICTED --- \scp@clearance\ PERSONNEL ONLY}}% -} -\fancyhead[R]{% - \scriptsize\underline{\texttt{\today}}% -} -\fancyfoot[R]{% - \scriptsize\textit{\texttt{continue to next page}}% -} -\fancyfoot[L]{% - \scriptsize\texttt{\scp@docid\ / ISSUE \scp@issue}% -} - -% Last page — no "continue" -\fancypagestyle{lastpage}{% - \fancyfoot[R]{}% - \fancyfoot[L]{\scriptsize\texttt{\scp@docid\ / ISSUE \scp@issue}}% -} - -% Cover pages — no header/footer -\fancypagestyle{coverpage}{% - \fancyhf{}% - \renewcommand{\headrulewidth}{0pt}% -} - -% Blank pages -\fancypagestyle{blankpage}{% - \fancyhf{}% - \renewcommand{\headrulewidth}{0pt}% -} - -% ============================================================ -% BASIC COMMANDS -% ============================================================ - -% Redaction — black box hiding text -\newcommand{\redact}[1]{% - \NoCaseChange{% - \mbox{\colorbox{redactbg}{\textcolor{redactbg}{\texttt{#1}}}}% - }% -} - -% [DATA EXPUNGED] -\newcommand{\expunged}{% - \NoCaseChange{% - \mbox{\colorbox{redactbg}{\textcolor{white}{\texttt{[DATA EXPUNGED]}}}}% - }% -} - -% [SEE LEVEL N FILE] — optional argument for clearance level -\newcommand{\seelevel}[1][3]{% - \NoCaseChange{% - \mbox{\colorbox{redactbg}% - {\textcolor{white}{\texttt{[SEE LEVEL #1 FILE]}}}}% - }% -} - -% Field label — bold inline label -\newcommand{\field}[1]{\textbf{#1}} - -% Horizontal rule -\newcommand{\ruleline}{% - \vspace{2pt}% - {\color{rulercolor}\hrule height 0.4pt}% - \vspace{2pt}% -} - -% Stamp overlay — \stampat[color]{rotation}{x}{y}{text} -\newcommand{\stampat}[5][stampred]{% - \begin{tikzpicture}[overlay, remember picture] - \node[ - rotate=#2, - text=#1, - font=\fontsize{13}{13}\selectfont\bfseries\ttfamily, - draw=#1, line width=1.6pt, - inner xsep=5pt, inner ysep=3pt, - opacity=0.55, anchor=center - ] at ($(current page.center)+(#3,#4)$) {#5}; - \end{tikzpicture}% -} - -% Photo with fallback placeholder -% Usage: \photoblock{filename}{caption} -\newcommand{\photoblock}[2]{% - \IfFileExists{#1}{% - \includegraphics[width=\linewidth, keepaspectratio]{#1}% - }{% - \begin{tikzpicture} - \draw[fill=black!5, draw=black!25, line width=0.5pt] - (0,0) rectangle (3.8cm, 3.2cm); - \draw[black!15, line width=0.4pt] - (0,0)--(3.8cm,3.2cm); - \draw[black!15, line width=0.4pt] - (3.8cm,0)--(0,3.2cm); - \node[font=\tiny\ttfamily, text=black!35] - at (1.9cm,1.7cm) {[PHOTO]}; - \node[font=\tiny\ttfamily, text=black!25] - at (1.9cm,1.3cm) {\texttt{#1}}; - \end{tikzpicture}% - }% - \par - \vspace{2pt} - {\tiny\texttt{#2}}% -} - -% Corner marks (used on covers) -\newcommand{\cornermarks}{% - \begin{tikzpicture}[overlay, remember picture] - \foreach \corner/\xd/\yd in { - north west/1/-1, north east/-1/-1, - south west/1/1, south east/-1/1}{ - \draw[fadedink, line width=1pt] - ($(current page.\corner)+(\xd*0.4cm,\yd*0.4cm)$) -- - ($(current page.\corner)+(\xd*0.9cm,\yd*0.4cm)$); - \draw[fadedink, line width=1pt] - ($(current page.\corner)+(\xd*0.4cm,\yd*0.4cm)$) -- - ($(current page.\corner)+(\xd*0.4cm,\yd*0.9cm)$); - } - \end{tikzpicture}% -} - -% ============================================================ -% ENVIRONMENTS -% ============================================================ - -% ── scpinterview — Interview/Dialog transcript ───────────── -% Usage: -% \begin{scpinterview}{Interview title}{Archive ref and notes} -% \say{Speaker}{Dialog text} -% \say{Speaker}{\textit{(action)} Dialog text} -% \end{scpinterview} -% -\newenvironment{scpinterview}[2]{% - \field{#1}% - \par\vspace{1pt}% - {\scriptsize\textit{#2}}% - \vspace{3pt}% - \ruleline% - \vspace{3pt}% -}{% - \vspace{3pt}% -} -\newcommand{\say}[2]{% - \vspace{2pt}% - \hspace{8pt}\field{#1:} #2% - \par% -} - -% ── scpextract — Interview sub-extract label ─────────────── -% Usage: \scpextract{Extract from Interview 049-INT-B-\redact{XX}:} -\newcommand{\scpextract}[1]{% - \textit{#1}% - \vspace{3pt}% -} - -% ── scptimeline — Incident timeline table ────────────────── -% Usage: -% \begin{scptimeline} -% \event{02:14}{Motion sensor alert.} -% \event{02:19}{Guard fails check-in.} -% \end{scptimeline} -% -\newenvironment{scptimeline}{% - \vspace{2pt}% - {\scriptsize% - \begin{tabular}{@{}p{1.1cm} p{6.1cm}@{}} - \toprule - \field{TIME} & \field{EVENT} \\ - \midrule -}{% - \bottomrule - \end{tabular}}% - \vspace{3pt}% -} -\newcommand{\event}[2]{% - \texttt{#1} & #2 \\[2pt]% -} - -% ── scpreftable — Reference/documentation table ─────────── -% Usage: -% \begin{scpreftable} -% \docref{049-INT-B}{Full interview series. Level 3.} -% \end{scpreftable} -% -\newenvironment{scpreftable}{% - \vspace{3pt}% - {\scriptsize% - \begin{tabular}{@{}p{2.4cm} p{4.8cm}@{}} - \toprule - \field{REFERENCE} & \field{CONTENTS} \\ - \midrule -}{% - \bottomrule - \end{tabular}}% -} -\newcommand{\docref}[2]{% - \texttt{#1} & #2 \\[2pt]% -} - -% ── scpincident — Incident summary header ───────────────── -% Usage: -% \begin{scpincident}{Breach BR-2012-049-\redact{7}} -% {Summarised for Level 2 distribution. Full report Level 3.} -% ... content ... -% \end{scpincident} -% -\newenvironment{scpincident}[2]{% - \field{Incident Summary: #1}% - \par\vspace{1pt}% - {\scriptsize\textit{#2}}% - \ruleline% -}{% -} - -% ── scpfoundnote — Hidden/found note ────────────────────── -% Usage: -% \begin{scpfoundnote}{Discovery context text}{Follow-up text} -% Note body text here... -% \end{scpfoundnote} -% -\NewEnviron{scpfoundnote}[2]{% - \begin{center} - \begin{minipage}{0.82\linewidth} - \setstretch{1.4} - {\scriptsize\textit{#1}}% - \vspace{8pt} - {\color{rulercolor}\hrule height 0.3pt} - \vspace{8pt} - {\small\itshape\BODY}% - \vspace{8pt} - {\color{rulercolor}\hrule height 0.3pt} - \vspace{5pt} - {\scriptsize\texttt{#2}}% - \end{minipage} - \end{center}% -} - -% ── scpaddendum — Classified addendum block ─────────────── -% Usage: -% \begin{scpaddendum}{Filed by \redact{XX}, Senior Researcher} -% \expunged -% {\scriptsize\textit{[Withheld from Level 2. Level 3 required.]}} -% \end{scpaddendum} -% -\newenvironment{scpaddendum}[1]{% - \vspace{3pt}% - \ruleline% - \field{Addendum --- #1:}% - \vspace{2pt}% -}{% -} - -% ── scpguidance — Personnel guidance numbered items ─────── -% Usage: -% \begin{scpguidance}{If SCP-049 Addresses You} -% \guidanceitem{Do not engage.}{Explanation text.} -% \guidanceitem{Do not argue.}{Explanation text.} -% \end{scpguidance} -% -\newenvironment{scpguidance}[1]{% - \field{Personnel Guidance --- #1:}% - \par% -}{% -} -\newcommand{\guidanceitem}[2]{% - \vspace{2pt}% - \field{#1} #2% - \par% -} - -% ── scpsidephoto — Wrapped sidebar photo ────────────────── -% Usage: \scpsidephoto{r}{0.42}{assets/photo.jpg}{Caption text} -\newcommand{\scpsidephoto}[4]{% - \begin{wrapfigure}{#1}{#2\linewidth} - \vspace{-4pt} - \photoblock{#3}{#4} - \vspace{-8pt} - \end{wrapfigure}% -} - -% ============================================================ -% COVER PAGE COMMANDS -% ============================================================ - -% Classification header (multilingual) -\newcommand{\classificationheader}[1]{% - \noindent - \begin{tabular*}{\linewidth}{@{}l@{\extracolsep{\fill}}r@{}} - {\scriptsize\texttt{RESTRICTED --- \scp@clearance\ PERSONNEL ONLY}} & - {\scriptsize\smash{\raisebox{-50pt}{\includegraphics[scale=0.03]{#1}}}} \\ - \end{tabular*}% - {\scriptsize\texttt{RESTREINT --- PERSONNEL DE NIVEAU 2 UNIQUEMENT}}\\ - {\scriptsize\texttt{VERTRAULICH --- NUR FUR PERSONAL DER STUFE 2}}\\ - {\scriptsize\texttt{RESERVADO --- SOLO PERSONAL DE NIVEL 2}}% -} - -% Cover metadata block -\newcommand{\covermetadata}{% - {\scriptsize\texttt{PERSONNEL BRIEFING DOCUMENT}}\\[1pt] - {\scriptsize\texttt{\MakeUppercase{\scp@series}}}\\[3pt] - {\normalsize\bfseries\texttt{\scp@number}}\\[1pt] - {\scriptsize\texttt{\MakeUppercase{\scp@type} / \MakeUppercase{\scp@class} / \MakeUppercase{\scp@sector}}}\\[3pt] - {\scriptsize\texttt{DOCUMENT: \scp@docid\quad ISSUE: \scp@issue}}% -} - -% Signature block -% Usage: \signatureblock{Name or \redact{XX}}{Title}{Location} -\newcommand{\signatureblock}[3]{% - \begin{tabular}{l} - {\scriptsize\texttt{Authorised for distribution by:}} \\[2pt] - \hline \\[-8pt] - {\scriptsize\texttt{#1, #2}} \\ - {\scriptsize\texttt{#3}} \\ - \hline \\[-4pt] - \end{tabular}% -} - -% Cover disclaimer block -\newcommand{\coverdisclaimer}[1]{% - \begin{minipage}{0.9\linewidth} - {\scriptsize\texttt{#1}}% - \end{minipage}% -} - -% Back cover info block -\newcommand{\backcoverbody}{% - {\small\bfseries\texttt{\scp@number}}\\[2pt] - {\scriptsize\texttt{\MakeUppercase{\scp@sector} PERSONNEL BRIEFING}}\\[1pt] - {\scriptsize\texttt{DOCUMENT \scp@docid\ / ISSUE \scp@issue}}\\[1pt] - {\scriptsize\texttt{\MakeUppercase{\scp@site} / CONTAINMENT DIVISION}}% -} - -% ============================================================ -% ITEM HEADER — standard SCP description header -% ============================================================ -% Usage: \scpheader (uses metadata set in preamble) -\newcommand{\scpheader}{% - \field{Item \#:} \scp@number \hfill - \field{Object Class:} \scp@class \hfill - \field{Site:} \scp@site% - \ruleline% -} - -% ============================================================ -% BLANK PAGE with centered message -% ============================================================ -\newcommand{\blankpagemessage}[1]{% - \thispagestyle{blankpage}% - \vspace*{\fill} - \begin{center} - {\small\texttt{#1}}% - \end{center} - \vfill% -} - -% ============================================================ -% SET DEFAULT TEXT COLOR -% ============================================================ -\AtBeginDocument{\color{fadedink}} - -\endinput diff --git a/assets/wallpapers/NGE_CF.jpg b/assets/wallpapers/NGE_CF.jpg Binary files differdeleted file mode 100644 index 39384cb..0000000 --- a/assets/wallpapers/NGE_CF.jpg +++ /dev/null diff --git a/assets/wallpapers/README.md b/assets/wallpapers/README.md deleted file mode 100755 index 43ca7fe..0000000 --- a/assets/wallpapers/README.md +++ /dev/null @@ -1,71 +0,0 @@ -<div align="center"> - -# 【 diinki's wallpapers 】 - -</div> - -<div align="center"> - -<a href="https://discord.gg/gleep"> </a> -<a href="https://ko-fi.com/diinki"> </a> -<a href="https://youtube.com/@diinkikot"> </a> - -These are the wallpapers that I've made & published, in case any of you want to use them! - -The date is by upload and not by date of creation. - -</div> - ---- - -<h3 align="center"> Secret Kitty Club ↓</h3> - -[](may2025/STRAY_KITTY_CLUB-pink.png) - -<details open> -<summary>SECRET KITTY CLUB - ALTERNATE COLORS </summary> -<br> - -[](may2025/STRAY_KITTY_CLUB-teal.png) - -[](may2025/STRAY_KITTY_CLUB-mint.png) - -[](may2025/STRAY_KITTY_CLUB-beige.png) - -</details> - -<h3 align="center"> 2CB ↓</h3> - -[](may2025/2CB.png) - -<h3 align="center"> ALCHEMY ↓</h3> - -[](may2025/ALCHEMY-dark.png) - -<details open> -<summary>ALCHEMY - ALTERNATE COLORS </summary> - -[](may2025/ALCHEMY-pink.png) - -<br> -</details> - -<h3 align="center"> colorshift ↓</h3> - -[](may2025/colorshift.png) - -<h3 align="center"> SYSTEMA ↓</h3> - -[](may2025/SYSTEMA.png) - -<h3 align="center"> AQUARIUM ↓</h3> - -[](may2025/AQUARIUM.png) - -<h3 align="center"> ARCHPOOL ↓</h3> - -[](may2025/ARCHPOOL.png) - -<h3 align="center"> HIRAETH ↓</h3> - -[](may2025/HIRAETH.png) diff --git a/assets/wallpapers/chernobyl-wallpaper.jpg b/assets/wallpapers/chernobyl-wallpaper.jpg Binary files differdeleted file mode 100644 index a00bf64..0000000 --- a/assets/wallpapers/chernobyl-wallpaper.jpg +++ /dev/null diff --git a/assets/wallpapers/dalnim-and-ryu-young.jpg b/assets/wallpapers/dalnim-and-ryu-young.jpg Binary files differdeleted file mode 100644 index e84a5ab..0000000 --- a/assets/wallpapers/dalnim-and-ryu-young.jpg +++ /dev/null diff --git a/assets/wallpapers/insert_coin.jpeg b/assets/wallpapers/insert_coin.jpeg Binary files differdeleted file mode 100644 index d311bb2..0000000 --- a/assets/wallpapers/insert_coin.jpeg +++ /dev/null diff --git a/assets/wallpapers/may2025/2CB.png b/assets/wallpapers/may2025/2CB.png Binary files differdeleted file mode 100755 index 3719d6a..0000000 --- a/assets/wallpapers/may2025/2CB.png +++ /dev/null diff --git a/assets/wallpapers/may2025/ALCHEMY-dark.png b/assets/wallpapers/may2025/ALCHEMY-dark.png Binary files differdeleted file mode 100755 index cba3faa..0000000 --- a/assets/wallpapers/may2025/ALCHEMY-dark.png +++ /dev/null diff --git a/assets/wallpapers/may2025/ALCHEMY-pink.png b/assets/wallpapers/may2025/ALCHEMY-pink.png Binary files differdeleted file mode 100755 index 7a30e60..0000000 --- a/assets/wallpapers/may2025/ALCHEMY-pink.png +++ /dev/null diff --git a/assets/wallpapers/may2025/AQUARIUM.png b/assets/wallpapers/may2025/AQUARIUM.png Binary files differdeleted file mode 100755 index 46a7113..0000000 --- a/assets/wallpapers/may2025/AQUARIUM.png +++ /dev/null diff --git a/assets/wallpapers/may2025/ARCHPOOL.png b/assets/wallpapers/may2025/ARCHPOOL.png Binary files differdeleted file mode 100755 index 0833853..0000000 --- a/assets/wallpapers/may2025/ARCHPOOL.png +++ /dev/null diff --git a/assets/wallpapers/may2025/HEART_NEBULA.png b/assets/wallpapers/may2025/HEART_NEBULA.png Binary files differdeleted file mode 100755 index 1336cfe..0000000 --- a/assets/wallpapers/may2025/HEART_NEBULA.png +++ /dev/null diff --git a/assets/wallpapers/may2025/HIRAETH.png b/assets/wallpapers/may2025/HIRAETH.png Binary files differdeleted file mode 100755 index ecce047..0000000 --- a/assets/wallpapers/may2025/HIRAETH.png +++ /dev/null diff --git a/assets/wallpapers/may2025/STRAY_KITTY_CLUB-beige.png b/assets/wallpapers/may2025/STRAY_KITTY_CLUB-beige.png Binary files differdeleted file mode 100755 index 6128e7c..0000000 --- a/assets/wallpapers/may2025/STRAY_KITTY_CLUB-beige.png +++ /dev/null diff --git a/assets/wallpapers/may2025/STRAY_KITTY_CLUB-mint.png b/assets/wallpapers/may2025/STRAY_KITTY_CLUB-mint.png Binary files differdeleted file mode 100755 index cdf3035..0000000 --- a/assets/wallpapers/may2025/STRAY_KITTY_CLUB-mint.png +++ /dev/null diff --git a/assets/wallpapers/may2025/STRAY_KITTY_CLUB-pink.png b/assets/wallpapers/may2025/STRAY_KITTY_CLUB-pink.png Binary files differdeleted file mode 100755 index f1a0670..0000000 --- a/assets/wallpapers/may2025/STRAY_KITTY_CLUB-pink.png +++ /dev/null diff --git a/assets/wallpapers/may2025/STRAY_KITTY_CLUB-teal.png b/assets/wallpapers/may2025/STRAY_KITTY_CLUB-teal.png Binary files differdeleted file mode 100755 index 1430c2d..0000000 --- a/assets/wallpapers/may2025/STRAY_KITTY_CLUB-teal.png +++ /dev/null diff --git a/assets/wallpapers/may2025/SYSTEMA.png b/assets/wallpapers/may2025/SYSTEMA.png Binary files differdeleted file mode 100755 index 49ad14d..0000000 --- a/assets/wallpapers/may2025/SYSTEMA.png +++ /dev/null diff --git a/assets/wallpapers/may2025/colorshift.png b/assets/wallpapers/may2025/colorshift.png Binary files differdeleted file mode 100755 index 8418a63..0000000 --- a/assets/wallpapers/may2025/colorshift.png +++ /dev/null diff --git a/assets/wallpapers/vox.jpg b/assets/wallpapers/vox.jpg Binary files differdeleted file mode 100644 index 4ea96d9..0000000 --- a/assets/wallpapers/vox.jpg +++ /dev/null diff --git a/assets/wallpapers/wave-minimal.png b/assets/wallpapers/wave-minimal.png Binary files differdeleted file mode 100644 index 5d322d4..0000000 --- a/assets/wallpapers/wave-minimal.png +++ /dev/null diff --git a/assets/wallpapers/xenia.jpg b/assets/wallpapers/xenia.jpg Binary files differdeleted file mode 100755 index 4f25d69..0000000 --- a/assets/wallpapers/xenia.jpg +++ /dev/null diff --git a/flake.lock b/flake.lock deleted file mode 100755 index 684e01d..0000000 --- a/flake.lock +++ /dev/null @@ -1,519 +0,0 @@ -{ - "nodes": { - "base16": { - "inputs": { - "fromYaml": "fromYaml" - }, - "locked": { - "lastModified": 1755819240, - "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", - "owner": "SenchoPens", - "repo": "base16.nix", - "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", - "type": "github" - }, - "original": { - "owner": "SenchoPens", - "repo": "base16.nix", - "type": "github" - } - }, - "base16-fish": { - "flake": false, - "locked": { - "lastModified": 1765809053, - "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=", - "owner": "tomyun", - "repo": "base16-fish", - "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", - "type": "github" - }, - "original": { - "owner": "tomyun", - "repo": "base16-fish", - "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", - "type": "github" - } - }, - "base16-helix": { - "flake": false, - "locked": { - "lastModified": 1760703920, - "narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=", - "owner": "tinted-theming", - "repo": "base16-helix", - "rev": "d646af9b7d14bff08824538164af99d0c521b185", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "base16-helix", - "type": "github" - } - }, - "base16-vim": { - "flake": false, - "locked": { - "lastModified": 1732806396, - "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", - "owner": "tinted-theming", - "repo": "base16-vim", - "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "base16-vim", - "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", - "type": "github" - } - }, - "crane": { - "locked": { - "lastModified": 1780532242, - "narHash": "sha256-D+BsdpxmtUwtqGoY0IXPhHgTlmqgcZKCEo1oMyn7ep0=", - "owner": "ipetkov", - "repo": "crane", - "rev": "59a82a1222dd3b2080b5cc52a1a2e8d5f1b77f37", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "fenix": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "rust-analyzer-src": "rust-analyzer-src" - }, - "locked": { - "lastModified": 1780824777, - "narHash": "sha256-/D3gjEDezsoa//Kbd+rNQRERl4AS+HYOMChsdD1eus4=", - "owner": "nix-community", - "repo": "fenix", - "rev": "3a556b6fbd42412b6f3f0ea8d35959b1826f86ff", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "fenix", - "type": "github" - } - }, - "firefox-gnome-theme": { - "flake": false, - "locked": { - "lastModified": 1764873433, - "narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=", - "owner": "rafaelmardojai", - "repo": "firefox-gnome-theme", - "rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92", - "type": "github" - }, - "original": { - "owner": "rafaelmardojai", - "repo": "firefox-gnome-theme", - "type": "github" - } - }, - "flake-compat": { - "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", - "revCount": 69, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" - } - }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1778716662, - "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "stylix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1767609335, - "narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "250481aafeb741edfe23d29195671c19b36b6dca", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "fromYaml": { - "flake": false, - "locked": { - "lastModified": 1731966426, - "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", - "owner": "SenchoPens", - "repo": "fromYaml", - "rev": "106af9e2f715e2d828df706c386a685698f3223b", - "type": "github" - }, - "original": { - "owner": "SenchoPens", - "repo": "fromYaml", - "type": "github" - } - }, - "gnome-shell": { - "flake": false, - "locked": { - "host": "gitlab.gnome.org", - "lastModified": 1767737596, - "narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=", - "owner": "GNOME", - "repo": "gnome-shell", - "rev": "ef02db02bf0ff342734d525b5767814770d85b49", - "type": "gitlab" - }, - "original": { - "host": "gitlab.gnome.org", - "owner": "GNOME", - "ref": "gnome-49", - "repo": "gnome-shell", - "type": "gitlab" - } - }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1779506708, - "narHash": "sha256-QOD/CNm196nCJRheux/URi4/HE66fthdOMqCJoPP1Y0=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "3ee51fbdac8c8bdfe1e7e1fcaba6520a563f394f", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "release-25.11", - "repo": "home-manager", - "type": "github" - } - }, - "nixcord": { - "inputs": { - "flake-compat": "flake-compat", - "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs", - "nixpkgs-nixcord": "nixpkgs-nixcord" - }, - "locked": { - "lastModified": 1780878267, - "narHash": "sha256-DdJAEfGWWxXALvHR7BpDwWxI0UwgLNvfLudc0fZF20g=", - "owner": "FlameFlag", - "repo": "nixcord", - "rev": "072e83f08efd831c73ff452b6bfdac10aa42d5ce", - "type": "github" - }, - "original": { - "owner": "FlameFlag", - "repo": "nixcord", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1780453794, - "narHash": "sha256-bXMRa9VTsHSPXL4Cw8R6JJLQeY3Y/IP4+YJCYVmQ7FY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6b316287bae2ee04c9b93c8c858d930fd07d7338", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-26.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-lib": { - "locked": { - "lastModified": 1777168982, - "narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-nixcord": { - "locked": { - "lastModified": 1780453794, - "narHash": "sha256-bXMRa9VTsHSPXL4Cw8R6JJLQeY3Y/IP4+YJCYVmQ7FY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6b316287bae2ee04c9b93c8c858d930fd07d7338", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-26.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1780749050, - "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1780511130, - "narHash": "sha256-2v9lT4ya59Lh1FqPeLnz1MoX9y/wz2huqfe9RtQZITk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "535f3e6942cb1cead3929c604320d3db54b542b9", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-25.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nur": { - "inputs": { - "flake-parts": [ - "stylix", - "flake-parts" - ], - "nixpkgs": [ - "stylix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1767886815, - "narHash": "sha256-pB2BBv6X9cVGydEV/9Y8+uGCvuYJAlsprs1v1QHjccA=", - "owner": "nix-community", - "repo": "NUR", - "rev": "4ff84374d77ff62e2e13a46c33bfeb73590f9fef", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "NUR", - "type": "github" - } - }, - "root": { - "inputs": { - "crane": "crane", - "fenix": "fenix", - "home-manager": "home-manager", - "nixcord": "nixcord", - "nixpkgs": "nixpkgs_2", - "nixpkgs-unstable": "nixpkgs-unstable", - "stylix": "stylix" - } - }, - "rust-analyzer-src": { - "flake": false, - "locked": { - "lastModified": 1780758424, - "narHash": "sha256-OcXGwiq5ibERT8S9rx5V1bgleguAfwzSQzMePpf8yIE=", - "owner": "rust-lang", - "repo": "rust-analyzer", - "rev": "a9a66c4077fedd375c0f1e61dc39a8f3243ce0ef", - "type": "github" - }, - "original": { - "owner": "rust-lang", - "ref": "nightly", - "repo": "rust-analyzer", - "type": "github" - } - }, - "stylix": { - "inputs": { - "base16": "base16", - "base16-fish": "base16-fish", - "base16-helix": "base16-helix", - "base16-vim": "base16-vim", - "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts_2", - "gnome-shell": "gnome-shell", - "nixpkgs": [ - "nixpkgs" - ], - "nur": "nur", - "systems": "systems", - "tinted-foot": "tinted-foot", - "tinted-kitty": "tinted-kitty", - "tinted-schemes": "tinted-schemes", - "tinted-tmux": "tinted-tmux", - "tinted-zed": "tinted-zed" - }, - "locked": { - "lastModified": 1780418491, - "narHash": "sha256-+eo3U9WHpCkaT/FBGf98kdQprKMUREdY/vmvkej5EiI=", - "owner": "danth", - "repo": "stylix", - "rev": "16689b1d3280604a16d29e249f6b5a1a688e3905", - "type": "github" - }, - "original": { - "owner": "danth", - "ref": "release-25.11", - "repo": "stylix", - "type": "github" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "tinted-foot": { - "flake": false, - "locked": { - "lastModified": 1726913040, - "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", - "owner": "tinted-theming", - "repo": "tinted-foot", - "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "tinted-foot", - "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", - "type": "github" - } - }, - "tinted-kitty": { - "flake": false, - "locked": { - "lastModified": 1735730497, - "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=", - "owner": "tinted-theming", - "repo": "tinted-kitty", - "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "tinted-kitty", - "type": "github" - } - }, - "tinted-schemes": { - "flake": false, - "locked": { - "lastModified": 1767817087, - "narHash": "sha256-eGE8OYoK6HzhJt/7bOiNV2cx01IdIrHL7gXgjkHRdNo=", - "owner": "tinted-theming", - "repo": "schemes", - "rev": "bd99656235aab343e3d597bf196df9bc67429507", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "schemes", - "type": "github" - } - }, - "tinted-tmux": { - "flake": false, - "locked": { - "lastModified": 1767489635, - "narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=", - "owner": "tinted-theming", - "repo": "tinted-tmux", - "rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "tinted-tmux", - "type": "github" - } - }, - "tinted-zed": { - "flake": false, - "locked": { - "lastModified": 1767488740, - "narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=", - "owner": "tinted-theming", - "repo": "base16-zed", - "rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "base16-zed", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix deleted file mode 100644 index f44ea41..0000000 --- a/flake.nix +++ /dev/null @@ -1,110 +0,0 @@ -{ - description = "NixOS configuration for multiple machines with modular home-manager and rice support"; - - inputs = { - # Core - nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; - nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; - - # Home Manager - home-manager = { - url = "github:nix-community/home-manager/release-25.11"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - # Theming - centralized color management - stylix = { - url = "github:danth/stylix/release-25.11"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - # Rust toolchain - fenix = { - url = "github:nix-community/fenix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - # Rust build system for Nix - crane.url = "github:ipetkov/crane"; - - nixcord.url = "github:FlameFlag/nixcord"; - }; - - outputs = { - self, - nixpkgs, - nixpkgs-unstable, - home-manager, - stylix, - fenix, - crane, - nixcord, - ... - } @ inputs: let - system = "x86_64-linux"; - - # Overlays for the system - overlays = [ - # Access unstable packages via pkgs.unstable.* - (final: prev: { - unstable = import nixpkgs-unstable { - inherit system; - config.allowUnfree = true; - }; - }) - # Fenix Rust overlay - fenix.overlays.default - # Local TeXLive packages - (final: prev: { - scpzine-texlive = final.callPackage ./pkgs/scpzine-texlive.nix {}; - }) - ]; - - # Per-host home-manager configuration - mkHomeManagerModule = hostname: rice: { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { - inherit inputs; - inherit hostname; - inherit rice; - }; - users.mun = { - imports = [ - ./home/mun - ./home/rices/${rice}/home.nix - ]; - }; - }; - }; - - # Helper to create a NixOS system with rice - mkSystem = hostname: rice: - nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = {inherit inputs;}; - modules = [ - # Apply overlays via nixpkgs module - { - nixpkgs = { - inherit overlays; - config.allowUnfree = true; - }; - } - ./hosts/${hostname}/configuration.nix - ./system - ./home/rices/${rice}/system.nix - home-manager.nixosModules.home-manager - stylix.nixosModules.stylix - (mkHomeManagerModule hostname rice) - ]; - }; - in { - nixosConfigurations = { - kronos = mkSystem "kronos" "schrottkatze"; - herra = mkSystem "herra" "cinnamon"; - mystra = mkSystem "mystra" "nord-blue"; - }; - }; -} diff --git a/home/mun/default.nix b/home/mun/default.nix deleted file mode 100644 index 1042edb..0000000 --- a/home/mun/default.nix +++ /dev/null @@ -1,124 +0,0 @@ -{pkgs, ...}: { - imports = [ - ./programs/zsh.nix - ./programs/ssh.nix - ./programs/git.nix - ./programs/nvim.nix - ./programs/nixcord.nix - ./programs/browser.nix - ./programs/rmpc.nix - ]; - - home = { - username = "mun"; - homeDirectory = "/home/mun"; - stateVersion = "25.11"; - - packages = with pkgs; [ - # Rust toolchain (via fenix) - (fenix.complete.withComponents [ - "cargo" - "clippy" - "rust-src" - "rustc" - "rustfmt" - ]) - rust-analyzer - - # Python - ruff - - # Applications - spotify - openrocket - prusa-slicer - kicad - thunderbird - signal-desktop - famistudio - tor-browser - unstable.heroic - butler - - (pkgs.writeShellScriptBin "itch" '' - exec ${pkgs.steam-run}/bin/steam-run ${pkgs.itch}/bin/itch "$@" - '') - - # Utilities - zathura - ripgrep - fd - git - lazygit - tree-sitter - gcr - perl - syncthing - sshfs - alacritty - protonup-qt - devenv - - # CLI Tools - bat - tealdeer - fastfetch - - # Fun - kdePackages.kdenlive - dwarf-fortress - tetris - minefair - - # Documents & Creative - libreoffice - texstudio - krita - aseprite - audacity - - # Network - clipman - xclip - qbittorrent - - # Gaming - prismlauncher - vlc - - # Editors - obsidian - vscodium - peazip - - # Wine/Compatibility - wine - - # File manager - xfce.thunar - - # TeX Live - (texlive.combine { - inherit (texlive) scheme-full; - notestex = texlivePackages.notestex; - screenplay = texlivePackages.screenplay; - # scpzine = pkgs.scpzine-texlive; # Commented out until i can push the fix to remote from home - }) - - # RetroArch - (retroarch.withCores (cores: - with cores; [ - fceumm - mgba - gambatte - sameboy - ])) - ]; - - sessionVariables = { - EDITOR = "nvim"; - VISUAL = "nvim"; - APPIMAGE_EXTRACT_AND_RUN = "1"; - }; - }; -} diff --git a/home/mun/programs/browser.nix b/home/mun/programs/browser.nix deleted file mode 100644 index 1b7ad6a..0000000 --- a/home/mun/programs/browser.nix +++ /dev/null @@ -1,301 +0,0 @@ -{pkgs, ...}: { - programs.firefox = { - enable = true; - - profiles.mun = { - search = { - force = true; - default = "256phi"; - engines = { - "256phi" = { - urls = [ - { - template = "https://search.256phi.eu/search"; - params = [ - { - name = "q"; - value = "{searchTerms}"; - } - ]; - } - ]; - }; - - "duckduckbleh" = { - urls = [ - { - template = "https://noai.duckduckgo.com/"; - params = [ - { - name = "q"; - value = "{searchTerms}"; - } - ]; - } - ]; - definedAliases = [ - "duck" - "d" - "ddg" - ]; - }; - "Nix Packages" = { - urls = [ - { - template = "https://search.nixos.org/packages"; - params = [ - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = ["pkgs"]; - }; - "Nix Options" = { - urls = [ - { - template = "https://search.nixos.org/options"; - params = [ - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = ["opts"]; - }; - "Home manager Options" = { - urls = [ - { - template = "https://home-manager-options.extranix.com/"; - params = [ - { - name = "query"; - value = "{searchTerms}"; - } - { - name = "release"; - value = "master"; - } - ]; - } - ]; - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = ["hm"]; - }; - "NixOS Wiki" = { - urls = [ - { - template = "https://nixos.wiki/index.php"; - params = [ - { - name = "search"; - value = "{searchTerms}"; - } - ]; - } - ]; - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = ["nxwk"]; - }; - "rust docs" = { - urls = [ - { - template = "https://docs.rs/releases/search"; - params = [ - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - icon = "https://docs.rs/-/static/favicon.ico"; - definedAliases = ["docs"]; - }; - "rust std docs" = { - urls = [ - { - template = "https://docs.rust-lang.org/std/index.html"; - params = [ - { - name = "search"; - value = "{searchTerms}"; - } - ]; - } - ]; - icon = "https://doc.rust-lang.org/favicon.ico"; - definedAliases = ["std"]; - }; - "bing".metaData.hidden = true; - "google".metaData.hidden = true; - "Amazon.de".metaData.hidden = true; - }; - }; - settings = { - "devtools.editor.keymap" = "vim"; - "devtools.toolbox.host" = "right"; - "devtools.theme" = "dark"; - "webgl.disabled" = false; - "browser.urlbar.decodeURLsOnCopy" = true; - "browser.urlbar.unitConversion.enabled" = true; - "browser.urlbar.suggest.calculator" = true; - "browser.compactmode.show" = true; - "browser.uidensity" = 1; - "screenshots.browser.component.enabled" = true; - "browser.aboutConfig.showWarning" = false; - "browser.aboutwelcome.showModal" = false; - "browser.aboutwelcome.enabled" = false; - "browser.preferences.moreFromMozilla" = false; - "browser.menu.showViewImageInfo" = true; - "browser.shopping.experience2023.active" = false; - "browser.shopping.experience2023.survey.enabled" = false; - - "identity.fxaccounts.enabled" = true; - "browser.tabs.firefox-view" = true; - "browser.tabs.firefox-view-next" = true; - "browser.newtabpage.activity-stream.showSponsored" = false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false; - "privacy.trackingprotection.emailtracking.enabled" = true; - "privacy.trackingprotection.enabled" = true; - "privacy.trackingprotection.socialtracking.enabled" = true; - - "browser.startup.homepage" = "about:blank"; - "browser.newtabpage.enabled" = false; - "browser.ml.chat.enabled" = false; - "browser.ml.chat.hideLocalhost" = false; - "browser.ml.chat.prompt.prefix" = ""; - "browser.ml.chat.prompts.0" = ""; - "browser.ml.chat.prompts.1" = ""; - "browser.ml.chat.prompts.2" = ""; - "browser.ml.chat.prompts.3" = ""; - "browser.ml.chat.provider" = ""; - "browser.ml.chat.shortcuts" = false; - "browser.ml.chat.shortcuts.custom" = false; - "browser.ml.chat.shortcuts.longPress" = ""; - "browser.ml.chat.sidebar" = false; - - "geo.provider.network.logging.enabled" = true; - "extensions.getAddons.showPane" = false; - "extensions.htmlaboutaddons.recommendations.enabled" = false; - "browser.discovery.enabled" = false; - "browser.shopping.experience2023.enabled" = false; - "datareporting.policy.dataSubmissionEnabled" = false; - "datareporting.healthreport.uploadEnabled" = false; - "toolkit.telemetry.unified" = false; - "toolkit.telemetry.enabled" = false; - "toolkit.telemetry.server" = "data:,"; - "toolkit.telemetry.archive.enabled" = false; - "toolkit.telemetry.newProfilePing.enabled" = false; - "toolkit.telemetry.shutdownPingSender.enabled" = false; - "toolkit.telemetry.updatePing.enabled" = false; - "toolkit.telemetry.bhrPing.enabled" = false; - "toolkit.telemetry.firstShutdownPing.enabled" = false; - "toolkit.telemetry.coverage.opt-out" = true; - "toolkit.coverage.opt-out" = true; - "toolkit.coverage.endpoint.base" = ""; - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - "browser.ping-centre.telemetry" = false; - "browser.newtabpage.activity-stream.feeds.telemetry" = false; - "browser.newtabpage.activity-stream.telemetry" = false; - "app.shield.optoutstudies.enabled" = false; - "app.normandy.enabled" = false; - "app.normandy.api_url" = ""; - "dom.private-attribution.submission.enabled" = false; - "browser.newtabpage.activity-stream.feeds.showWeather" = false; - "browser.newtabpage.activity-stream.feeds.weatherfeed" = false; - - "browser.safebrowsing.malware.enabled" = false; - "browser.safebrowsing.phishing.enabled" = false; - "browser.safebrowsing.downloads.enabled" = false; - "browser.safebrowsing.downloads.remote.enabled" = false; - "browser.safebrowsing.downloads.remote.url" = ""; - "browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false; - "browser.safebrowsing.downloads.remote.block_uncommon" = false; - "browser.safebrowsing.allowOverride" = false; - - "network.prefetch-next" = false; - "network.dns.disablePrefetch" = true; - "network.dns.disablePrefetchFromHTTPS" = true; - "network.predictor.enabled" = false; - "network.predictor.enable-prefetch" = false; - "network.http.speculative-parallel-limit" = 0; - "browser.places.speculativeConnect.enabled" = false; - "browser.send_pings" = false; - - "browser.urlbar.pocket.featureGate" = false; - "browser.urlbar.weather.featureGate" = false; - "browser.urlbar.speculativeConnect.enabled" = false; - "browser.urlbar.suggest.quicksuggest.nonsponsored" = false; - "browser.urlbar.suggest.quicksuggest.sponsored" = false; - "browser.search.suggest.enabled" = false; - "browser.urlbar.suggest.searches" = false; - "browser.urlbar.trending.featureGate" = false; - - "security.ssl.require_safe_negotiation" = true; - "security.remote_settings.crlite_filters.enabled" = true; - "security.pki.crlite_mode" = 2; - - "dom.security.https_only_mode" = true; - "dom.security.https_only_mode_pbm" = true; - "security.ssl.treat_unsafe_negotiation_as_broken" = true; - "browser.xul.error_pages.expert_bad_cert" = true; - "network.http.referer.XOriginTrimmingPolicy" = 2; - - "privacy.userContext.enabled" = true; - "privacy.userContext.ui.enabled" = true; - "privacy.userContext.newTabContainerOnLeftClick.enabled" = true; - - "dom.disable_window_move_resize" = true; - - "browser.uitour.enabled" = false; - - "browser.uitour.url" = ""; - "permissions.manager.defaultsUrl" = ""; - "webchannel.allowObject.urlWhitelist" = ""; - - "network.IDN_show_punycode" = true; - "pdfjs.disabled" = false; - "pdfjs.enableScripting" = false; - "browser.tabs.searchclipboardfor.middleclick" = false; - "browser.download.useDownloadDir" = false; - "browser.download.alwaysOpenPanel" = false; - - "browser.download.manager.addToRecentDocs" = false; - - "browser.download.always_ask_before_handling_new_types" = true; - "privacy.resistFingerprinting" = true; - "privacy.window.maxInnerWidth" = 1600; - "privacy.window.maxInnerHeight" = 900; - "privacy.resistFingerprinting.block_mozAddonManager" = true; - "privacy.resistFingerprinting.letterboxing" = false; - "widget.non-native-theme.enabled" = true; - "browser.link.open_newwindow" = 3; - "browser.link.open_newwindow.restriction" = 0; - "signon.rememberSignons" = false; - "dom.popup_allowed_events" = "click dblclick mousedown pointerdown"; - "browser.pagethumbnails.capturing_disabled" = true; - - "geo.enabled" = false; - "full-screen-api.enabled" = false; - "permissions.default.geo" = 0; - "permissions.default.camera" = 0; - "permissions.default.microphone" = 0; - "permissions.default.desktop-notification" = 0; - "permissions.default.xr" = 0; - }; - userChrome = '' - #TabsToolbar { display: none !important; } - #sidebar-box #sidebar-header { display: none !important; } - * { border-radius: 0px; } - ''; - }; - }; -} diff --git a/home/mun/programs/git.nix b/home/mun/programs/git.nix deleted file mode 100644 index 7d29b04..0000000 --- a/home/mun/programs/git.nix +++ /dev/null @@ -1,20 +0,0 @@ -{pkgs, ...}: { - programs.git = { - enable = true; - settings = { - user = { - name = "Natasha Moongrave"; - email = "natasha@256phi.eu"; - signingKey = "2A842249816B698B!"; - }; - commit.gpgSign = true; - gpg.program = "gpg"; - }; - }; - programs.gpg.enable = true; - - services.gpg-agent = { - enable = true; - pinentryPackage = pkgs.pinentry-curses; # terminal-friendly, good for a tty/zsh setup - }; -} diff --git a/home/mun/programs/nixcord.nix b/home/mun/programs/nixcord.nix deleted file mode 100644 index 6e3d470..0000000 --- a/home/mun/programs/nixcord.nix +++ /dev/null @@ -1,13 +0,0 @@ -{inputs, ...}: { - imports = [ - inputs.nixcord.homeModules.nixcord - ]; - - programs.nixcord = { - enable = true; - - discord = { - vencord.enable = true; - }; - }; -} diff --git a/home/mun/programs/nvim.nix b/home/mun/programs/nvim.nix deleted file mode 100644 index 7cda2e1..0000000 --- a/home/mun/programs/nvim.nix +++ /dev/null @@ -1,329 +0,0 @@ -{pkgs, ...}: { - home.packages = with pkgs; [ - zathura - ripgrep - fd - lazygit - stylua - alejandra - black - shfmt - typst - jdk21 # QwQ - gradle - - # Language servers - lua-language-server - nil - rust-analyzer - pyright - bash-language-server - texlab - tinymist - jdt-language-server - ]; - - programs.neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - - plugins = with pkgs.vimPlugins; [ - # UI - catppuccin-nvim - nvim-web-devicons - which-key-nvim - gitsigns-nvim - - # Syntax - (nvim-treesitter.withPlugins (p: [ - p.lua - p.nix - p.rust - p.python - p.bash - p.latex - p.c - p.typst - p.java - ])) - - # LSP - nvim-lspconfig - - # Completion / snippets - nvim-cmp - cmp-nvim-lsp - cmp_luasnip - luasnip - friendly-snippets - nvim-autopairs - - # Formatting - conform-nvim - comment-nvim - - # Navigation - telescope-nvim - plenary-nvim - nvim-tree-lua - - # Terminal - toggleterm-nvim - - # Writing - vimtex - orgmode - - # Start screen - { - plugin = vim-startify; - config = "let g:startify_change_to_vcs_root = 0"; - } - ]; - - extraLuaConfig = '' - ------------------------------------------------- - -- LEADER - ------------------------------------------------- - vim.g.mapleader = " " - - ------------------------------------------------- - -- BASIC OPTIONS - ------------------------------------------------- - vim.opt.number = true - vim.opt.relativenumber = true - vim.opt.clipboard = "unnamedplus" - vim.opt.showtabline = 2 - vim.o.timeout = true - vim.o.timeoutlen = 300 - - ------------------------------------------------- - -- THEME - ------------------------------------------------- - require("catppuccin").setup({ - flavour = "mocha", - }) - vim.cmd.colorscheme("catppuccin") - - ------------------------------------------------- - -- GITSIGNS - ------------------------------------------------- - require("gitsigns").setup() - - ------------------------------------------------- - -- TREESITTER - ------------------------------------------------- - require("nvim-treesitter.configs").setup({ - highlight = { enable = true }, - indent = { enable = true }, - }) - - vim.opt.foldmethod = "expr" - vim.opt.foldexpr = "nvim_treesitter#foldexpr()" - vim.opt.foldenable = false - - ------------------------------------------------- - -- SNIPPETS - ------------------------------------------------- - require("luasnip.loaders.from_vscode").lazy_load() - - ------------------------------------------------- - -- COMPLETION - ------------------------------------------------- - local cmp = require("cmp") - local luasnip = require("luasnip") - - cmp.setup({ - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - mapping = cmp.mapping.preset.insert({ - ["<C-Space>"] = cmp.mapping.complete(), - ["<CR>"] = cmp.mapping.confirm({ select = true }), - }), - sources = { - { name = "nvim_lsp" }, - { name = "luasnip" }, - }, - }) - - require("nvim-autopairs").setup({}) - - ------------------------------------------------- - -- LSP - ------------------------------------------------- - local capabilities = require("cmp_nvim_lsp").default_capabilities() - - local servers = { - "lua_ls", - "nil_ls", - "rust_analyzer", - "pyright", - "bashls", - "texlab", - "tinymist" - } - - for _, server in ipairs(servers) do - vim.lsp.config(server, { - capabilities = capabilities - }) - vim.lsp.enable(server) - end - - ------------------------------------------------- - -- LSP KEYMAPS - ------------------------------------------------- - vim.keymap.set("n", "<leader>ld", vim.lsp.buf.definition) - vim.keymap.set("n", "<leader>lD", vim.lsp.buf.declaration) - vim.keymap.set("n", "<leader>li", vim.lsp.buf.implementation) - vim.keymap.set("n", "<leader>lr", vim.lsp.buf.references) - vim.keymap.set("n", "lh", vim.lsp.buf.hover) - vim.keymap.set("n", "ln", vim.lsp.buf.rename) - vim.keymap.set("n", "la", vim.lsp.buf.code_action) - vim.keymap.set("n", "lf", function() vim.lsp.buf.format() end) - - ------------------------------------------------- - -- DIAGNOSTICS - ------------------------------------------------- - vim.keymap.set("n", "lj", vim.diagnostic.goto_next) - vim.keymap.set("n", "lk", vim.diagnostic.goto_prev) - vim.keymap.set("n", "le", vim.diagnostic.open_float) - - ------------------------------------------------- - -- FORMATTER - ------------------------------------------------- - require("conform").setup({ - format_on_save = { - timeout_ms = 500, - lsp_format = "fallback", - }, - formatters_by_ft = { - lua = { "stylua" }, - nix = { "alejandra" }, - rust = { "rustfmt" }, - python = { "black" }, - bash = { "shfmt" }, - }, - }) - - require("Comment").setup() - - ------------------------------------------------- - -- TELESCOPE - ------------------------------------------------- - local builtin = require("telescope.builtin") - - require("telescope").setup({ - defaults = { - layout_strategy = "horizontal", - sorting_strategy = "ascending", - file_ignore_patterns = { "node_modules", ".git/" }, - }, - }) - - vim.keymap.set("n", "<leader><leader>", builtin.find_files) - vim.keymap.set("n", "<leader>fg", builtin.live_grep) - vim.keymap.set("n", "<leader>fb", builtin.buffers) - - ------------------------------------------------- - -- WHICH KEY - ------------------------------------------------- - local wk = require("which-key") - wk.add({ - { "<leader>l", desc = "LSP" }, - { "<leader>o", desc = "Org" } - }) - - ------------------------------------------------- - -- NVIM TREE - ------------------------------------------------- - require("nvim-tree").setup({}) - vim.keymap.set("n", "<leader>e", "<cmd>NvimTreeToggle<CR>") - - ------------------------------------------------- - -- TERMINAL - ------------------------------------------------- - require("toggleterm").setup({ - direction = "float", - }) - - local Terminal = require("toggleterm.terminal").Terminal - - local lazygit = Terminal:new({ - cmd = "lazygit", - hidden = true, - direction = "float", - }) - - vim.keymap.set("n", "<leader>gg", function() - lazygit:toggle() - end) - - - ------------------------------------------------- - -- ORGMODE - ------------------------------------------------- - local projects = { - "~/Documents/2_Writing/0_SOC/**/*.org", - "~/Documents/2_Writing/2_Notes/**/*.org", - "~/Documents/1_Projects/6_CRC-Altura/**/*.org", - "~/ORG/**/*.org" - } - - require("orgmode").setup({ - org_agenda_files = projects, - org_default_notes_file = "~/ORG/inbox.org", -- move inbox inside ~/ORG - - org_capture_templates = { - t = { - description = "Todo", - template = "* TODO %?\n SCHEDULED: %t", - target = "~/ORG/todos.org", - }, - i = { - description = "Idea", - template = "* %? :idea:\n %U", - target = "~/ORG/ideas.org", - }, - n = { - description = "Note", - template = "* %?\n %U", - target = "~/ORG/inbox.org", - }, - j = { - description = "Journal", - template = "* %<%Y-%m-%d>\n %?", - target = "~/ORG/journal.org", - }, - }, - }) - - vim.keymap.set("n", "<leader>oc", function() require("orgmode").action("capture.prompt") end, { desc = "Org Capture" }) - vim.keymap.set("n", "<leader>oa", function() require("orgmode").action("agenda.prompt") end, { desc = "Org Agenda" }) - ------------------------------------------------- - -- VIMTEX - ------------------------------------------------- - vim.g.vimtex_view_method = "zathura" - - ------------------------------------------------- - -- TYPST - ------------------------------------------------- - vim.api.nvim_create_autocmd("FileType", { - pattern = "typst", - callback = function() - -- Watch + preview - vim.keymap.set("n", "<leader>lw", function() - local file = vim.fn.expand("%") - vim.fn.jobstart({ "typst", "watch", file }) - vim.fn.jobstart({ "zathura", vim.fn.expand("%:r") .. ".pdf" }) - end, { buffer = true, desc = "Typst watch + Zathura" }) - end, - }) - ''; - }; -} diff --git a/home/mun/programs/rmpc.nix b/home/mun/programs/rmpc.nix deleted file mode 100644 index 4ce9f73..0000000 --- a/home/mun/programs/rmpc.nix +++ /dev/null @@ -1,14 +0,0 @@ -{pkgs, ...}: { - # Install rmpc from unstable nix - home.packages = with pkgs.unstable; - [ - rmpc - ] # Add cava and libnotify as a stable package for config dependencies - ++ (with pkgs; [ - cava - libnotify - mpc - ]); - # Write the rmpc config - xdg.configFile."rmpc/config.ron".source = ./rmpc/config.ron; -} diff --git a/home/mun/programs/rmpc/config.ron b/home/mun/programs/rmpc/config.ron deleted file mode 100644 index 1f5bd91..0000000 --- a/home/mun/programs/rmpc/config.ron +++ /dev/null @@ -1,322 +0,0 @@ -#![enable(implicit_some)] -#![enable(unwrap_newtypes)] -#![enable(unwrap_variant_newtypes)] -( - address: "127.0.0.1:6600", - password: None, - theme: None, - cache_dir: None, - - // Notify on song change - on_song_change: Some(["sh", "-c", "notify-send -a rmpc '${TITLE:-Unknown}' '${ARTIST:-Unknown Artist} — ${ALBUM:-Unknown Album}'"]), - exec_on_song_change_at_start: false, - - on_exit: None, - - // Lyrics - lyrics_dir: Some("~/Music/lyrics"), - lyrics_offset_ms: 0, - enable_lyrics_index: true, - enable_lyrics_hot_reload: true, - - // Playback - volume_step: 5, - rewind_to_start_sec: Some(3), - keep_state_on_song_change: true, - reflect_changes_to_playlist: false, - - // UI - max_fps: 60, - scrolloff: 5, - wrap_navigation: false, - enable_mouse: true, - scroll_amount: 3, - status_update_interval_ms: 500, - select_current_song_on_change: true, - center_current_song_on_change: true, - enable_config_hot_reload: true, - quit_closes_modal: true, - auto_open_downloads: true, - ignore_leading_the: true, - browser_song_sort: [Disc, Track, Artist, Title], - directories_sort: SortFormat(group_by_type: true, reverse: false), - - album_art: ( - method: Auto, - max_size_px: (width: 1200, height: 1200), - disabled_protocols: ["http://", "https://"], - vertical_align: Center, - horizontal_align: Center, - ), - - cava: ( - framerate: 60, - autosens: true, - sensitivity: 100, - lower_cutoff_freq: 50, - higher_cutoff_freq: 10000, - input: ( - method: Fifo, - source: "/tmp/mpd.fifo", - sample_rate: 44100, - channels: 2, - sample_bits: 16, - ), - smoothing: ( - noise_reduction: 77, - monstercat: false, - waves: false, - ), - eq: [], - ), - - // Keybinds — default rmpc binds are already vim-style (hjkl, gg/G, C-u/C-d, etc.) - // keeping defaults and just adding a couple of extras - keybinds: ( - clear: false, - global: { - "q": Quit, - "?": ShowHelp, - ":": CommandMode, - "oI": ShowCurrentSongInfo, - "oo": ShowOutputs, - "op": ShowDecoders, - "od": ShowDownloads, - "oP": Partition(), - "z": ToggleRepeat, - "x": ToggleRandom, - "c": ToggleConsume, - "v": ToggleSingle, - "p": TogglePause, - "s": Stop, - ">": NextTrack, - "<": PreviousTrack, - "f": SeekForward, - "b": SeekBack, - ".": VolumeUp, - ",": VolumeDown, - "<Tab>": NextTab, - "gt": NextTab, - "<S-Tab>": PreviousTab, - "gT": PreviousTab, - "1": SwitchToTab("Queue"), - "2": SwitchToTab("Directories"), - "3": SwitchToTab("Artists"), - "4": SwitchToTab("Album Artists"), - "5": SwitchToTab("Albums"), - "6": SwitchToTab("Playlists"), - "7": SwitchToTab("Search"), - "u": Update, - "U": Rescan, - "R": AddRandom, - }, - navigation: { - "<C-c>": Close, - "<Esc>": Close, - "<CR>": Confirm, - "k": Up, - "<Up>": Up, - "j": Down, - "<Down>": Down, - "h": Left, - "<Left>": Left, - "l": Right, - "<Right>": Right, - "<C-w>k": PaneUp, - "<C-Up>": PaneUp, - "<C-w>j": PaneDown, - "<C-Down>": PaneDown, - "<C-w>h": PaneLeft, - "<C-Left>": PaneLeft, - "<C-w>l": PaneRight, - "<C-Right>": PaneRight, - "K": MoveUp, - "J": MoveDown, - "<C-u>": UpHalf, - "<C-d>": DownHalf, - "<C-b>": PageUp, - "<PageUp>": PageUp, - "<C-f>": PageDown, - "<PageDown>": PageDown, - "gg": Top, - "G": Bottom, - "<Space>": Select, - "<C-Space>": InvertSelection, - "/": EnterSearch, - "n": NextResult, - "N": PreviousResult, - "a": Add, - "A": AddAll, - "D": Delete, - "<C-r>": Rename, - "i": FocusInput, - "oi": ShowInfo, - "<C-x>": ContextMenu(), - "<C-s>s": Save(kind: Modal(all: false, duplicates_strategy: Ask)), - "<C-s>a": Save(kind: Modal(all: true, duplicates_strategy: Ask)), - "r": Rate(), - }, - queue: { - "d": Delete, - "D": DeleteAll, - "<CR>": Play, - "C": JumpToCurrent, - "X": Shuffle, - }, - ), - - search: ( - case_sensitive: false, - ignore_diacritics: true, - search_button: false, - mode: Contains, - tags: [ - (value: "any", label: "Any Tag"), - (value: "artist", label: "Artist"), - (value: "album", label: "Album"), - (value: "albumartist", label: "Album Artist"), - (value: "title", label: "Title"), - (value: "filename", label: "Filename"), - (value: "genre", label: "Genre"), - ], - ), - - artists: ( - album_display_mode: SplitByDate, - album_sort_by: Date, - album_date_tags: [Date], - ), - - // Layout: Queue tab has album art + lyrics on left, queue on right - // Other tabs are simple single-pane - tabs: [ - ( - name: "Queue", - pane: Split( - direction: Horizontal, - panes: [ - ( - size: "35%", - pane: Split( - direction: Vertical, - panes: [ - ( - size: "100%", - borders: "LEFT | RIGHT | TOP", - border_symbols: Rounded, - pane: Pane(AlbumArt) - ), - ( - size: "6", - borders: "LEFT | RIGHT", - border_symbols: Rounded, - pane: Pane(Cava) - ), - ( - size: "7", - borders: "ALL", - border_symbols: Inherited(parent: Rounded, top_left: "├", top_right: "┤",), - border_title: [(kind: Text(" Lyrics "))], - border_title_alignment: Right, - pane: Pane(Lyrics) - ), - ], - ), - ), - ( - size: "65%", - pane: Split( - direction: Vertical, - panes: [ - ( - size: "3", - borders: "ALL", - border_symbols: Inherited(parent: Rounded, bottom_left: "├", bottom_right: "┤",), - pane: Split( - direction: Horizontal, - panes: [ - (size: "1", pane: Pane(Empty())), - (size: "100%", pane: Pane(QueueHeader())), - ] - ) - ), - ( - size: "100%", - borders: "LEFT | RIGHT | BOTTOM", - border_symbols: Rounded, - pane: Split( - direction: Horizontal, - panes: [ - (size: "1", pane: Pane(Empty())), - (size: "100%", pane: Pane(Queue)), - ] - ) - ), - ], - ) - ), - ], - ), - ), - ( - name: "Directories", - borders: "ALL", - border_symbols: Rounded, - pane: Split( - size: "100%", - direction: Vertical, - panes: [(pane: Pane(Directories), size: "100%", borders: "ALL", border_symbols: Rounded)], - ) - ), - ( - name: "Artists", - borders: "ALL", - border_symbols: Rounded, - pane: Split( - size: "100%", - direction: Vertical, - panes: [(pane: Pane(Artists), size: "100%", borders: "ALL", border_symbols: Rounded)], - ) - ), - ( - name: "Album Artists", - borders: "ALL", - border_symbols: Rounded, - pane: Split( - size: "100%", - direction: Vertical, - panes: [(pane: Pane(AlbumArtists), size: "100%", borders: "ALL", border_symbols: Rounded)], - ) - ), - ( - name: "Albums", - borders: "ALL", - border_symbols: Rounded, - pane: Split( - size: "100%", - direction: Vertical, - panes: [(pane: Pane(Albums), size: "100%", borders: "ALL", border_symbols: Rounded)], - ) - ), - ( - name: "Playlists", - borders: "ALL", - border_symbols: Rounded, - pane: Split( - size: "100%", - direction: Vertical, - panes: [(pane: Pane(Playlists), size: "100%", borders: "ALL", border_symbols: Rounded)], - ) - ), - ( - name: "Search", - borders: "ALL", - border_symbols: Rounded, - pane: Split( - size: "100%", - direction: Vertical, - panes: [(pane: Pane(Search), size: "100%", borders: "ALL", border_symbols: Rounded)], - ) - ), - ], -) diff --git a/home/mun/programs/ssh.nix b/home/mun/programs/ssh.nix deleted file mode 100644 index 173f0fd..0000000 --- a/home/mun/programs/ssh.nix +++ /dev/null @@ -1,31 +0,0 @@ -{...}: { - programs.ssh = { - enable = true; - enableDefaultConfig = false; - matchBlocks = { - "*" = { - addKeysToAgent = "no"; - forwardAgent = false; - }; - "apollo" = { - user = "root"; - hostname = "100.97.73.86"; - }; - "cgit" = { - user = "git"; - hostname = "100.76.17.20"; - identityFile = "~/.ssh/cgit"; - }; - "codeberg" = { - user = "git"; - hostname = "codeberg.org"; - identityFile = "~/.ssh/codeberg"; - }; - "poseidon" = { - user = "admin"; - hostname = "81.2.236.202"; - identityFile = "/mnt/ssh-keys/poseidon"; - }; - }; - }; -} diff --git a/home/mun/programs/zsh.nix b/home/mun/programs/zsh.nix deleted file mode 100644 index 816ea1b..0000000 --- a/home/mun/programs/zsh.nix +++ /dev/null @@ -1,32 +0,0 @@ -{...}: { - programs.zsh = { - enable = true; - syntaxHighlighting.enable = true; - - shellAliases = { - ll = "ls -l"; - rebuild = "sudo nixos-rebuild switch"; - edit = "sudo vi /etc/nixos/configuration.nix"; - }; - - history.size = 10000; - - oh-my-zsh = { - enable = true; - plugins = ["git"]; - theme = "simple"; - }; - - initContent = '' - fastfetch --config examples/9.jsonc - export GPG_TTY=$(tty) - SSH_AUTH_SOCK=/run/user/1000/ssh-agent.socket - ''; - }; - programs.bash = { - initExtra = '' - export GPG_TTY=$(tty) - SSH_AUTH_SOCK=/run/user/1000/ssh-agent.socket - ''; - }; -} diff --git a/home/rices/cinnamon/default.nix b/home/rices/cinnamon/default.nix deleted file mode 100644 index 6b7865d..0000000 --- a/home/rices/cinnamon/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ - system = import ./system.nix; - home = import ./home.nix; -} diff --git a/home/rices/cinnamon/home.nix b/home/rices/cinnamon/home.nix deleted file mode 100644 index 5e994b3..0000000 --- a/home/rices/cinnamon/home.nix +++ /dev/null @@ -1,3 +0,0 @@ -{...}: { - # Cinnamon manages most UI config itself; HM overrides can go here -} diff --git a/home/rices/cinnamon/system.nix b/home/rices/cinnamon/system.nix deleted file mode 100644 index 96aa1f1..0000000 --- a/home/rices/cinnamon/system.nix +++ /dev/null @@ -1,50 +0,0 @@ -{pkgs, ...}: let - vars = import ./variables.nix; -in { - services.xserver = { - enable = true; - desktopManager.cinnamon.enable = true; - xkb = { - layout = "cz"; - options = "eurosign:e,caps:escape"; - }; - }; - - environment.systemPackages = with pkgs; [ - xorg.xrandr - xclip - gnome-screenshot - ]; - - stylix = { - enable = true; - autoEnable = true; - base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml"; - image = vars.image; - - fonts = { - monospace = { - package = pkgs.dejavu_fonts; - name = "DejaVu Sans Mono"; - }; - sansSerif = { - package = pkgs.dejavu_fonts; - name = "DejaVu Sans"; - }; - serif = { - package = pkgs.dejavu_fonts; - name = "DejaVu Serif"; - }; - emoji = { - package = pkgs.noto-fonts-color-emoji; - name = "Noto Color Emoji"; - }; - sizes = { - terminal = 11; - applications = 11; - desktop = 11; - }; - }; - polarity = "dark"; - }; -} diff --git a/home/rices/cinnamon/variables.nix b/home/rices/cinnamon/variables.nix deleted file mode 100644 index 4c13af7..0000000 --- a/home/rices/cinnamon/variables.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - image = ../../../assets/wallpapers/insert_coin.jpeg; -} diff --git a/home/rices/nord-blue/alacritty.nix b/home/rices/nord-blue/alacritty.nix deleted file mode 100644 index 772718c..0000000 --- a/home/rices/nord-blue/alacritty.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - pkgs, - lib, - ... -}: { - # Let Stylix handle Alacritty theming - # Only override font size if needed - programs.alacritty.settings.font.size = lib.mkForce 10; - - home.packages = with pkgs; [ - nerd-fonts.jetbrains-mono - ]; -} diff --git a/home/rices/nord-blue/default.nix b/home/rices/nord-blue/default.nix deleted file mode 100644 index 6b7865d..0000000 --- a/home/rices/nord-blue/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ - system = import ./system.nix; - home = import ./home.nix; -} diff --git a/home/rices/nord-blue/dunst.nix b/home/rices/nord-blue/dunst.nix deleted file mode 100644 index 6226cb6..0000000 --- a/home/rices/nord-blue/dunst.nix +++ /dev/null @@ -1,101 +0,0 @@ -{ config, pkgs, lib, ... }: - -let - vars = import ./variables.nix; - - # Battery notification script - batteryNotify = pkgs.writeShellScriptBin "battery-notify" '' - #!/bin/sh - - # Get battery status - BATTERY_PATH="/sys/class/power_supply/BAT0" - - if [ ! -d "$BATTERY_PATH" ]; then - # Try BAT1 if BAT0 doesn't exist - BATTERY_PATH="/sys/class/power_supply/BAT1" - if [ ! -d "$BATTERY_PATH" ]; then - exit 0 - fi - fi - - CAPACITY=$(cat "$BATTERY_PATH/capacity") - STATUS=$(cat "$BATTERY_PATH/status") - - # Critical threshold (5%) - if [ "$CAPACITY" -le 5 ] && [ "$STATUS" != "Charging" ]; then - ${pkgs.libnotify}/bin/notify-send -u critical "Battery Critical" "Battery level: $CAPACITY%\nPlease plug in charger immediately!" - # Low threshold (15%) - elif [ "$CAPACITY" -le 15 ] && [ "$STATUS" != "Charging" ]; then - ${pkgs.libnotify}/bin/notify-send -u normal "Battery Low" "Battery level: $CAPACITY%\nConsider plugging in charger soon." - fi - ''; - -in { - home.packages = [ batteryNotify ]; - - services.dunst = { - enable = true; - - settings = { - global = { - width = "(200,300)"; - height = "(0,150)"; - offset = "(30,50)"; - origin = "bottom-right"; - transparency = 10; - frame_width = 2; - corner_radius = 8; - gap_size = 5; - }; - - # Let stylix handle color styling - # urgency_low = { - # background = vars.colors.background; - # foreground = vars.colors.foreground; - # timeout = 8; - # }; - - # urgency_normal = { - # background = vars.colors.background; - # foreground = vars.colors.foreground; - # frame_color = vars.colors.accent; - # timeout = 10; - # }; - - urgency_critical = { - # background = vars.colors.background; - # foreground = vars.colors.foreground; - # frame_color = vars.colors.alert; - timeout = 0; # Don't auto-dismiss critical notifications - }; - }; - }; - - # Systemd service to check battery periodically - systemd.user.services.battery-notify = { - Unit = { - Description = "Battery level notification service"; - }; - - Service = { - Type = "oneshot"; - ExecStart = "${batteryNotify}/bin/battery-notify"; - }; - }; - - # Timer to run battery check every 2 minutes - systemd.user.timers.battery-notify = { - Unit = { - Description = "Battery level notification timer"; - }; - - Timer = { - OnBootSec = "1min"; - OnUnitActiveSec = "2min"; - }; - - Install = { - WantedBy = [ "timers.target" ]; - }; - }; -} diff --git a/home/rices/nord-blue/fastfetch.nix b/home/rices/nord-blue/fastfetch.nix deleted file mode 100644 index 700ae80..0000000 --- a/home/rices/nord-blue/fastfetch.nix +++ /dev/null @@ -1,24 +0,0 @@ -{...}: { - programs.fastfetch = { - enable = true; - settings = { - logo = { - type = "builtin"; - source = "nixos_small"; - }; - display.separator = " "; - modules = [ - "title" - "os" - "kernel" - "uptime" - "packages" - "shell" - "terminal" - "cpu" - "memory" - "disk" - ]; - }; - }; -} diff --git a/home/rices/nord-blue/helix.nix b/home/rices/nord-blue/helix.nix deleted file mode 100644 index eb893ee..0000000 --- a/home/rices/nord-blue/helix.nix +++ /dev/null @@ -1,171 +0,0 @@ -{ - pkgs, - lib, - ... -}: { - programs.helix = { - enable = true; - defaultEditor = false; - settings = { - # Let Stylix handle theming - editor = { - cursor-shape = { - normal = "block"; - insert = "bar"; - select = "underline"; - }; - line-number = "relative"; - bufferline = "multiple"; - color-modes = true; - cursorline = true; - auto-save = { - after-delay.enable = true; - after-delay.timeout = 10000; - }; - auto-format = true; - end-of-line-diagnostics = "hint"; - inline-diagnostics.cursor-line = "hint"; - lsp = { - display-messages = true; - display-inlay-hints = true; - }; - popup-border = "popup"; - statusline.left = [ - "mode" - "spinner" - "spacer" - "version-control" - "file-name" - "diagnostics" - "read-only-indicator" - "file-modification-indicator" - "spacer" - ]; - statusline.right = [ - "workspace-diagnostics" - "register" - "position" - "selections" - "file-encoding" - "file-type" - ]; - idle-timeout = 50; - completion-timeout = 100; - indent-guides = { - render = true; - character = "|"; - skip-levels = 3; - }; - soft-wrap.enable = true; - whitespace = { - render = { - space = "none"; - tab = "all"; - newline = "none"; - }; - characters = { - nbsp = "·"; - tab = "→"; - }; - }; - }; - }; - languages = { - language-server = { - "bash-language-server" = { - command = "${pkgs.bash-language-server}/bin/bash-language-server"; - args = ["start"]; - }; - "superhtml" = { - command = "${pkgs.superhtml}/bin/superhtml"; - }; - "vscode-css-languageserver" = { - command = "${pkgs.vscode-css-languageserver}/bin/vscode-css-languageserver"; - }; - "rust-analyzer" = { - command = "${pkgs.rust-analyzer}/bin/rust-analyzer"; - }; - "pyright" = { - command = "${pkgs.pyright}/bin/pyright"; - }; - "nil" = { - command = "${pkgs.nil}/bin/nil"; - }; - "texlab" = { - command = "${pkgs.texlab}/bin/texlab"; - }; - texlab.config.texlab = { - build = { - onSave = true; - forwardSearchAfter = true; - }; - chktext.onEdit = true; - forwardSearch = { - executable = "zathura"; - args = ["--synctex-forward" "%l:1:%f" "%p"]; - }; - }; - "marksman" = { - command = "${pkgs.marksman}/bin/marksman"; - }; - }; - language = [ - { - name = "bash"; - language-servers = ["bash-language-server"]; - auto-format = true; - } - { - name = "html"; - language-servers = ["superhtml"]; - auto-format = true; - } - { - name = "css"; - language-servers = ["vscode-css-languageserver"]; - auto-format = true; - } - { - name = "rust"; - language-servers = ["rust-analyzer"]; - auto-format = true; - } - { - name = "python"; - language-servers = ["pyright"]; - auto-format = true; - } - { - name = "nix"; - language-servers = ["nil"]; - auto-format = true; - } - { - name = "latex"; - language-servers = ["texlab"]; - auto-format = true; - } - { - name = "markdown"; - language-servers = ["marksman"]; - auto-format = true; - } - ]; - }; - }; - - home.packages = with pkgs; [ - zathura - ripgrep - fd - bash-language-server - superhtml - vscode-css-languageserver - rust-analyzer - llvmPackages_latest.lldb - pyright - nil - texlab - marksman - ]; -} diff --git a/home/rices/nord-blue/home.nix b/home/rices/nord-blue/home.nix deleted file mode 100644 index cb2090c..0000000 --- a/home/rices/nord-blue/home.nix +++ /dev/null @@ -1,11 +0,0 @@ -{...}: { - imports = [ - ./alacritty.nix - ./i3.nix - ./nvim.nix - ./helix.nix - ./picom.nix - ./fastfetch.nix - ./dunst.nix - ]; -} diff --git a/home/rices/nord-blue/i3.nix b/home/rices/nord-blue/i3.nix deleted file mode 100644 index 643430b..0000000 --- a/home/rices/nord-blue/i3.nix +++ /dev/null @@ -1,111 +0,0 @@ -{ - pkgs, - lib, - ... -}: let - vars = import ./variables.nix; - mod = "Mod4"; - - lock-screen = pkgs.writeShellScriptBin "lock-screen" '' - #!/usr/bin/env sh - set -eu - WALL="''${1:-$HOME/Pictures/wallpaper.png}" - TMP="/tmp/lockscreen.png" - RES=$(xrandr | awk '/\*/ {print $1; exit}') - magick "$WALL" -resize "''${RES}^" -gravity center -extent "$RES" "$TMP" - i3lock -i "$TMP" - ''; - - app-launcher = pkgs.writeShellScriptBin "app-launcher" '' - #!/usr/bin/env sh - BG='${vars.colors.background}' - FG='${vars.colors.foreground}' - ACCENT='${vars.colors.accent}' - TEXT='${vars.colors.text}' - dmenu_run -fn 'JetBrains Mono-12' -nb "$BG" -nf "$FG" -sb "$ACCENT" -sf "$TEXT" - ''; -in { - xsession.windowManager.i3 = { - enable = true; - config = { - modifier = mod; - bars = []; - - window = { - titlebar = false; - border = 3; - }; - - # Colors handled by Stylix - - startup = [ - {command = "sh -c 'feh --bg-scale ~/Pictures/wallpaper.png'";} - ]; - - keybindings = lib.mkOptionDefault { - "${mod}+Return" = "exec ${pkgs.alacritty}/bin/alacritty"; - "${mod}+d" = "exec ${app-launcher}/bin/app-launcher"; - "${mod}+m" = "exec ${app-launcher}/bin/app-launcher"; - "${mod}+Shift+m" = "exec alacritty -e nnn"; - "${mod}+n" = "exec firefox"; - "${mod}+q" = "kill"; - "${mod}+Ctrl+l" = "exec ${lock-screen}/bin/lock-screen"; - "${mod}+Shift+r" = "restart"; - "${mod}+Ctrl+Shift+e" = "exec sh -c 'i3-msg exit'"; - "${mod}+Shift+s" = "exec flameshot gui"; - - # Focus (vim bindings) - "${mod}+h" = "focus left"; - "${mod}+j" = "focus down"; - "${mod}+k" = "focus up"; - "${mod}+l" = "focus right"; - - # Focus (arrow keys) - "${mod}+Left" = "focus left"; - "${mod}+Down" = "focus down"; - "${mod}+Up" = "focus up"; - "${mod}+Right" = "focus right"; - - # Move (vim bindings) - "${mod}+Shift+h" = "move left"; - "${mod}+Shift+j" = "move down"; - "${mod}+Shift+k" = "move up"; - "${mod}+Shift+l" = "move right"; - - # Move (arrow keys) - "${mod}+Shift+Left" = "move left"; - "${mod}+Shift+Down" = "move down"; - "${mod}+Shift+Up" = "move up"; - "${mod}+Shift+Right" = "move right"; - - # Volume - "XF86AudioRaiseVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"; - "XF86AudioLowerVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"; - "XF86AudioMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; - "XF86AudioMicMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; - - # Brightness - "XF86MonBrightnessUp" = "exec brightnessctl set 5%+"; - "XF86MonBrightnessDown" = "exec brightnessctl set 5%-"; - }; - }; - - extraConfig = '' - smart_borders on - - # Remove borders from notification windows - for_window [class="^Dunst$"] border none - for_window [class="^dunst$"] border none - ''; - }; - - home.packages = with pkgs; [ - dmenu - i3lock - imagemagick - polybar - alacritty - feh - nnn - ]; -} diff --git a/home/rices/nord-blue/nvim.nix b/home/rices/nord-blue/nvim.nix deleted file mode 100644 index 9677c57..0000000 --- a/home/rices/nord-blue/nvim.nix +++ /dev/null @@ -1,279 +0,0 @@ -{pkgs, ...}: { - home.packages = with pkgs; [ - zathura - ripgrep - fd - lazygit - stylua - alejandra - black - shfmt - - # Language servers - lua-language-server - nil - rust-analyzer - pyright - bash-language-server - texlab - ]; - - programs.neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - - plugins = with pkgs.vimPlugins; [ - # UI - catppuccin-nvim - nvim-web-devicons - which-key-nvim - gitsigns-nvim - - # Syntax - (nvim-treesitter.withPlugins (p: [ - p.lua - p.nix - p.rust - p.python - p.bash - p.latex - p.c - ])) - - # LSP - nvim-lspconfig - - # Completion / snippets - nvim-cmp - cmp-nvim-lsp - cmp_luasnip - luasnip - friendly-snippets - nvim-autopairs - - # Formatting - conform-nvim - comment-nvim - - # Navigation - telescope-nvim - plenary-nvim - nvim-tree-lua - - # Terminal - toggleterm-nvim - - # Writing - vimtex - orgmode - - # Start screen - { - plugin = vim-startify; - config = "let g:startify_change_to_vcs_root = 0"; - } - ]; - - extraLuaConfig = '' - ------------------------------------------------- - -- LEADER - ------------------------------------------------- - vim.g.mapleader = " " - - ------------------------------------------------- - -- BASIC OPTIONS - ------------------------------------------------- - vim.opt.number = true - vim.opt.relativenumber = true - vim.opt.clipboard = "unnamedplus" - vim.opt.showtabline = 2 - vim.o.timeout = true - vim.o.timeoutlen = 300 - - ------------------------------------------------- - -- THEME - ------------------------------------------------- - require("catppuccin").setup({ - flavour = "mocha", - }) - vim.cmd.colorscheme("catppuccin") - - ------------------------------------------------- - -- GITSIGNS - ------------------------------------------------- - require("gitsigns").setup() - - ------------------------------------------------- - -- TREESITTER - ------------------------------------------------- - require("nvim-treesitter.configs").setup({ - highlight = { enable = true }, - indent = { enable = true }, - }) - - vim.opt.foldmethod = "expr" - vim.opt.foldexpr = "nvim_treesitter#foldexpr()" - vim.opt.foldenable = false - - ------------------------------------------------- - -- SNIPPETS - ------------------------------------------------- - require("luasnip.loaders.from_vscode").lazy_load() - - ------------------------------------------------- - -- COMPLETION - ------------------------------------------------- - local cmp = require("cmp") - local luasnip = require("luasnip") - - cmp.setup({ - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - mapping = cmp.mapping.preset.insert({ - ["<C-Space>"] = cmp.mapping.complete(), - ["<CR>"] = cmp.mapping.confirm({ select = true }), - }), - sources = { - { name = "nvim_lsp" }, - { name = "luasnip" }, - }, - }) - - require("nvim-autopairs").setup({}) - - ------------------------------------------------- - -- LSP - ------------------------------------------------- - local capabilities = require("cmp_nvim_lsp").default_capabilities() - - local servers = { - "lua_ls", - "nil_ls", - "rust_analyzer", - "pyright", - "bashls", - "texlab", - } - - for _, server in ipairs(servers) do - vim.lsp.config(server, { - capabilities = capabilities - }) - vim.lsp.enable(server) - end - - ------------------------------------------------- - -- LSP KEYMAPS - ------------------------------------------------- - vim.keymap.set("n", "<leader>ld", vim.lsp.buf.definition) - vim.keymap.set("n", "<leader>lD", vim.lsp.buf.declaration) - vim.keymap.set("n", "<leader>li", vim.lsp.buf.implementation) - vim.keymap.set("n", "<leader>lr", vim.lsp.buf.references) - vim.keymap.set("n", "lh", vim.lsp.buf.hover) - vim.keymap.set("n", "ln", vim.lsp.buf.rename) - vim.keymap.set("n", "la", vim.lsp.buf.code_action) - vim.keymap.set("n", "lf", function() vim.lsp.buf.format() end) - - ------------------------------------------------- - -- DIAGNOSTICS - ------------------------------------------------- - vim.keymap.set("n", "lj", vim.diagnostic.goto_next) - vim.keymap.set("n", "lk", vim.diagnostic.goto_prev) - vim.keymap.set("n", "le", vim.diagnostic.open_float) - - ------------------------------------------------- - -- FORMATTER - ------------------------------------------------- - require("conform").setup({ - format_on_save = { - timeout_ms = 500, - lsp_format = "fallback", - }, - formatters_by_ft = { - lua = { "stylua" }, - nix = { "alejandra" }, - rust = { "rustfmt" }, - python = { "black" }, - bash = { "shfmt" }, - }, - }) - - require("Comment").setup() - - ------------------------------------------------- - -- TELESCOPE - ------------------------------------------------- - local builtin = require("telescope.builtin") - - require("telescope").setup({ - defaults = { - layout_strategy = "horizontal", - sorting_strategy = "ascending", - file_ignore_patterns = { "node_modules", ".git/" }, - }, - }) - - vim.keymap.set("n", "<leader><leader>", builtin.find_files) - vim.keymap.set("n", "<leader>fg", builtin.live_grep) - vim.keymap.set("n", "<leader>fb", builtin.buffers) - - ------------------------------------------------- - -- WHICH KEY - ------------------------------------------------- - local wk = require("which-key") - wk.add({ - { "<leader>l", desc = "LSP" } - }) - - ------------------------------------------------- - -- NVIM TREE - ------------------------------------------------- - require("nvim-tree").setup({}) - vim.keymap.set("n", "<leader>e", "<cmd>NvimTreeToggle<CR>") - - ------------------------------------------------- - -- TERMINAL - ------------------------------------------------- - require("toggleterm").setup({ - direction = "float", - }) - - local Terminal = require("toggleterm.terminal").Terminal - - local lazygit = Terminal:new({ - cmd = "lazygit", - hidden = true, - direction = "float", - }) - - vim.keymap.set("n", "<leader>gg", function() - lazygit:toggle() - end) - - ------------------------------------------------- - -- ORGMODE - ------------------------------------------------- - local projects = { - "~/Documents/2_Writing/0_SOC/**/*.org", - "~/Documents/2_Writing/2_Notes/**/*.org", - "~/Documents/1_Projects/6_CRC-Altura/**/*.org", - "~/ORG/**/*.org" - } - - require("orgmode").setup({ - org_agenda_files = projects, - org_default_notes_file = "~/INBOX.org" - }) - - ------------------------------------------------- - -- VIMTEX - ------------------------------------------------- - vim.g.vimtex_view_method = "zathura" - ''; - }; -} diff --git a/home/rices/nord-blue/picom.nix b/home/rices/nord-blue/picom.nix deleted file mode 100644 index aba6aa4..0000000 --- a/home/rices/nord-blue/picom.nix +++ /dev/null @@ -1,60 +0,0 @@ -{pkgs, ...}: { - services.picom = { - enable = true; - package = pkgs.picom-pijulius; - - settings = { - backend = "glx"; - vsync = true; - - # Opacity - inactive-opacity = 0.9; - active-opacity = 1.0; - - # Fading - fading = true; - fade-delta = 5; - fade-in-step = 0.09; - fade-out-step = 0.09; - - # Shadows - shadow = true; - shadow-radius = 15; - shadow-opacity = 0.5; - shadow-offset-x = 12; - shadow-offset-y = 12; - shadow-exclude = [ - "class_g = 'i3-frame'" - "window_type = 'dock'" - "window_type = 'desktop'" - "window_type = 'notification'" - "name = 'dmenu'" - "class_g = 'dmenu'" - "class_g = 'Dunst'" - "class_g = 'dunst'" - ]; - - # Rounded corners - corner-radius = 15; - round-borders = 1; - rounded-corners-exclude = [ - "class_g = 'i3-frame'" - "window_type = 'dock'" - "window_type = 'notification'" - "class_g = 'Dunst'" - "class_g = 'dunst'" - ]; - - # Animations - animations = true; - animation-stiffness = 25; - animation-dampening = 1; - animation-window-mass = 0.01; - animation-for-open-window = "zoom"; - animation-for-unmap-window = "slide-up"; - animation-for-transient-window = "zoom"; - animation-for-move-window = "slide"; - animation-for-resize-window = "stretch"; - }; - }; -} diff --git a/home/rices/nord-blue/system.nix b/home/rices/nord-blue/system.nix deleted file mode 100644 index ac7e0ab..0000000 --- a/home/rices/nord-blue/system.nix +++ /dev/null @@ -1,83 +0,0 @@ -{pkgs, ...}: { - # Desktop environment - i3 window manager - services.xserver = { - enable = true; - windowManager.i3.enable = true; - xkb = { - layout = "cz"; - options = "eurosign:e,caps:escape"; - }; - }; - - services.picom.enable = true; - - # Stylix configuration - stylix = { - enable = true; - autoEnable = true; - - base16Scheme = { - base00 = "2D333F"; # background - base01 = "3B4252"; # lighter background - base02 = "434C5E"; # selection background - base03 = "4C566A"; # comments - base04 = "D8DEE9"; # dark foreground - base05 = "C6D0F5"; # foreground - base06 = "E5E9F0"; # light foreground - base07 = "ECEFF4"; # lightest foreground - base08 = "BF616A"; # red - base09 = "D5A18E"; # orange/tan - base0A = "EBCB8B"; # yellow - base0B = "A3BE8C"; # green - base0C = "88C0D0"; # cyan - base0D = "82A3C0"; # blue (accent) - base0E = "B48EAD"; # purple - base0F = "5E81AC"; # dark blue - }; - - image = pkgs.fetchurl { - url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/master/wallpapers/nix-wallpaper-simple-blue.png"; - sha256 = "sha256-utrcjzfeJoFOpUbFY2eIUNCKy5rjLt57xIoUUssJmdI="; - }; - - fonts = { - monospace = { - package = pkgs.nerd-fonts.jetbrains-mono; - name = "JetBrainsMono Nerd Font"; - }; - sansSerif = { - package = pkgs.noto-fonts; - name = "Noto Sans"; - }; - serif = { - package = pkgs.noto-fonts; - name = "Noto Serif"; - }; - emoji = { - package = pkgs.noto-fonts-color-emoji; - name = "Noto Color Emoji"; - }; - sizes = { - terminal = 10; - applications = 11; - desktop = 11; - }; - }; - - cursor = { - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Classic"; - size = 24; - }; - - opacity = { - terminal = 0.95; - applications = 1.0; - desktop = 1.0; - popups = 0.95; - }; - - polarity = "dark"; - targets.nixos-icons.enable = false; - }; -} diff --git a/home/rices/nord-blue/variables.nix b/home/rices/nord-blue/variables.nix deleted file mode 100644 index cc221ca..0000000 --- a/home/rices/nord-blue/variables.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - colors = { - background = "#2D333F"; - accent = "#82A3C0"; - foreground = "#C6D0F5"; - text = "#D5A18E"; - alert = "#BF616A"; # Nord red for critical alerts - }; - - wallpaper = "~/Pictures/wallpaper.png"; -} diff --git a/home/rices/nord-blue/wallpapers/wave-minimal.png b/home/rices/nord-blue/wallpapers/wave-minimal.png Binary files differdeleted file mode 100644 index 5d322d4..0000000 --- a/home/rices/nord-blue/wallpapers/wave-minimal.png +++ /dev/null diff --git a/home/rices/original/default.nix b/home/rices/original/default.nix deleted file mode 100644 index 6b7865d..0000000 --- a/home/rices/original/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ - system = import ./system.nix; - home = import ./home.nix; -} diff --git a/home/rices/original/dunst.nix b/home/rices/original/dunst.nix deleted file mode 100644 index 9978d38..0000000 --- a/home/rices/original/dunst.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ config, pkgs, lib, ... }: - -let - vars = import ./variables.nix; -in { - services.dunst = { - enable = true; - - settings = { - global = { - width = "(200,300)"; - height = "(0,150)"; - offset = "(30,50)"; - origin = "bottom-right"; - transparency = 10; - frame_width = 0; - font = "Fira Code 10"; - }; - - urgency_low = { - background = vars.colors.background; - foreground = vars.colors.foreground; - timeout = 8; - }; - - urgency_normal = { - background = vars.colors.background; - foreground = vars.colors.foreground; - frame-size = "0"; - timeout = 10; - }; - - urgency_critical = { - background = vars.colors.background; - foreground = vars.colors.foreground; - frame-size = "5"; - frame-color = vars.colors.alert; - }; - }; - }; -} diff --git a/home/rices/original/home.nix b/home/rices/original/home.nix deleted file mode 100644 index cb2b4ca..0000000 --- a/home/rices/original/home.nix +++ /dev/null @@ -1,14 +0,0 @@ -{...}: { - imports = [ - ./dunst.nix - ./i3.nix - ./kitty.nix - ./neovim.nix - ./nnn.nix - ./picom.nix - ./polybar.nix - ./rofi.nix - ./scripts.nix - ./xdg.nix - ]; -} diff --git a/home/rices/original/i3.nix b/home/rices/original/i3.nix deleted file mode 100644 index 0982fcb..0000000 --- a/home/rices/original/i3.nix +++ /dev/null @@ -1,130 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - xsession.windowManager.i3 = { - enable = true; - config.bars = []; - - extraConfig = '' - # i3 config - set $mod Mod4 - font pango:Fira Code 10 - - exec --no-startup-id dex-autostart --autostart --environment i3 - exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock-fancy-rapid 5 3 --nofork - exec --no-startup-id nm-applet - exec --no-startup-id blueman-applet - exec_always --no-startup-id sh -c "sleep 1 && picom --config ~/.config/picom/picom.conf" - exec --no-startup-id -merge ~/.Xresources - exec_always --no-startup-id feh --bg-scale ~/Pictures/wallpapers/vox.jpg - exec_always --no-startup-id sh -c "killall -q polybar; sleep 1; polybar example --config=~/.config/polybar/config.ini &" - exec_always --no-startup-id polybar-hide-on-fullscreen - exec --no-startup-id flameshot - - gaps top 60 - - bindsym XF86MonBrightnessDown exec brightnessctl set 10%- - bindsym XF86MonBrightnessUp exec brightnessctl set +10% - bindsym XF86AudioMute exec amixer set Master toggle - bindsym XF86AudioLowerVolume exec amixer set Master 5%- - bindsym XF86AudioRaiseVolume exec amixer set Master 5%+ - bindsym XF86AudioMicMute exec amixer set Capture toggle - - floating_modifier $mod - - bindsym $mod+Shift+s exec flameshot gui - bindsym $mod+Return exec kitty - bindsym $mod+Control+l exec --no-startup-id i3lock-fancy-rapid 5 3 - bindsym $mod+m exec rofi -show drun - bindsym $mod+Shift+m exec kitty nnn - bindsym $mod+n exec firefox - bindsym $mod+Shift+q kill - - bindsym $mod+h focus left - bindsym $mod+j focus down - bindsym $mod+k focus up - bindsym $mod+l focus right - - bindsym $mod+Shift+h move left - bindsym $mod+Shift+j move down - bindsym $mod+Shift+k move up - bindsym $mod+Shift+l move right - - bindsym $mod+Control+h split h - bindsym $mod+Control+v split v - bindsym $mod+f fullscreen toggle - bindsym $mod+s layout stacking - bindsym $mod+w layout tabbed - bindsym $mod+e layout toggle split - bindsym $mod+Shift+space floating toggle - bindsym $mod+space focus mode_toggle - bindsym $mod+a focus parent - - set $ws1 "1" - set $ws2 "2" - set $ws3 "3" - set $ws4 "4" - set $ws5 "5" - set $ws6 "6" - set $ws7 "7" - set $ws8 "8" - set $ws9 "9" - set $ws10 "10" - - bindsym $mod+plus workspace number $ws1 - bindsym $mod+ecaron workspace number $ws2 - bindsym $mod+scaron workspace number $ws3 - bindsym $mod+ccaron workspace number $ws4 - bindsym $mod+rcaron workspace number $ws5 - bindsym $mod+zcaron workspace number $ws6 - bindsym $mod+yacute workspace number $ws7 - bindsym $mod+aacute workspace number $ws8 - bindsym $mod+iacute workspace number $ws9 - bindsym $mod+eacute workspace number $ws10 - - bindsym $mod+Shift+plus move container to workspace number $ws1 - bindsym $mod+Shift+ecaron move container to workspace number $ws2 - bindsym $mod+Shift+scaron move container to workspace number $ws3 - bindsym $mod+Shift+ccaron move container to workspace number $ws4 - bindsym $mod+Shift+rcaron move container to workspace number $ws5 - bindsym $mod+Shift+zcaron move container to workspace number $ws6 - bindsym $mod+Shift+yacute move container to workspace number $ws7 - bindsym $mod+Shift+aacute move container to workspace number $ws8 - bindsym $mod+Shift+iacute move container to workspace number $ws9 - bindsym $mod+Shift+eacute move container to workspace number $ws10 - - bindsym $mod+Shift+c reload - bindsym $mod+Shift+r restart - bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" - - mode "resize" { - bindsym h resize shrink width 5 px or 5 ppt - bindsym j resize grow height 5 px or 5 ppt - bindsym k resize shrink height 5 px or 5 ppt - bindsym l resize grow width 5 px or 5 ppt - - bindsym Left resize shrink width 5 px or 5 ppt - bindsym Down resize grow height 5 px or 5 ppt - bindsym Up resize shrink height 5 px or 5 ppt - bindsym Right resize grow width 5 px or 5 ppt - - bindsym Return mode "default" - bindsym Escape mode "default" - bindsym $mod+r mode "default" - } - - bindsym $mod+r mode "resize" - - client.focused #FFFFFF #FFFFFF #FFFFFF #FFFFFF #b12cbf - client.focused_inactive #8C8C8C #4C4C4C #FFFFFF #4C4C4C #FFFFFF - client.unfocused #4C4C4C #222222 #888888 #292D2E #500096 - client.urgent #EC69A0 #DB3279 #FFFFFF #DB3279 #DB3279 - client.placeholder #000000 #0C0C0C #FFFFFF #000000 #FFFFFF - client.background #FFFFFF - - default_border pixel 3 - default_floating_border pixel 3 - hide_edge_borders smart - ''; - }; -} diff --git a/home/rices/original/kitty.nix b/home/rices/original/kitty.nix deleted file mode 100644 index 580d765..0000000 --- a/home/rices/original/kitty.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - programs.kitty = { - enable = true; - extraConfig = '' - confirm_os_window_close 0 - font_family Fira Code - bold_font Fira Code Bold - italic_font Fira Code Light - shell_integration no-cursor - cursor_shape beam - window_padding_width 7 - window_padding_height 10 - scrollback_lines 3000 - font_size 11 - map ctrl+shift+plus change_font_size all +1.0 - map ctrl+shift+minus change_font_size all -1.0 - background_opacity 0.7 - - cursor #AC82E9 - selection_background #d8cab8 - selection_foreground #141216 - background #141216 - foreground #d8cab8 - - color0 #2b2135 - color8 #92fcfa - color1 #fc4649 - color9 #fc4649 - color2 #c4e881 - color10 #c4e881 - color3 #AC82E9 - color11 #AC82E9 - color4 #7b91fc - color12 #7b91fc - color5 #f3fc7b - color13 #f3fc7b - color6 #8F56E1 - color14 #8F56E1 - color7 #fc92fc - color15 #d8cab8 - ''; - }; -} diff --git a/home/rices/original/neovim.nix b/home/rices/original/neovim.nix deleted file mode 100644 index 54a9b83..0000000 --- a/home/rices/original/neovim.nix +++ /dev/null @@ -1,100 +0,0 @@ -{ pkgs, ... }: - -{ - programs.neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - withNodeJs = true; - - plugins = []; - - extraLuaConfig = '' - -- LazyVim bootstrap - local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" - if not vim.loop.fs_stat(lazypath) then - vim.fn.system({ - "git", "clone", "--filter=blob:none", - "https://github.com/folke/lazy.nvim.git", - "--branch=stable", lazypath, - }) - end - vim.opt.rtp:prepend(lazypath) - - require("lazy").setup({ - spec = { - { "LazyVim/LazyVim", import = "lazyvim.plugins" }, - { import = "lazyvim.plugins.extras.lang.tex" }, - { import = "lazyvim.plugins.extras.lang.markdown" }, - { import = "lazyvim.plugins.extras.ui.mini-animate" }, - { import = "lazyvim.plugins.extras.lang.typescript" }, - { import = "lazyvim.plugins.extras.lang.python" }, - { import = "lazyvim.plugins.extras.lang.rust" }, - { import = "lazyvim.plugins.extras.lang.nix" }, - - { - "lervag/vimtex", - lazy = false, - init = function() - vim.g.vimtex_view_method = "zathura" - end - }, - - { - "MeanderingProgrammer/render-markdown.nvim", - opts = { - enabled = true, - file_types = { "markdown", "rmd" }, - colorscheme = "default", - }, - dependencies = { - "nvim-treesitter/nvim-treesitter", - "nvim-tree/nvim-web-devicons", - }, - }, - - { "mracos/mermaid.vim", ft = { "mermaid" } }, - }, - - defaults = { lazy = false, version = false }, - checker = { enabled = true }, - - performance = { - rtp = { - disabled_plugins = { - "gzip", "tarPlugin", "tohtml", - "tutor", "zipPlugin", - }, - }, - }, - }) - - -- LaTeX wrapping - vim.api.nvim_create_autocmd("FileType", { - pattern = "tex", - callback = function() - vim.opt_local.wrap = true - vim.opt_local.linebreak = true - vim.opt_local.breakindent = true - vim.opt_local.breakindentopt = "shift:2" - vim.opt_local.textwidth = 0 - end, - }) - - -- Disable diagnostics in markdown - vim.api.nvim_create_autocmd("FileType", { - pattern = "markdown", - callback = function() - vim.diagnostic.disable(0) - end, - }) - - -- Nix LSP - local lspconfig = require("lspconfig") - lspconfig.nil_ls.setup({ cmd = { "nil" } }) - - vim.opt.clipboard = "unnamedplus" - ''; - }; -} diff --git a/home/rices/original/nnn.nix b/home/rices/original/nnn.nix deleted file mode 100644 index fd2046f..0000000 --- a/home/rices/original/nnn.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: -{ - programs.nnn = { - enable = true; - package = pkgs.nnn.override { withNerdIcons = true; }; - }; -} diff --git a/home/rices/original/picom.nix b/home/rices/original/picom.nix deleted file mode 100644 index a96f158..0000000 --- a/home/rices/original/picom.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - services.picom = { - enable = true; - - package = pkgs.picom-pijulius; - - backend = "glx"; - vSync = true; - inactiveOpacity = 0.9; - activeOpacity = 1.0; - fade = true; - fadeSteps = [ 0.09 0.09 ]; - fadeDelta = 5; - shadow = true; - shadowOffsets = [ 12 12 ]; - shadowOpacity = 0.5; - shadowExclude = [ - "class_g = 'Polybar'" - "name = 'Polybar'" - ]; - settings = { - corner-radius = 15; - }; - }; -} diff --git a/home/rices/original/polybar.nix b/home/rices/original/polybar.nix deleted file mode 100644 index dcfc8ec..0000000 --- a/home/rices/original/polybar.nix +++ /dev/null @@ -1,172 +0,0 @@ -{ config, pkgs, lib, ... }: - -let - vars = import ./variables.nix; -in { - services.polybar = { - enable = true; - - extraConfig = '' - [bar/example] - width = 98% - height = 30pt - radius = 15 - offset-x = 1% - offset-y = 1% - override-redirect = true - fixed-center = true - enable-ipc = true - - background = ${vars.colors.background} - foreground = ${vars.colors.foreground} - - line-size = 4pt - border-size = Opt - border-color = #00000000 - - padding-left = 1 - padding-right = 1 - module-margin = 1 - - separator = | - separator-foreground = ${vars.colors.disabled} - - font-0 = fira code;2 - - modules-left = xworkspaces spotify spotify-prev spotify-play-pause spotify-next - modules-center = date - modules-right = filesystem memory cpu pulseaudio-devices wlan xkeyboard battery - - [module/systray] - type = internal/tray - format-margin = 8pt - tray-spacing = 16pt - - [module/xworkspaces] - type = internal/xworkspaces - label-active = %name% - label-active-background = ${vars.colors.background-alt} - label-active-underline = ${vars.colors.primary} - label-active-padding = 1 - label-occupied = %name% - label-occupied-padding = 1 - label-urgent = %name% - label-urgent-background = ${vars.colors.alert} - label-urgent-padding = 1 - label-empty = %name% - label-empty-foreground = ${vars.colors.disabled} - label-empty-padding = 1 - - [module/xwindow] - type = internal/xwindow - label = %title:0:60:...% - - [module/filesystem] - type = internal/fs - interval = 25 - mount-0 = / - label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%% - label-unmounted = %mountpoint% not mounted - label-unmounted-foreground = ${vars.colors.disabled} - - [module/pulseaudio] - type = internal/pulseaudio - format-volume-prefix = "VOL " - format-volume-prefix-foreground = ${vars.colors.primary} - format-volume = <label-volume> - label-volume = %percentage%% - label-muted = muted - label-muted-foreground = ${vars.colors.disabled} - - [module/xkeyboard] - type = internal/xkeyboard - blacklist-0 = num lock - label-layout = %layout% - label-layout-foreground = ${vars.colors.primary} - label-indicator-padding = 2 - label-indicator-margin = 1 - label-indicator-foreground = ${vars.colors.background} - label-indicator-background = ${vars.colors.secondary} - - [module/memory] - type = internal/memory - interval = 2 - format-prefix = "RAM " - format-prefix-foreground = ${vars.colors.primary} - label = %percentage_used:2%% - - [module/cpu] - type = internal/cpu - interval = 2 - format-prefix = "CPU " - format-prefix-foreground = ${vars.colors.primary} - label = %percentage:2%% - - [network-base] - type = internal/network - interval = 5 - format-connected = <label-connected> - format-disconnected = <label-disconnected> - label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected - - [module/wlan] - inherit = network-base - interface-type = wireless - label-connected = %{F#F0C674}%ifname%%{F-} %essid% - - [module/eth] - inherit = network-base - interface-type = wired - label-connected = %{F#F0C674}%ifname%%{F-} - - [module/date] - type = internal/date - interval = 1 - date = %H:%M - date-alt = %Y-%m-%d %H:%M:%S - label = %date% - label-foreground = ${vars.colors.primary} - - [settings] - screenchange-reload = true - pseudo-transparency = true - - [module/battery] - type = internal/battery - full-at = 100 - low-at = 15 - battery = BAT0 - adapter = ADP1 - poll-interval = 5 - - [module/spotify] - type = custom/script - tail = true - interval = 1 - format-prefix = "♫" - format = <label> - exec = get-spotify-status - - [module/spotify-prev] - type = custom/script - exec = echo "◀◀" - format = <label> - click-left = playerctl previous -p spotify - - [module/spotify-play-pause] - type = custom/ipc - hook-0 = echo "▶" - hook-1 = echo "▶" - initial = 1 - click-left = playerctl play-pause -p spotify - - [module/spotify-next] - type = custom/script - exec = echo "▶▶" - format = <label> - click-left = playerctl next -p spotify - ''; - - script = "polybar example --config=~/.config/polybar/config.ini &"; - }; -} diff --git a/home/rices/original/rofi.nix b/home/rices/original/rofi.nix deleted file mode 100644 index a266396..0000000 --- a/home/rices/original/rofi.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ pkgs, ... }: - -{ - programs.rofi = { - enable = true; - location = "center"; - cycle = true; - theme = "purple"; - terminal = "${pkgs.kitty}/bin/kitty"; - modes = [ "drun" "ssh" "emoji" "calc" ]; - plugins = with pkgs; [ rofi-emoji rofi-calc ]; - }; -} diff --git a/home/rices/original/scripts.nix b/home/rices/original/scripts.nix deleted file mode 100644 index 5bf8c6b..0000000 --- a/home/rices/original/scripts.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ pkgs, ... }: - -{ - home.packages = [ - (pkgs.writeShellScriptBin "get-spotify-status" '' - PARENT_BAR="example" - PLAYER="playerctld" - FORMAT="{{ title }} - {{ artist }}" - - PLAYERCTL_STATUS=$(playerctl --player=$PLAYER status 2>/dev/null) - - if [ "$PLAYERCTL_STATUS" = "Playing" ]; then - playerctl --player=$PLAYER metadata --format "$FORMAT" - elif [ "$PLAYERCTL_STATUS" = "Paused" ]; then - echo "Paused" - else - echo "No music" - fi - '') - - (pkgs.writeShellScriptBin "polybar-hide-on-fullscreen" '' - i3-msg -t subscribe -m '[ "window" ]' | while read -r event; do - if echo "$event" | grep -q '"fullscreen_mode":[[:space:]]*1'; then - polybar-msg cmd hide - elif echo "$event" | grep -q '"fullscreen_mode":[[:space:]]*0'; then - polybar-msg cmd show - fi - done - '') - ]; -} diff --git a/home/rices/original/system.nix b/home/rices/original/system.nix deleted file mode 100644 index f49ddd5..0000000 --- a/home/rices/original/system.nix +++ /dev/null @@ -1,83 +0,0 @@ -{pkgs, ...}: { - # Desktop environment - i3 window manager - services.xserver = { - enable = true; - windowManager.i3.enable = true; - xkb = { - layout = "cz"; - options = "eurosign:e,caps:escape"; - }; - }; - - services.picom.enable = true; - - # Stylix configuration - default scheme - stylix = { - enable = true; - autoEnable = true; - - base16Scheme = { - base00 = "2E3440"; - base01 = "3B4252"; - base02 = "434C5E"; - base03 = "4C566A"; - base04 = "D8DEE9"; - base05 = "E5E9F0"; - base06 = "ECEFF4"; - base07 = "8FBCBB"; - base08 = "BF616A"; - base09 = "D08770"; - base0A = "EBCB8B"; - base0B = "A3BE8C"; - base0C = "88C0D0"; - base0D = "81A1C1"; - base0E = "B48EAD"; - base0F = "5E81AC"; - }; - - image = pkgs.fetchurl { - url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/master/wallpapers/nix-wallpaper-simple-blue.png"; - sha256 = "sha256-utrcjzfeJoFOpUbFY2eIUNCKy5rjLt57xIoUUssJmdI="; - }; - - fonts = { - monospace = { - package = pkgs.nerd-fonts.jetbrains-mono; - name = "JetBrainsMono Nerd Font"; - }; - sansSerif = { - package = pkgs.noto-fonts; - name = "Noto Sans"; - }; - serif = { - package = pkgs.noto-fonts; - name = "Noto Serif"; - }; - emoji = { - package = pkgs.noto-fonts-color-emoji; - name = "Noto Color Emoji"; - }; - sizes = { - terminal = 10; - applications = 11; - desktop = 11; - }; - }; - - cursor = { - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Classic"; - size = 24; - }; - - opacity = { - terminal = 0.95; - applications = 1.0; - desktop = 1.0; - popups = 0.95; - }; - - polarity = "dark"; - targets.nixos-icons.enable = false; - }; -} diff --git a/home/rices/original/variables.nix b/home/rices/original/variables.nix deleted file mode 100644 index 7aa70ff..0000000 --- a/home/rices/original/variables.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - colors = { - background = "#1c182d"; - background-alt = "#2b1b3d"; - foreground = "#d0b6fd"; - primary = "#cfb5fd"; - secondary = "#8a78b0"; - accent = "#AC82E9"; - alert = "#7b91fc"; - disabled = "#707880"; - }; - - wallpaper = "~/Pictures/wallpapers/vox.jpg"; -} diff --git a/home/rices/original/xdg.nix b/home/rices/original/xdg.nix deleted file mode 100644 index b1b612e..0000000 --- a/home/rices/original/xdg.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ pkgs, ... }: - -{ - xdg = { - enable = true; - - mimeApps = { - enable = true; - defaultApplications = { - "text/plain" = [ "nvim.desktop" ]; - "text/markdown" = [ "nvim.desktop" ]; - "text/x-markdown" = [ "nvim.desktop" ]; - }; - }; - }; -} diff --git a/home/rices/plasma6/default.nix b/home/rices/plasma6/default.nix deleted file mode 100644 index 6b7865d..0000000 --- a/home/rices/plasma6/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ - system = import ./system.nix; - home = import ./home.nix; -} diff --git a/home/rices/plasma6/home.nix b/home/rices/plasma6/home.nix deleted file mode 100644 index 0dd85ad..0000000 --- a/home/rices/plasma6/home.nix +++ /dev/null @@ -1,4 +0,0 @@ -{...}: { - # Plasma-specific HM configs can go here - # For now, minimal/empty -} diff --git a/home/rices/plasma6/system.nix b/home/rices/plasma6/system.nix deleted file mode 100644 index f195684..0000000 --- a/home/rices/plasma6/system.nix +++ /dev/null @@ -1,93 +0,0 @@ -{pkgs, ...}: let - vars = import ./variables.nix; -in { - # Enable Plasma 6 desktop (ly display manager is enabled in system/services.nix) - services.desktopManager.plasma6.enable = true; - - # X11 configuration - services.xserver = { - enable = true; - xkb = { - layout = "cz"; - options = "eurosign:e,caps:escape"; - }; - }; - - # Exclude unwanted KDE packages - environment.plasma6.excludePackages = with pkgs.kdePackages; [ - elisa # Music player - kdepim-runtime # Akonadi agents - kmahjongg - kmines - konversation # IRC client - kpat # Solitaire - ksudoku - ktorrent - ]; - - # KDE utilities and system packages - environment.systemPackages = with pkgs; [ - # KDE Utilities - kdePackages.kcalc # Calculator - kdePackages.kcharselect # Character map - kdePackages.kclock # Clock app - kdePackages.kcolorchooser # Color picker - kdePackages.ksystemlog # System log viewer - kdiff3 # File/directory comparison tool - - # Hardware/System Utilities - kdePackages.isoimagewriter # Write hybrid ISOs to USB - kdePackages.partitionmanager # Disk and partition management - hardinfo2 # System benchmarks and hardware info - wayland-utils # Wayland diagnostic tools - wl-clipboard # Wayland copy/paste support - ]; - - # Stylix theming - stylix = { - enable = true; - autoEnable = true; - base16Scheme = "${pkgs.base16-schemes}/share/themes/espresso.yaml"; - image = vars.image; - - fonts = { - monospace = { - package = pkgs.dejavu_fonts; - name = "DejaVu Sans Mono"; - }; - sansSerif = { - package = pkgs.dejavu_fonts; - name = "DejaVu Sans"; - }; - serif = { - package = pkgs.dejavu_fonts; - name = "DejaVu Serif"; - }; - emoji = { - package = pkgs.noto-fonts-color-emoji; - name = "Noto Color Emoji"; - }; - sizes = { - terminal = 11; - applications = 11; - desktop = 11; - }; - }; - - cursor = { - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Classic"; - size = 24; - }; - - opacity = { - terminal = 0.95; - applications = 1.0; - desktop = 1.0; - popups = 0.95; - }; - - polarity = "dark"; - targets.nixos-icons.enable = false; - }; -} diff --git a/home/rices/plasma6/variables.nix b/home/rices/plasma6/variables.nix deleted file mode 100644 index 4c13af7..0000000 --- a/home/rices/plasma6/variables.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - image = ../../../assets/wallpapers/insert_coin.jpeg; -} diff --git a/home/rices/schrottkatze/README.md b/home/rices/schrottkatze/README.md deleted file mode 100644 index 9442c65..0000000 --- a/home/rices/schrottkatze/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# schrottkatze - -NixOS rice built on **Niri** (Wayland compositor) with **Gruvbox Dark Hard** theming. - - - -## Stack - -| Component | Choice | -|-----------|--------| -| Compositor | [Niri](https://github.com/YaLTeR/niri) (Wayland) | -| Terminal | Kitty (+ Alacritty backup) | -| Bar | [Eww](https://github.com/elkowar/eww) (top + bottom) | -| Launcher | Fuzzel | -| Editor | Helix | -| Browser | Firefox (hardened, Tridactyl) | -| Notifications | Dunst | -| Lock Screen | Swaylock + Swayidle | -| Theme Engine | [Stylix](https://github.com/danth/stylix) | - -## Features - -- **Gruvbox Dark Hard** palette applied system-wide via Stylix -- **Gradient window borders** — pink-to-cyan active, pink-to-orange inactive -- **Custom GLSL window open animation** (`arc.frag` shader) -- **Eww bars** with CPU/RAM/battery monitors, systray, workspace indicators, Mullvad VPN status -- **Decorative pride flag overlays** on both bars -- **Privacy-hardened Firefox** — telemetry disabled, HTTPS-only, fingerprinting resistance, uBlock Origin -- **Screen capture blocking** for sensitive apps (Signal, Element, Discord) -- **Vim-style keybindings** throughout (hjkl navigation in Niri) -- **Czech keyboard layout** with Caps→Escape remap -- **Xwayland support** via `xwayland-satellite` - -## Fonts - -| Role | Font | -|------|------| -| Monospace | Departure Mono Nerd Font | -| Sans-serif | Atkinson Hyperlegible | -| Serif | Linux Libertine O | -| Emoji | Noto Color Emoji | - -## Structure - -``` -. -├── default.nix # Entry point — imports system + home -├── system.nix # System-level config (Niri, Pipewire, Stylix, fonts) -├── home.nix # Home Manager config (packages, GPG agent) -├── browser.nix # Firefox setup, extensions, search engines -├── terminal.nix # Kitty config -├── notifications.nix # Dunst config -├── fuzzel.nix # Launcher config -├── eww.nix # Bar config -├── niri.nix # Niri compositor config (KDL generation) -├── stylix.nix # Theme overrides -├── swayidle.nix # Lock screen integration -├── niri/ -│ ├── wallpaper.jpg -│ ├── arc.frag # Window open animation shader -│ └── kdl/ # Niri config modules -│ ├── binds.kdl # Keybindings -│ ├── style.kdl # Window styling -│ ├── input.kdl # Keyboard/mouse/touchpad -│ ├── quirks.kdl # Per-app window rules -│ ├── privacy.kdl # Screen capture blocks -│ └── ... -└── eww/ - └── configDir/ # Eww bar widgets, scripts, CSS -``` - -## Key Bindings - -| Bind | Action | -|------|--------| -| `Mod+Return` | Kitty | -| `Mod+D` | Fuzzel launcher | -| `Mod+N` | Firefox | -| `Mod+E` | Edit Niri config | -| `Mod+M` | Color picker | -| `Mod+I` | Emoji picker | -| `Mod+hjkl` | Focus window (vim dirs) | -| `Mod+Shift+hjkl` | Move window | -| `Mod+1-9` | Switch workspace | - -## Search Engines (Firefox) - -Kagi (default), DuckDuckGo, Nix Packages, Nix Options, Home Manager Options, NixOS Wiki, Noogle, lib.rs, Rust docs, MDN. diff --git a/home/rices/schrottkatze/default.nix b/home/rices/schrottkatze/default.nix deleted file mode 100644 index 6b7865d..0000000 --- a/home/rices/schrottkatze/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ - system = import ./system.nix; - home = import ./home.nix; -} diff --git a/home/rices/schrottkatze/eww.nix b/home/rices/schrottkatze/eww.nix deleted file mode 100644 index 599738a..0000000 --- a/home/rices/schrottkatze/eww.nix +++ /dev/null @@ -1,6 +0,0 @@ -{...}: { - programs.eww = { - enable = true; - configDir = ./eww/configDir; - }; -} diff --git a/home/rices/schrottkatze/eww/configDir/bottomBar/bottomBar.yuck b/home/rices/schrottkatze/eww/configDir/bottomBar/bottomBar.yuck deleted file mode 100644 index d955d31..0000000 --- a/home/rices/schrottkatze/eww/configDir/bottomBar/bottomBar.yuck +++ /dev/null @@ -1,77 +0,0 @@ -(include "bottomBar/workspaces.yuck") -(include "bottomBar/traveldings.yuck") - -(defwindow bottomBar - :monitor 0 - :stacking "fg" - :wm-ignore true - :exclusive true - :geometry (geometry - :width "100%" - :height "33px" - :anchor "bottom center") - (bottomBar)) - -(defwidget bottomBar [] - (overlay - :class "bottomBar" - (transform - :translate-y "1.5px" - (centerbox - (box - :halign "start" - (workspaceWidget) - ) - (box - :halign "center" - (traveldings) - ) - (box - :halign "end" - ; (label :text "${iceData.speed}km/h") - (mullvadThing) - ) - ) - ) - (box - :class "lesbianFlag" - :height 1 - ( flagEl :flipped true :color "#D52D00") - ( flagEl :flipped true :color "#EF7627") - ( flagEl :flipped true :color "#FF9A56") - ( flagEl :flipped true :color "#FFFFFF") - ( flagEl :flipped true :color "#D162A4") - ( flagEl :flipped true :color "#B55690") - ( flagEl :flipped true :color "#A30262") - ) - ) -) - -(deflisten mullvad - :initial "{\"state\":\"init\"}" - `mullvad status -j listen` -) - -(defwidget mullvadThing [] - (box - :class "container" - (button - :height 16 - :width 16 - :class "mullvad-state-${mullvad.state}" - ) - ) -) - -(defwidget iceTacho [] - (box - :class "iceTacho" - :tooltip "Tz${iceTachoData.tzn} (BR ${iceTachoData.br})" - (label :text "${iceTachoData.speed} km/h") - ) -) - -(deflisten iceTachoData - :initial "null" - { "~/.config/eww/scripts/iceTacho.nu" } -) diff --git a/home/rices/schrottkatze/eww/configDir/bottomBar/traveldings.yuck b/home/rices/schrottkatze/eww/configDir/bottomBar/traveldings.yuck deleted file mode 100644 index 62de26e..0000000 --- a/home/rices/schrottkatze/eww/configDir/bottomBar/traveldings.yuck +++ /dev/null @@ -1,37 +0,0 @@ -(defwidget traveldings [] - (revealer - :class "traveldings" - :transition "crossfade" - :reveal { traveldings_data != "null" } - (traveldingsBarWidget) - ) -) - -(defwidget traveldingsBarWidget [] - (overlay - (box - :width 640 - (label - :halign "start" - :text "${traveldings_data.line} -> ${strlength(traveldings_data.arrival_station) > 24 ? "${substring(traveldings_data.arrival_station, 0, 24)}…" : traveldings_data.arrival_station}${traveldings_data.arrival_platform_data_available ? " (Gl. ${traveldings_data.arrival_platform_real})" : ""}" - ) - (label - :halign "end" - :text { traveldings_data.time_left >= 3600 ? formattime(traveldings_data.time_left, "noch %-Hh %-Mmin", "Etc/UTC") : formattime(traveldings_data.time_left, "noch %-Mmin", "Etc/UTC") } - ) - ) - (box - (progress - :class { traveldings_data.live ? "traveldings_live" : "traveldings_disconnected" } - :value {traveldings_data.progress * 100} - :orientation "horizontal" - ) - ) - ) -) - - -(deflisten traveldings_data - :initial "null" - "traveldings current" -) diff --git a/home/rices/schrottkatze/eww/configDir/bottomBar/workspaces.yuck b/home/rices/schrottkatze/eww/configDir/bottomBar/workspaces.yuck deleted file mode 100644 index 2709e1b..0000000 --- a/home/rices/schrottkatze/eww/configDir/bottomBar/workspaces.yuck +++ /dev/null @@ -1,18 +0,0 @@ -(defwidget workspaceWidget [] - (box - :class "workspaces" - (for workspace in workspaces - (button - :style "border-bottom: 4px solid ${workspace.color}${workspace.active ? "; background-color: #3c3836" : ""}" - :class "${workspace.focused ? "focused" : ""}" - :onclick "niri msg action focus-workspace ${workspace.idx}" - (label :text "${workspace.icon ?: workspace.idx}") - ) - ) - ) -) - -(deflisten workspaces - :initial "[]" - "bar-ws-monitor" -) diff --git a/home/rices/schrottkatze/eww/configDir/eww.css b/home/rices/schrottkatze/eww/configDir/eww.css deleted file mode 100644 index 2ce2ac5..0000000 --- a/home/rices/schrottkatze/eww/configDir/eww.css +++ /dev/null @@ -1,58 +0,0 @@ -label { - font: 14pt "Departure Mono Nerd Font"; -} - -button { - border-radius: 0px; - padding: 0; -} - -.background { - background-color: #1d2021; -} - -.workspaces button { - border: 0px; - padding: 5px 4px 0 4px; -} - -.workspaces button.focused { - background-color: #504935; -} - -.traveldings progressbar trough { - border: none; - background-color: #3c3836; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.traveldings progressbar.traveldings_live progress { - background-color: #79740e; - border-bottom-left-radius: 0; -} - -.traveldings progressbar.traveldings_disconnected progress { - background-color: #cc241d; -} - - -.traveldingsWindow { - border-radius: 15px; -} - -.mullvad-state-connected { - background-color: #98971a -} - -.mullvad-state-connecting { - background-color: #d79921 -} - -.mullvad-state-disconnected { - background-color: #cc241d -} - -.mullvad-state-init { - background-color: #458588 -} diff --git a/home/rices/schrottkatze/eww/configDir/eww.yuck b/home/rices/schrottkatze/eww/configDir/eww.yuck deleted file mode 100644 index f6f20f5..0000000 --- a/home/rices/schrottkatze/eww/configDir/eww.yuck +++ /dev/null @@ -1,36 +0,0 @@ -(include "topBar/topBar.yuck") -(include "bottomBar/bottomBar.yuck") - -(include "topBar/time.yuck") - -(defwindow streamUi - :monitor 0 - :stacking "fg" - :wm-ignore true - :exclusive true - :geometry (geometry - :width "640px" - :height "100%" - :anchor "center right") - (centerbox - :style "padding: 0 3px" - :orientation "vertical" - (label :text "hi") - (label :text "hi") - (centerbox - :valign "end" - (box - :halign "start" - (systray - :icon-size 18 - :spacing 3 - ) - ) - (box) - (box - :halign "end" - (time) - ) - ) - ) -) diff --git a/home/rices/schrottkatze/eww/configDir/scripts/bat.nu b/home/rices/schrottkatze/eww/configDir/scripts/bat.nu deleted file mode 100755 index fd34c50..0000000 --- a/home/rices/schrottkatze/eww/configDir/scripts/bat.nu +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env nu - -const ICONS = [ - [ normal charging]; - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] -]; - -const DELAY = 2sec; - -def "main auto" [] { - loop { - let paths = ls "/sys/class/power_supply" - | each {|it| $it.name | path basename} - | filter {|it| $it starts-with "BAT"}; - - if ($paths | is-not-empty) { - let result = $paths - | each {|it| get_and_format $it} - | str join " | " - | prepend "| " - | str join; - - print $result - } else { - print "" - } - sleep $DELAY; - } -} - -def main [ path: string ] { - loop { - print (get_and_format $path) - sleep $DELAY; - } -} - -def get_and_format [ path: string ] { - let fract = get_bat_charge_fraction $path; - let is_charging = get_bat_charging_status $path; - let percent = ($fract * 100) | math round; - - return $"<span foreground=\"#d65d0e\">(get_bat_icon $fract $is_charging)</span> ($percent)<span foreground=\"#7c6f64\">%</span>"; -} - -def get_bat_charge_fraction [ - path: string -] { - let energy_full = open $"/sys/class/power_supply/($path)/energy_full" | into float; - let energy_now = open $"/sys/class/power_supply/($path)/energy_now" | into float; - - $energy_now / $energy_full -} - -def get_bat_charging_status [ - path: string -] { - let status = open $"/sys/class/power_supply/($path)/status"; - - $status like Charging -} - -def get_bat_icon [ - frac: float - is_charging = false -] { - $ICONS | get (($frac * 10) | math round) | get (if ($is_charging) { "charging" } else { "normal" }) -} diff --git a/home/rices/schrottkatze/eww/configDir/scripts/iceTacho.nu b/home/rices/schrottkatze/eww/configDir/scripts/iceTacho.nu deleted file mode 100755 index 5225dc2..0000000 --- a/home/rices/schrottkatze/eww/configDir/scripts/iceTacho.nu +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env nu - -const TABLE = { - 401: 280 - 402: 280 - 403: 330 - 406: 330 - 407: 320 - 408: 320 - 411: 230 - 415: 230 - 412: 265 - 605: 200 -}; - -def main [ ] { - loop { - if ((iw dev wlp4s0 link | lines | filter {|it| $it =~ "WIFIonICE" } | length) == 1) { - let iceData = http get https://iceportal.de/api1/rs/status; - let tzn = $iceData.tzn; - let br = $iceData.series; - let speed = $iceData.speed; - let speedfrac = $speed / ($TABLE | get $br); - - print ({ - tzn: $tzn, - br: $br, - speed: $speed, - frac: $speedfrac - } | to json -r); - - sleep 2sec; - } else { - print "null"; - sleep 5sec; - } - } -} diff --git a/home/rices/schrottkatze/eww/configDir/topBar/sysinfo.yuck b/home/rices/schrottkatze/eww/configDir/topBar/sysinfo.yuck deleted file mode 100644 index c37838a..0000000 --- a/home/rices/schrottkatze/eww/configDir/topBar/sysinfo.yuck +++ /dev/null @@ -1,22 +0,0 @@ -(deflisten bat - :initial "<span foreground=\"#cc241d\">BAT0 ERR</span>" - { "~/.config/eww/scripts/bat.nu auto"} -) - -(defwidget cpu [] - (box - :class "cpuIndicator" - (label - :markup "<span foreground=\"#d65d0e\"></span> ${strlength(round(EWW_CPU.avg, 0)) == 1 ? " ${round(EWW_CPU.avg, 0)}" : round(EWW_CPU.avg, 0)}<span foreground=\"#7c6f64\">%</span>" - ) - ) -) - -(defwidget mem [] - (box - :class "memIndicator" - (label - :markup "<span foreground=\"#d65d0e\"> </span> ${round(EWW_RAM.used_mem_perc, 0)}<span foreground=\"#7c6f64\">%</span>" - ) - ) -) diff --git a/home/rices/schrottkatze/eww/configDir/topBar/time.yuck b/home/rices/schrottkatze/eww/configDir/topBar/time.yuck deleted file mode 100644 index ba22883..0000000 --- a/home/rices/schrottkatze/eww/configDir/topBar/time.yuck +++ /dev/null @@ -1,10 +0,0 @@ -(defwidget time [] - (label - :markup { - formattime( - EWW_TIME, - "<span foreground=\"#d65d0e\"></span> %Y<span foreground=\"#7c6f64\">-</span>%m<span foreground=\"#7c6f64\">-</span>%d <span foreground=\"#d65d0e\"></span> %H<span foreground=\"#7c6f64\">:</span>%M<span foreground=\"#7c6f64\">:</span>%S " - ) - } - ) -) diff --git a/home/rices/schrottkatze/eww/configDir/topBar/topBar.yuck b/home/rices/schrottkatze/eww/configDir/topBar/topBar.yuck deleted file mode 100644 index 4aee71f..0000000 --- a/home/rices/schrottkatze/eww/configDir/topBar/topBar.yuck +++ /dev/null @@ -1,55 +0,0 @@ -(include "topBar/time.yuck") -(include "topBar/sysinfo.yuck") -(include "util.yuck") - -(defwindow topBar - :monitor 0 - :stacking "fg" - :wm-ignore true - :exclusive true - :geometry (geometry - :width "100%" - :height "33px" - :anchor "top center") - (topBar)) - -(defwidget topBar [] - (overlay - :class "topBar" - (transform - :translate-y "-1.5px" - (centerbox - (box - :halign "start" - :spacing 12 - :space-evenly false - (label :text " ") - (cpu) - (sep) - (mem) - (label :markup bat) - ) - (box - :halign "center" - (systray - :icon-size 18 - :spacing 3 - ) - ) - (box - :halign "end" - (time) - ) - ) - ) - (box - :class "transFlag" - :height 1 - ( flagEl :flipped false :color "#5BCEFA") - ( flagEl :flipped false :color "#F5A9B8") - ( flagEl :flipped false :color "#FFFFFF") - ( flagEl :flipped false :color "#F5A9B8") - ( flagEl :flipped false :color "#5BCEFA") - ) - ) -) diff --git a/home/rices/schrottkatze/eww/configDir/util.yuck b/home/rices/schrottkatze/eww/configDir/util.yuck deleted file mode 100644 index 3df84ab..0000000 --- a/home/rices/schrottkatze/eww/configDir/util.yuck +++ /dev/null @@ -1,10 +0,0 @@ -(defwidget flagEl [color ?flipped] - (box - :style "border-${flipped ? "top" : "bottom"}: 3px solid ${color}" - :halign "fill" - ) -) - -(defwidget sep [] - (label :text "|") -) diff --git a/home/rices/schrottkatze/fuzzel.nix b/home/rices/schrottkatze/fuzzel.nix deleted file mode 100644 index d31dee7..0000000 --- a/home/rices/schrottkatze/fuzzel.nix +++ /dev/null @@ -1,26 +0,0 @@ -{lib, ...}: { - programs.fuzzel = { - enable = true; - settings = { - main = { - font = lib.mkForce "Departure Mono:size=13"; - terminal = "kitty"; - lines = 15; - width = 50; - horizontal-pad = 20; - vertical-pad = 12; - }; - colors = { - background = lib.mkForce "282828ff"; - match = lib.mkForce "d65d0eff"; - selection-match = lib.mkForce "fe8019ff"; - border = lib.mkForce "bab9e5ff"; - }; - border = { - radius = 10; - selection-radius = 3; - width = 3; - }; - }; - }; -} diff --git a/home/rices/schrottkatze/home.nix b/home/rices/schrottkatze/home.nix deleted file mode 100644 index 69a4a96..0000000 --- a/home/rices/schrottkatze/home.nix +++ /dev/null @@ -1,37 +0,0 @@ -{pkgs, ...}: { - imports = [ - ./terminal.nix - ./notifications.nix - ./fuzzel.nix - ./swayidle.nix - ./niri.nix - ./eww.nix - # ./layaway.nix - ./stylix.nix - ]; - - programs.swaylock.enable = true; - services.network-manager-applet.enable = true; - xsession.enable = true; - - home.packages = with pkgs; [ - fluent-reader - obsidian - zsh - hyprpicker - bemoji - librsvg - cairo - xwayland-satellite - ]; - - fonts.fontconfig = { - enable = true; - defaultFonts = { - emoji = ["Noto Color Emoji"]; - monospace = []; - sansSerif = ["Atkinson Hyperlegible"]; - serif = []; - }; - }; -} diff --git a/home/rices/schrottkatze/layaway.nix b/home/rices/schrottkatze/layaway.nix deleted file mode 100644 index 35db5ee..0000000 --- a/home/rices/schrottkatze/layaway.nix +++ /dev/null @@ -1,24 +0,0 @@ -{pkgs, lib, ...}: -let - layaway = pkgs.rustPlatform.buildRustPackage rec { - pname = "layaway"; - version = "0.2.0"; - - src = pkgs.fetchFromGitHub { - owner = "MultisampledNight"; - repo = pname; - rev = "v${version}"; - hash = "sha256-SzAuVFEy56svasO3+1p6ysBRrIQd0UZX++/P4ZuwWm0="; - }; - - cargoHash = "sha256-QVxlkE+sq4U048LnshI/tq6HInKiSgjQLAdR+27/wEI="; - - meta = with lib; { - description = "Layout creation for Sway via a relative and human-readable DSL."; - homepage = "https://github.com/MultisampledNight/layaway"; - maintainers = [maintainers.multisn8]; - }; - }; -in { - home.packages = [layaway]; -} diff --git a/home/rices/schrottkatze/niri.nix b/home/rices/schrottkatze/niri.nix deleted file mode 100644 index 32e145f..0000000 --- a/home/rices/schrottkatze/niri.nix +++ /dev/null @@ -1,40 +0,0 @@ -# this file must only be saved via autosave due to the formatter. -# else it will be ugly -{ - pkgs, - lib, - ... -}: { - home.packages = with pkgs; [ - zenity - xwayland-satellite - swaybg - ]; - - xdg.configFile."niri/live.kdl".text = ""; - - home.file."config" = let - kdlfiles = - lib.mapAttrsToList - (filename: _value: "include \"${./niri/kdl}/${filename}\"") - (lib.filterAttrs (key: value: value == "regular") (builtins.readDir ./niri/kdl)); - startups = - map (it: "spawn-at-startup ${it}") - (map (lib.concatStringsSep " ") - (map (map (word: "\"${word}\"")) - [ - ["eww" "open-many" "topBar" "bottomBar"] - ["sh" "-c" "sleep 1 && swaybg -o eDP-1 -i ${../../../assets/wallpapers/insert_coin.jpeg} -m fill"] - ["touch" ".config/niri/live.kdl"] - ])); - other = [ - "include \"live.kdl\"" - "output \"eDP-1\" { scale 1.1; }" - "animations { window-open { duration-ms 3000; curve \"linear\"; custom-shader r\"\n${builtins.readFile ./niri/shaders/arc.frag}\";};}" - "binds {Mod+Shift+I { spawn \"${./niri/scripts/cpdate.sh}\"; }; }" - ]; - in { - target = ".config/niri/config.kdl"; - text = lib.concatLines (startups ++ kdlfiles ++ other); - }; -} diff --git a/home/rices/schrottkatze/niri/kdl/binds.kdl b/home/rices/schrottkatze/niri/kdl/binds.kdl deleted file mode 100644 index a926b6e..0000000 --- a/home/rices/schrottkatze/niri/kdl/binds.kdl +++ /dev/null @@ -1,124 +0,0 @@ -binds { - // spawn terminal - Mod+Return repeat=false { spawn "kitty"; } - Mod+D repeat=false { spawn "fuzzel"; } - Mod+M repeat=false { spawn "hyprpicker"; } - Mod+I repeat=false { spawn "bemoji" "-n"; } - Mod+N repeat=false { spawn "firefox"; } - Mod+E repeat=false { spawn "kitty" "vi" "~/.config/niri/live.kdl"; } - - Mod+Ctrl+Shift+E { quit; } - Mod+Shift+Q { close-window; } - Mod+Ctrl+Shift+P { power-off-monitors; } - - Mod+Shift+Ctrl+Slash allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } - - Mod+Shift+Slash { show-hotkey-overlay; } - - Mod+Shift+C { set-dynamic-cast-window; } - Mod+Ctrl+C { set-dynamic-cast-monitor; } - Mod+Shift+Ctrl+C { clear-dynamic-cast-target; } - - // window/columns controls (focus: vim keys) - Mod+H { focus-column-left; } - Mod+J { focus-window-down; } - Mod+K { focus-window-up; } - Mod+L { focus-column-right; } - - // window/columns controls (focus: arrow keys) - Mod+Left { focus-column-left; } - Mod+Down { focus-window-down; } - Mod+Up { focus-window-up; } - Mod+Right { focus-column-right; } - - // move windows (vim keys) - Mod+Shift+H { move-column-left; } - Mod+Shift+J { move-window-down; } - Mod+Shift+K { move-window-up; } - Mod+Shift+L { move-column-right; } - - // move windows (arrow keys) - Mod+Shift+Left { move-column-left; } - Mod+Shift+Down { move-window-down; } - Mod+Shift+Up { move-window-up; } - Mod+Shift+Right { move-column-right; } - - Mod+R { switch-preset-column-width; } - - Mod+Space { toggle-overview; } - - Mod+V { toggle-window-floating; } - Mod+Shift+V { switch-focus-between-floating-and-tiling; } - - // workspace navigation - Mod+P { focus-workspace-up; } - Mod+Ctrl+P { move-workspace-up; } - Mod+Shift+P { move-column-to-workspace-up; } - Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } - Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } - Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } - Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } - Mod+1 { focus-workspace 1; } - Mod+2 { focus-workspace 2; } - Mod+3 { focus-workspace 3; } - Mod+4 { focus-workspace 4; } - Mod+5 { focus-workspace 5; } - Mod+6 { focus-workspace 6; } - Mod+7 { focus-workspace 7; } - Mod+8 { focus-workspace 8; } - Mod+9 { focus-workspace 9; } - Mod+Ctrl+1 { move-column-to-workspace 1; } - Mod+Ctrl+2 { move-column-to-workspace 2; } - Mod+Ctrl+3 { move-column-to-workspace 3; } - Mod+Ctrl+4 { move-column-to-workspace 4; } - Mod+Ctrl+5 { move-column-to-workspace 5; } - Mod+Ctrl+6 { move-column-to-workspace 6; } - Mod+Ctrl+7 { move-column-to-workspace 7; } - Mod+Ctrl+8 { move-column-to-workspace 8; } - Mod+Ctrl+9 { move-column-to-workspace 9; } - - // monitor controls - Mod+Ctrl+H { focus-monitor-left; } - Mod+Ctrl+J { focus-monitor-down; } - Mod+Ctrl+K { focus-monitor-up; } - Mod+Ctrl+L { focus-monitor-right; } - Mod+Shift+Ctrl+H { move-column-to-monitor-left; } - Mod+Shift+Ctrl+J { move-column-to-monitor-down; } - Mod+Shift+Ctrl+K { move-column-to-monitor-up; } - Mod+Shift+Ctrl+L { move-column-to-monitor-right; } - - // column editing stuffs - Mod+BracketLeft { consume-or-expel-window-left; } - Mod+BracketRight { consume-or-expel-window-right; } - Mod+C { center-column; } - Mod+Minus { set-column-width "-5%"; } - Mod+Equal { set-column-width "+5%"; } - Mod+Shift+Minus { set-window-height "-10%"; } - Mod+Shift+Equal { set-window-height "+10%"; } - Mod+Shift+W { toggle-column-tabbed-display; } - - Mod+F { maximize-column; } - Alt+F { expand-column-to-available-width; } - Mod+Shift+F { maximize-window-to-edges; } - Mod+Ctrl+F { fullscreen-window; } - - Mod+Shift+Ctrl+F { toggle-windowed-fullscreen; } - - // media keys - XF86AudioLowerVolume \ - allow-when-locked=true \ - { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%-"; } - XF86AudioMicMute \ - allow-when-locked=true \ - { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } - XF86AudioMute \ - allow-when-locked=true \ - { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } - XF86AudioRaiseVolume \ - allow-when-locked=true \ - { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%+"; } - - // brightness keys - XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "set" "5%+"; } - XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "set" "5%-"; } -} diff --git a/home/rices/schrottkatze/niri/kdl/input.kdl b/home/rices/schrottkatze/niri/kdl/input.kdl deleted file mode 100644 index fa398b2..0000000 --- a/home/rices/schrottkatze/niri/kdl/input.kdl +++ /dev/null @@ -1,22 +0,0 @@ -input { - keyboard { - xkb { - layout "cz" - options "eurosign:e,caps:escape" - } - - repeat-delay 600 - repeat-rate 25 - track-layout "global" - } - - touchpad { - dwt - dwtp - natural-scroll - } - - mouse { - accel-profile "flat" - } -} diff --git a/home/rices/schrottkatze/niri/kdl/overviews.kdl b/home/rices/schrottkatze/niri/kdl/overviews.kdl deleted file mode 100644 index 5cb4443..0000000 --- a/home/rices/schrottkatze/niri/kdl/overviews.kdl +++ /dev/null @@ -1,19 +0,0 @@ -overview { - backdrop-color "110000" - zoom 0.381966 - workspace-shadow { - offset x=0 y=10 - softness 60 - color "#7f00008f" - } -} - -recent-windows { - debounce-ms 1500 - open-delay-ms 300 - highlight { - active-color "f69ecf" - padding 5 - corner-radius 2.5 - } -} diff --git a/home/rices/schrottkatze/niri/kdl/privacy.kdl b/home/rices/schrottkatze/niri/kdl/privacy.kdl deleted file mode 100644 index 1190aeb..0000000 --- a/home/rices/schrottkatze/niri/kdl/privacy.kdl +++ /dev/null @@ -1,12 +0,0 @@ -layer-rule { - match namespace="notifications" - block-out-from "screen-capture" -} - -window-rule { - match app-id="^signal|Element|org.gnome.Evolution$" - match title="^.*(Discord|Beispiel Screenshare block Bug|Bitwarden|Träwelling).*$" - exclude title="^.*((Schrottkatze|Statistics|Leaderboard) - Träwelling|chaos.social|Nekoverse|catgirl.cloud).*$" - exclude is-floating=true - block-out-from "screen-capture" -} diff --git a/home/rices/schrottkatze/niri/kdl/quirks.kdl b/home/rices/schrottkatze/niri/kdl/quirks.kdl deleted file mode 100644 index 07fa886..0000000 --- a/home/rices/schrottkatze/niri/kdl/quirks.kdl +++ /dev/null @@ -1,42 +0,0 @@ -// handle steam grabbing focus 1000 times on startup -window-rule { - match app-id="steam" title="Steam" - open-focused false -} - -// position steam notifs correctly: https://github.com/YaLTeR/niri/wiki/Application-Issues -window-rule { - match app-id="steam" title="^notificationtoasts_[\\d]+_desktop$" - open-focused false - border { off; } - shadow { off; } - baba-is-float false - default-floating-position relative-to="bottom-right" x=0 y=0 -} - -// fix guild wars -window-rule { - match app-id="steam_app_1284210" title="Guild Wars 2" - match app-id="(steam_app_[0-9]+|[Mm]inecraft.*|gamescope)" - border { off; } - shadow { off; } -} - -window-rule { - match app-id="chromium-browser" - geometry-corner-radius 6 6 1 1 -} - -window-rule { - match app-id="vesktop" is-floating=true - geometry-corner-radius 6 -} - -environment { - ELECTRON_OZONE_PLATFORM_HINT "auto" -} - -window-rule { - match app-id="zenity" - geometry-corner-radius 16 -} diff --git a/home/rices/schrottkatze/niri/kdl/screenshot.kdl b/home/rices/schrottkatze/niri/kdl/screenshot.kdl deleted file mode 100644 index 5a5966b..0000000 --- a/home/rices/schrottkatze/niri/kdl/screenshot.kdl +++ /dev/null @@ -1,6 +0,0 @@ -screenshot-path "~/Pictures/screenshots/%Y-%m-%dT%H:%M:%S.png" -binds { - Mod+Ctrl+S { screenshot-screen; } - Mod+Shift+S { screenshot; } - Mod+S { screenshot-window; } -} diff --git a/home/rices/schrottkatze/niri/kdl/style.kdl b/home/rices/schrottkatze/niri/kdl/style.kdl deleted file mode 100644 index fccf795..0000000 --- a/home/rices/schrottkatze/niri/kdl/style.kdl +++ /dev/null @@ -1,84 +0,0 @@ -prefer-no-csd - -cursor { - xcursor-theme "phinger-cursors-dark" - xcursor-size 32 - hide-when-typing - hide-after-inactive-ms 10000 -} - -layout { - gaps 15 - struts { - left 0 - right 0 - top 0 - bottom 0 - } - focus-ring { off; } - border { - on - width 3 - active-gradient angle=135 from="#f69ecf" in="oklch shorter hue" relative-to="window" to="#5bcefa" - inactive-gradient angle=135 from="#f69ecf" in="oklch shorter hue" relative-to="window" to="#ff9a56" - } - tab-indicator { - hide-when-single-tab - gap 2 - width 5 - length total-proportion=0.500000 - position "left" - gaps-between-tabs 0 - corner-radius 3 - active-color "#5bcefa" - inactive-color "#3c3836" - } - default-column-width - center-focused-column "never" -} - -window-rule { - match is-floating=true - exclude app-id="steam_app_[0-9]+" - shadow { - on - offset x=0 y=0 - softness 40 - color "#bab9e5af" - inactive-color "#fa9d99af" - } -} - -window-rule { - geometry-corner-radius 1 - clip-to-geometry true -} - -window-rule { - match is-window-cast-target=true - border { - on - active-gradient angle=135 \ - from="#64de50" \ - in="oklch shorter hue" \ - relative-to="window" \ - to="#5bcefa" - inactive-gradient angle=135 \ - from="#64de50" \ - in="oklch shorter hue" \ - relative-to="window" \ - to="#ff9a56" - } -} - -layer-rule { - match namespace="launcher" - geometry-corner-radius 10 - shadow { - on - offset x=0 y=0 - softness 40 - color "#bab9e5af" - } - baba-is-float true -} diff --git a/home/rices/schrottkatze/niri/kdl/workspaces.kdl.disabled b/home/rices/schrottkatze/niri/kdl/workspaces.kdl.disabled deleted file mode 100644 index e5b51b4..0000000 --- a/home/rices/schrottkatze/niri/kdl/workspaces.kdl.disabled +++ /dev/null @@ -1,63 +0,0 @@ -// WS Social -workspace "social" - -spawn-at-startup "signal-desktop" -spawn-at-startup ".evolution-wrapped_" -spawn-at-startup "vesktop" -spawn-at-startup "deltachat" - -window-rule { - match app-id="^(signal|Element|org.gnome.Evolution|discord|steam|DeltaChat)$" - open-on-workspace "social" -} - -// WS Browser -workspace "browser" - -spawn-at-startup "firefox" -spawn-at-startup "obsidian" - -window-rule { - match app-id="^firefox|Chromium-browser|obsidian$" - open-on-workspace "browser" -} - -binds { - Mod+P { focus-workspace-up; } - Mod+N { focus-workspace-down; } - Mod+Ctrl+P { move-workspace-up; } - Mod+Ctrl+N { move-workspace-down; } - Mod+Shift+P { move-column-to-workspace-up; } - Mod+Shift+N { move-column-to-workspace-down; } - - Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } - Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } - Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } - Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } - - Mod+Q { focus-workspace "social"; } - Mod+W { focus-workspace "browser"; } - Mod+E { focus-workspace 3; } - Mod+Ctrl+Q { move-column-to-workspace "social"; } - Mod+Ctrl+W { move-column-to-workspace "browser"; } - Mod+Ctrl+E { move-column-to-workspace 3; } - - Mod+1 { focus-workspace 4; } - Mod+2 { focus-workspace 5; } - Mod+3 { focus-workspace 6; } - Mod+4 { focus-workspace 7; } - Mod+5 { focus-workspace 8; } - Mod+6 { focus-workspace 9; } - Mod+7 { focus-workspace 10; } - Mod+8 { focus-workspace 11; } - Mod+9 { focus-workspace 12; } - Mod+Ctrl+1 { move-column-to-workspace 4; } - Mod+Ctrl+2 { move-column-to-workspace 5; } - Mod+Ctrl+3 { move-column-to-workspace 6; } - Mod+Ctrl+4 { move-column-to-workspace 7; } - Mod+Ctrl+5 { move-column-to-workspace 8; } - Mod+Ctrl+6 { move-column-to-workspace 9; } - Mod+Ctrl+7 { move-column-to-workspace 10; } - Mod+Ctrl+8 { move-column-to-workspace 11; } - Mod+Ctrl+9 { move-column-to-workspace 12; } -} diff --git a/home/rices/schrottkatze/niri/scripts/cpdate.sh b/home/rices/schrottkatze/niri/scripts/cpdate.sh deleted file mode 100755 index acc2994..0000000 --- a/home/rices/schrottkatze/niri/scripts/cpdate.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env nu - -const FORMATS = [ - "%F" - "%R" - "%d.%m.%Y" - "%d.%m" - "%T" - "%FT%H" - "%FT%R" - "%F %R" - "%F %T" -]; - -def main [] { - let date = date now; - let len = $FORMATS | length; - - $FORMATS | each {|it| $date | format date $it } | to text | fuzzel -dl $len | str trim | wl-copy -} diff --git a/home/rices/schrottkatze/niri/shaders/arc.frag b/home/rices/schrottkatze/niri/shaders/arc.frag deleted file mode 100644 index 301357c..0000000 --- a/home/rices/schrottkatze/niri/shaders/arc.frag +++ /dev/null @@ -1,131 +0,0 @@ - -#define PI 3.14159 - -#define TAU 6.28319 - -#define WIDTH 3. -#define RADIUS 1. - -#define WIPE_DURATION .2 -#define BORDER_LOOPS 3. -#define FADE_ITS 2. - -vec4 gradi(float pos, vec4 bg, vec4 fg, float fac, float mask) { - if (mask < 0.2) { - return bg; - } - - vec4 trans = vec4(0.); - vec4 purple = vec4(0.45, 0.13, 0.49, 1.0) * vec4(mask); - vec4 blue = vec4(0.25, 0.74, 0.81, 1.0) * vec4(mask); - vec4 white = vec4(mask); - float mult = 4. * fac; - - if (pos <= 0.125) { - return mix(bg, purple, max(0., pos * mult)); - } else if (pos <= 0.25) { - return mix(purple, blue, (pos * mult) - 1.); - } else if (pos <= 0.5) { - return mix(blue, white, (pos * mult) - 2.); - } else { - return fg; - } - -} - -// from niri source code: https://github.com/YaLTeR/niri/blob/f30db163b5748e8cf95c05aba77d0d3736f40543/src/render_helpers/shaders/border.frag#L211-L234 -float rounding_alpha(vec2 coords, vec2 size, vec4 corner_radius) { - vec2 center; - float radius; - - if (coords.x < corner_radius.x && coords.y < corner_radius.x) { - radius = corner_radius.x; - center = vec2(radius, radius); - } else if (size.x - corner_radius.y < coords.x && coords.y < corner_radius.y) { - radius = corner_radius.y; - center = vec2(size.x - radius, radius); - } else if (size.x - corner_radius.z < coords.x && size.y - corner_radius.z < coords.y) { - radius = corner_radius.z; - center = vec2(size.x - radius, size.y - radius); - } else if (coords.x < corner_radius.w && size.y - corner_radius.w < coords.y) { - radius = corner_radius.w; - center = vec2(radius, size.y - radius); - } else { - return 1.0;// - } - - float dist = distance(coords, center); - float half_px = 0.5; - return 1.0 - smoothstep(radius - half_px, radius + half_px, dist); -} - -vec4 open_color(vec3 coords_geo, vec3 size_geo) { - vec4 bg1 = vec4(.1, .1, .18, 1.0); - vec4 bg2 = vec4(.09, .05, .11, 1.0); - - vec3 coords_tex = niri_geo_to_tex * coords_geo; - vec4 color = texture2D(niri_tex, coords_tex.st); - - float pi = radians(180.); - - if (0.0 <= coords_geo.x && coords_geo.x <= 1.0 - && 0.0 <= coords_geo.y && coords_geo.y <= 1.0) - { - float pos = (coords_tex.x - ((1. / WIPE_DURATION) * niri_clamped_progress) * 2.) + 1.; - vec2 coords = (coords_geo.xy - vec2(0.5, 0.5)) * size_geo.xy * 2.0; - vec2 coords_abs = coords_geo.xy * size_geo.xy; - - float border_a = 1.; - - border_a *= rounding_alpha( - coords_abs.xy, - size_geo.xy, - vec4(RADIUS + WIDTH) - ); - - vec4 bg = mix(bg1, bg2, length(coords_tex.xy - vec2(1., 0.))) * border_a; - - color = gradi(pos, color, bg, 2.0, border_a); - - float angle = (atan(coords.y, coords.x) + PI) / TAU; - float spinny_angle = mod((angle + niri_clamped_progress * BORDER_LOOPS), 1.0) / 2.; - - vec2 border = WIDTH / size_geo.xy; - - float temp = border_a; - float round_a = 1. - rounding_alpha( - coords_abs.xy - WIDTH, - size_geo.xy - WIDTH * 2., - vec4(RADIUS) - ); - - if (coords_geo.x <= border.x || coords_geo.x >= (1. - border.x) || - coords_geo.y <= border.y || coords_geo.y >= (1. - border.y)) { - border_a *= round_a; - } - - float rest = 0.; - if (border_a + temp == 1.) { - rest = 1.; - } - - border_a *= round_a; - border_a += rest; - - vec4 grad = gradi( - spinny_angle, - vec4(.48, .37, .5, 1.), - vec4(1., 0., 0., 1.), - 2.0, // DO NOT TOUCH - border_a - ); - - if ((1. - niri_clamped_progress) < FADE_ITS / BORDER_LOOPS) { - border_a *= (1. - niri_clamped_progress) / (FADE_ITS / BORDER_LOOPS); - } - color = mix(color, grad, border_a); - - } - - return color; -} diff --git a/home/rices/schrottkatze/niri/wallpaper.jpg b/home/rices/schrottkatze/niri/wallpaper.jpg Binary files differdeleted file mode 100644 index 5b31b96..0000000 --- a/home/rices/schrottkatze/niri/wallpaper.jpg +++ /dev/null diff --git a/home/rices/schrottkatze/notifications.nix b/home/rices/schrottkatze/notifications.nix deleted file mode 100644 index 37390e9..0000000 --- a/home/rices/schrottkatze/notifications.nix +++ /dev/null @@ -1,21 +0,0 @@ -{pkgs, ...}: { - home.packages = [ - pkgs.libnotify - ]; - services.dunst = { - enable = true; - settings = { - global = { - dmenu = "${pkgs.rofi}/bin/rofi -theme gruvbox-dark -dmenu -p dunst"; - browser = "${pkgs.firefox}/bin/firefox"; - mouse_left_click = "context"; - mouse_middle_click = "close_current"; - background = "#282828"; - foreground = "#ebdbb2"; - frame_color = "#504945"; - frame_width = 2; - font = "Atkinson Hyperlegible"; - }; - }; - }; -} diff --git a/home/rices/schrottkatze/stylix.nix b/home/rices/schrottkatze/stylix.nix deleted file mode 100644 index 4c9d500..0000000 --- a/home/rices/schrottkatze/stylix.nix +++ /dev/null @@ -1,24 +0,0 @@ -{pkgs, ...}: { - stylix.targets = { - firefox.profileNames = ["mun"]; - helix.enable = false; - btop.enable = false; - nushell.enable = false; - starship.enable = false; - kitty.enable = false; - dunst.enable = false; - wofi.enable = false; - }; - gtk = { - enable = true; - cursorTheme = { - package = pkgs.phinger-cursors; - name = "phinger-cursors"; - size = 30; - }; - iconTheme = { - package = pkgs.gruvbox-dark-icons-gtk; - name = "gruvbox-dark-icons"; - }; - }; -} diff --git a/home/rices/schrottkatze/swayidle.nix b/home/rices/schrottkatze/swayidle.nix deleted file mode 100644 index 6d8525c..0000000 --- a/home/rices/schrottkatze/swayidle.nix +++ /dev/null @@ -1,15 +0,0 @@ -{pkgs, ...}: { - services.swayidle = { - enable = true; - events = [ - { - event = "before-sleep"; - command = "${pkgs.swaylock}/bin/swaylock -fF -c 442244"; - } - { - event = "lock"; - command = "swaylock -c 441144"; - } - ]; - }; -} diff --git a/home/rices/schrottkatze/system.nix b/home/rices/schrottkatze/system.nix deleted file mode 100644 index 3e13066..0000000 --- a/home/rices/schrottkatze/system.nix +++ /dev/null @@ -1,122 +0,0 @@ -{ - pkgs, - lib, - ... -}: { - # Desktop environment - Niri compositor - programs.niri.enable = true; - - # Default session - services.displayManager.defaultSession = "niri"; - - services.xserver.xkb = { - layout = "cz"; - options = "eurosign:e,caps:escape"; - }; - # Polkit fix for Niri - security.polkit.enable = true; - systemd.user.services.niri-flake-polkit.enable = false; - systemd.user.services.polkit-gnome-authentication-agent-1 = { - description = "polkit-gnome-authentication-agent-1"; - wantedBy = ["graphical-session.target"]; - wants = ["graphical-session.target"]; - after = ["graphical-session.target"]; - serviceConfig = { - Type = "simple"; - ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; - Restart = "on-failure"; - RestartSec = 1; - TimeoutStopSec = 10; - }; - }; - - # Audio - Pipewire - programs.noisetorch.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - }; - environment.systemPackages = with pkgs; [ - playerctl - pulsemixer - ]; - - # XDG portals - xdg.portal.extraPortals = [ - pkgs.xdg-desktop-portal-cosmic - ]; - xdg.portal.config.common.default = [ - "gnome" - ]; - - # Fonts - nixpkgs.config.packageOverrides = pkgs: { - google-fonts = pkgs.google-fonts.overrideAttrs (oldAttrs: { - src = pkgs.fetchFromGitHub { - owner = "google"; - repo = "fonts"; - rev = "0bd2d5599819aa0774f5ca64c8ac3f54ae3fd54f"; - sha256 = "sha256-E89GYJKG65Dh7TPI6TVre/4LCxXnxvTAPYS/OPj7nPg="; - }; - installPhase = - oldAttrs.installPhase - + "mv $out/share/fonts/truetype $out/share/fonts/ttf\n" - + "rm $out/share/fonts/ttf/Noto*Emoji*.ttf"; - }); - }; - - fonts = { - packages = with pkgs; [ - nerd-fonts.fira-code - nerd-fonts.departure-mono - google-fonts - noto-fonts-color-emoji - montserrat - atkinson-hyperlegible - arkpandora_ttf - liberation_ttf - caladea - carlito - garamond-libre - ocr-a - amiri - libertine - inter - b612 - departure-mono - yasashisa-gothic - ]; - fontDir.enable = true; - }; - - # Stylix configuration - Gruvbox Dark Hard - stylix = { - enable = true; - polarity = "dark"; - base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml"; - fonts = { - serif = { - package = pkgs.libertine; - name = "Linux Libertine O"; - }; - sansSerif = { - package = pkgs.atkinson-hyperlegible; - name = "Atkinson Hyperlegible"; - }; - monospace = { - package = pkgs.nerd-fonts.departure-mono; - name = "Departure Mono Nerd Font"; - }; - emoji = { - package = pkgs.noto-fonts-color-emoji; - name = "Noto Color Emoji"; - }; - }; - }; - - # Flatpak & misc services - services.flatpak.enable = true; - services.upower.enable = true; -} diff --git a/home/rices/schrottkatze/terminal.nix b/home/rices/schrottkatze/terminal.nix deleted file mode 100644 index 403449c..0000000 --- a/home/rices/schrottkatze/terminal.nix +++ /dev/null @@ -1,36 +0,0 @@ -{...}: { - programs.kitty = { - enable = true; - font.size = 12; - font.name = "Departure Mono Nerd Font"; - keybindings = { - "ctrl+shift+n" = "new_os_window_with_cwd"; - }; - settings = rec { - adjust_column_width = "95%"; - color0 = "#282828"; - color8 = "#928374"; - color1 = "#cc241d"; - color9 = "#fb4934"; - color2 = "#98971a"; - color10 = "#b8bb26"; - color3 = "#d79921"; - color11 = "#fabd2f"; - color4 = "#458588"; - color12 = "#83a598"; - color5 = "#b16286"; - color13 = "#d3869b"; - color6 = "#689d6a"; - color14 = "#8ec07c"; - color7 = "#a89984"; - color15 = "#ebdbb2"; - foreground = color15; - background = "#1d2021"; - confirm_os_window_close = 0; - hide_window_decorations = true; - }; - }; - home.sessionVariables = { - TERMINAL = "kitty"; - }; -} diff --git a/hosts/herra/ai.nix b/hosts/herra/ai.nix deleted file mode 100644 index df93a24..0000000 --- a/hosts/herra/ai.nix +++ /dev/null @@ -1,175 +0,0 @@ -{ - pkgs, - lib, - ... -}: let - puid = "1000"; - pgid = "100"; - odysseusRepo = "https://github.com/pewdiepie-archdaemon/odysseus.git"; - odysseusDir = "/var/lib/odysseus/src"; -in { - # ---------------------------- - # Ollama (native) - # ---------------------------- - services.ollama = { - enable = true; - host = "0.0.0.0"; - port = 11434; - }; - - # ---------------------------- - # Docker - # ---------------------------- - virtualisation.docker.enable = true; - virtualisation.oci-containers.backend = "docker"; - - # ---------------------------- - # Persistent storage - # ---------------------------- - systemd.tmpfiles.rules = [ - "d /var/lib/odysseus/data 0755 root root -" - "d /var/lib/odysseus/logs 0755 root root -" - "d /var/lib/odysseus/ssh 0755 root root -" - "d /var/lib/odysseus/huggingface 0755 root root -" - "d /var/lib/odysseus/chromadb 0755 root root -" - "d /var/lib/odysseus/ntfy 0755 root root -" - "d /var/lib/odysseus/searxng 0777 root root -" - "d /var/lib/odysseus/src 0755 root root -" - ]; - - # ---------------------------- - # SearXNG config - # ---------------------------- - environment.etc."odysseus/searxng/settings.yml".text = '' - use_default_settings: true - server: - secret_key: "change-me-openssl-rand-hex-32" - limiter: false - image_proxy: true - search: - safe_search: 0 - formats: - - html - - json - ''; - - # ---------------------------- - # Build Odysseus from source via systemd oneshot - # ---------------------------- - systemd.services.odysseus-build = { - description = "Build Odysseus Docker image from source"; - wantedBy = ["docker-odysseus.service"]; - before = ["docker-odysseus.service"]; - after = ["docker.service" "network-online.target"]; - wants = ["network-online.target"]; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - }; - path = [pkgs.git pkgs.docker]; - script = '' - if [ ! -d "${odysseusDir}/.git" ]; then - git clone ${odysseusRepo} ${odysseusDir} - else - git -C ${odysseusDir} pull --ff-only - fi - - NEW_HASH=$(git -C ${odysseusDir} rev-parse HEAD) - OLD_HASH=$(cat /var/lib/odysseus/.last-built-commit 2>/dev/null || echo "") - - if [ "$NEW_HASH" != "$OLD_HASH" ] || ! docker image inspect odysseus:local &>/dev/null; then - echo "Building odysseus image at commit $NEW_HASH..." - docker build -t odysseus:local ${odysseusDir} - echo "$NEW_HASH" > /var/lib/odysseus/.last-built-commit - else - echo "Image up to date at $OLD_HASH, skipping build." - fi - ''; - }; - - # ---------------------------- - # Containers - # ---------------------------- - virtualisation.oci-containers.containers = { - odysseus-chromadb = { - image = "chromadb/chroma:latest"; - ports = ["127.0.0.1:8100:8000"]; - volumes = ["/var/lib/odysseus/chromadb:/chroma/chroma"]; - environment.ANONYMIZED_TELEMETRY = "FALSE"; - }; - - odysseus-searxng = { - image = "searxng/searxng:latest"; - ports = ["127.0.0.1:8080:8080"]; - volumes = [ - "/var/lib/odysseus/searxng:/etc/searxng" - "/etc/odysseus/searxng/settings.yml:/etc/searxng/settings.yml:ro" - ]; - environment.SEARXNG_BASE_URL = "http://localhost:8080/"; - }; - - odysseus-ntfy = { - image = "binwiederhier/ntfy"; - cmd = ["serve"]; - ports = ["127.0.0.1:8091:80"]; - volumes = ["/var/lib/odysseus/ntfy:/var/cache/ntfy"]; - environment.NTFY_BASE_URL = "http://localhost:8091"; - }; - - odysseus = { - image = "odysseus:local"; - ports = ["127.0.0.1:7000:7000"]; - volumes = [ - "/var/lib/odysseus/data:/app/data" - "/var/lib/odysseus/logs:/app/logs" - "/var/lib/odysseus/ssh:/app/.ssh" - "/var/lib/odysseus/huggingface:/app/.cache/huggingface" - ]; - environment = { - APP_BIND = "0.0.0.0"; - APP_PORT = "7000"; - AUTH_ENABLED = "true"; - PUID = puid; - PGID = pgid; - SEARXNG_INSTANCE = "http://host.docker.internal:8080"; - CHROMADB_HOST = "host.docker.internal"; - CHROMADB_PORT = "8000"; - OLLAMA_BASE_URL = "http://host.docker.internal:11434/v1"; - }; - extraOptions = [ - "--add-host=host.docker.internal:host-gateway" - "--pull=never" - ]; - dependsOn = ["odysseus-chromadb" "odysseus-searxng" "odysseus-ntfy"]; - }; - }; - - # Restart policy (mkForce overrides oci-containers' default "always") - systemd.services = { - docker-odysseus-chromadb.serviceConfig.Restart = lib.mkForce "on-failure"; - docker-odysseus-searxng.serviceConfig.Restart = lib.mkForce "on-failure"; - docker-odysseus-ntfy.serviceConfig.Restart = lib.mkForce "on-failure"; - docker-odysseus.serviceConfig.Restart = lib.mkForce "on-failure"; - }; - - # ---------------------------- - # Nginx + local DNS - # ---------------------------- - services.nginx = { - enable = true; - virtualHosts."ai.local" = { - locations."/" = { - proxyPass = "http://127.0.0.1:7000"; - proxyWebsockets = true; - extraConfig = '' - proxy_read_timeout 300s; - proxy_connect_timeout 75s; - ''; - }; - }; - }; - - networking.hosts."127.0.0.1" = ["ai.local"]; - networking.firewall.allowedTCPPorts = [80]; - networking.firewall.interfaces.docker0.allowedTCPPorts = [11434]; -} diff --git a/hosts/herra/arion-compose.nix b/hosts/herra/arion-compose.nix deleted file mode 100644 index daa4077..0000000 --- a/hosts/herra/arion-compose.nix +++ /dev/null @@ -1,50 +0,0 @@ -{pkgs, ...}: { - project.name = "odysseus"; - - services.odysseus.service = { - image = "ghcr.io/pewdiepie-archdaemon/odysseus:latest"; - - ports = [ - "7000:7000" - ]; - - volumes = [ - "/srv/odysseus/data:/app/data" - ]; - - environment = { - AUTH_ENABLED = "true"; - - LLM_HOST = "host.docker.internal:11434"; - - CHROMADB_HOST = "chromadb"; - - SEARXNG_INSTANCE = "http://searxng:8080"; - }; - - extra_hosts = [ - "host.docker.internal:host-gateway" - ]; - - depends_on = [ - "chromadb" - "searxng" - ]; - }; - - services.chromadb.service = { - image = "chromadb/chroma:latest"; - - volumes = [ - "/srv/odysseus/chroma:/chroma/chroma" - ]; - }; - - services.searxng.service = { - image = "searxng/searxng:latest"; - }; - - services.ntfy.service = { - image = "binwiederhier/ntfy:latest"; - }; -} diff --git a/hosts/herra/audio.nix b/hosts/herra/audio.nix deleted file mode 100644 index 2805547..0000000 --- a/hosts/herra/audio.nix +++ /dev/null @@ -1,43 +0,0 @@ -{...}: { - # rtkit is optional but recommended - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - - # Lower audio latency - # TODO: Every setup is different, and a lot of factors determine your final latency, like CPU speed, RT/PREEMPTIVE kernels and soundcards supporting different audio formats. That's why 32/48000 isn't always a value that's going to work for everyone. The best way to get everything working is to keep increasing the quant value until you get no crackles (underruns) or until you get audio again (in case there wasn't any). This won't guarantee the lowest possible latency, but will provide a decent one paired with stable audio. - # extraConfig = { - # pipewire."92-low-latency" = { - # "context.properties" = { - # "default.clock.rate" = 48000; - # "default.clock.quantum" = 128; - # "default.clock.min-quantum" = 32; - # "default.clock.max-quantum" = 256; # Maybe set this to a max of 128 or 256 (as advised by Jade) - # }; - # }; - # - # pipewire-pulse."92-low-latency" = { - # context.modules = [ - # { - # name = "libpipewire-module-protocol-pulse"; - # args = { - # pulse.min.req = "32/48000"; - # pulse.default.req = "32/48000"; - # pulse.max.req = "32/48000"; - # pulse.min.quantum = "32/48000"; - # pulse.max.quantum = "256/48000"; # Maybe set this to a max of 128 or 256 (as advised by Jade) - # }; - # } - # ]; - # stream.properties = { - # node.latency = "32/48000"; - # resample.quality = 1; - # }; - # }; - # }; - }; -} diff --git a/hosts/herra/configuration.nix b/hosts/herra/configuration.nix deleted file mode 100644 index 4403d12..0000000 --- a/hosts/herra/configuration.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - pkgs, - lib, - ... -}: { - imports = [ - ./hardware-configuration.nix - ./file-system.nix - ./packages.nix - ./audio.nix - ./drivers.nix - ./steam.nix - ./network.nix - ./ai.nix - ]; - - networking.hostName = "herra"; - - # Dual-boot with Windows 11 - boot.loader.grub.useOSProber = true; - - # Gaming-optimized Zen kernel (overrides system/boot.nix) - # Includes: low-latency patches, BFQ scheduler, gaming optimizations - # Similar performance benefits to Bazzite kernel - boot.kernelPackages = lib.mkForce pkgs.linuxPackages_zen; -} diff --git a/hosts/herra/drivers.nix b/hosts/herra/drivers.nix deleted file mode 100644 index f169970..0000000 --- a/hosts/herra/drivers.nix +++ /dev/null @@ -1,42 +0,0 @@ -{pkgs, ...}: { - services.xserver.videoDrivers = ["amdgpu"]; # AMD GPU drivers - boot.kernel.sysctl."kernel.sched_rt_runtime_us" = -1; # Realtime audio - - hardware = { - graphics = { - enable = true; - enable32Bit = true; # CRITICAL for Steam/Proton - extraPackages = with pkgs; [ - rocmPackages.clr.icd # OpenCL - ]; - extraPackages32 = with pkgs; [ - ]; - }; - - cpu.intel.updateMicrocode = true; - - enableRedistributableFirmware = true; - }; - #TODO: FIX - #boot.extraModulePackages = with boot.kernelPackages; [ - # v4l2loopback - #]; - boot.kernelModules = ["v4l2loopback"]; - boot.extraModprobeConfig = '' - options v4l2loopback devices=1 video_nr=1 card_label="OBS Virtual Camera" exclusive_caps=1 - ''; - - systemd.tmpfiles.rules = [ - "w /sys/class/drm/card1/device/power_dpm_force_performance_level - - - - manual" - "w /sys/class/drm/card1/device/pp_dpm_sclk - - - - 7" - "w /sys/class/drm/card1/device/pp_dpm_mclk - - - - 1" - ]; - - services.udev.extraRules = '' - SUBSYSTEM=="hwmon", ATTRS{name}=="amdgpu", ATTR{power1_cap}="75000000" - ''; - - virtualisation.docker.storageDriver = "btrfs"; - - programs.gamemode.enable = true; -} diff --git a/hosts/herra/file-system.nix b/hosts/herra/file-system.nix deleted file mode 100644 index 07ba0fa..0000000 --- a/hosts/herra/file-system.nix +++ /dev/null @@ -1,39 +0,0 @@ -{...}: { - fileSystems."/nix" = { - options = ["compress=zstd:3" "noatime"]; - neededForBoot = true; - }; - - # fileSystems."/run/media/mun/GAMES" = { - # device = "/dev/disk/by-uuid/7D1A6ABE139A4C2C"; - # fsType = "ntfs3"; - # - # options = [ - # "nofail" - # "rw" - # "uid=1000" - # "gid=100" - # "big_writes" - # "noatime" - # ]; - # neededForBoot = false; - # }; - - # TODO: FIX ^ - # For now use the patch below (ik this is stupid) - - # NOTE: it was indeed stupid - # systemd.mounts = [ - # { - # what = "/dev/disk/by-label/GAMES"; - # where = "/run/media/mun/GAMES"; - # type = "ntfs3"; - # options = "nofail,rw,uid=1000,gid=100,noatime"; - # wantedBy = ["multi-user.target"]; - # } - # ]; - # - # systemd.tmpfiles.rules = [ - # "d /run/media/mun/GAMES 0755 mun users -" - # ]; -} diff --git a/hosts/herra/hardware-configuration.nix b/hosts/herra/hardware-configuration.nix deleted file mode 100644 index 578ae01..0000000 --- a/hosts/herra/hardware-configuration.nix +++ /dev/null @@ -1,43 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "thunderbolt" "usbhid" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/229a13d8-159e-40b6-915a-606c32e3ca79"; - fsType = "btrfs"; - options = [ "subvol=@" ]; - }; - - fileSystems."/home" = - { device = "/dev/disk/by-uuid/229a13d8-159e-40b6-915a-606c32e3ca79"; - fsType = "btrfs"; - options = [ "subvol=@home" ]; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/03F6-F782"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; - - fileSystems."/nix" = - { device = "/dev/disk/by-uuid/28fb6b6d-fb64-4a42-80af-88ce7b081258"; - fsType = "btrfs"; - }; - - swapDevices = [ ]; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/hosts/herra/network.nix b/hosts/herra/network.nix deleted file mode 100644 index eba91ed..0000000 --- a/hosts/herra/network.nix +++ /dev/null @@ -1,6 +0,0 @@ -{pkgs, ...}: { - environment.systemPackages = with pkgs; [ - libimobiledevice - ]; - services.usbmuxd.enable = true; -} diff --git a/hosts/herra/packages.nix b/hosts/herra/packages.nix deleted file mode 100644 index e822493..0000000 --- a/hosts/herra/packages.nix +++ /dev/null @@ -1,47 +0,0 @@ -{pkgs, ...}: { - environment.systemPackages = with pkgs; [ - # System - btop - radeontop - alsa-utils # provides alsamixer - - # Streaming / Recording - obs-studio - easyeffects - - # OBS plugins - #obs-studio-plugins.distroav # Stale upstream hash - obs-studio-plugins.obs-vkcapture - obs-studio-plugins.obs-pipewire-audio-capture - # obs-studio-plugins.obs-source-switcher - obs-studio-plugins.obs-source-record - obs-studio-plugins.obs-source-clone - # obs-studio-plugins.obs-media-control - # obs-studio-plugins.obs-scene-as-transition - # obs-studio-plugins.advanced-scene-switcher - obs-studio-plugins.obs-retro-effects - obs-studio-plugins.obs-dvd-screensaver - obs-studio-plugins.obs-composite-blur - - # Audio - pavucontrol - jack2 - - # Video - ffmpeg - v4l-utils - cheese - - # Gayming - mangohud # In-game overlay (FPS, GPU/CPU usage) - corectrl # AMD GPU fan/power control (WX 5100 has no software controls otherwise) - vulkan-tools # vulkaninfo for debugging - mesa-demos # glxinfo, glxgears - ]; - - programs.corectrl = { - enable = true; - gpuOverclock.enable = true; # optional - }; - -} diff --git a/hosts/herra/steam.nix b/hosts/herra/steam.nix deleted file mode 100644 index 9bbe499..0000000 --- a/hosts/herra/steam.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - lib, - pkgs, - ... -}: { - programs.steam = { - enable = true; - package = pkgs.steam.override { - extraEnv = { - LD_PRELOAD = "${pkgs.gamemode.lib}/lib/libgamemodeauto.so"; - }; - extraLibraries = pkgs: - with pkgs; [ - gamemode - ]; - }; - remotePlay.openFirewall = true; - dedicatedServer.openFirewall = true; - localNetworkGameTransfers.openFirewall = true; - gamescopeSession.enable = false; - extraCompatPackages = [pkgs.proton-ge-bin]; - }; - - nixpkgs.config.allowUnfreePredicate = pkg: - builtins.elem (lib.getName pkg) [ - "steam" - "steam-original" - "steam-unwrapped" - "steam-run" - ]; - - programs.appimage.enable = true; - programs.appimage.binfmt = true; -} - diff --git a/hosts/kronos/configuration.nix b/hosts/kronos/configuration.nix deleted file mode 100755 index a02a768..0000000 --- a/hosts/kronos/configuration.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - pkgs, - lib, - ... -}: { - imports = [ - ./hardware-configuration.nix - ]; - - networking.hostName = "kronos"; - boot.kernelPackages = pkgs.linuxPackages; - - services.illum.enable = false; # Disable illum because I've never noticed it working and it crashes on hardened kernel - - # TODO: Harden the kernel even further (https://wiki.nixos.org/wiki/NixOS_Hardening) - # security.lockKernelModules = true; -} diff --git a/hosts/kronos/hardware-configuration.nix b/hosts/kronos/hardware-configuration.nix deleted file mode 100755 index 0dc8341..0000000 --- a/hosts/kronos/hardware-configuration.nix +++ /dev/null @@ -1,31 +0,0 @@ -# Do not modify this file! It was generated by 'nixos-generate-config' -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/f62daee8-ba51-478c-97db-c8b96c12043e"; - fsType = "ext4"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/22BE-C329"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; - - swapDevices = [ ]; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/hosts/mystra/configuration.nix b/hosts/mystra/configuration.nix deleted file mode 100644 index 24d906c..0000000 --- a/hosts/mystra/configuration.nix +++ /dev/null @@ -1,6 +0,0 @@ -{...}: { - imports = [ - ./hardware-configuration.nix - ]; - networking.hostName = "mystra"; -} diff --git a/hosts/mystra/hardware-configuration.nix b/hosts/mystra/hardware-configuration.nix deleted file mode 100644 index 50f0325..0000000 --- a/hosts/mystra/hardware-configuration.nix +++ /dev/null @@ -1,25 +0,0 @@ -# PLACEHOLDER - Generate on actual ThinkPad X220 hardware with: -# sudo nixos-generate-config --show-hardware-config > hosts/mystra/hardware-configuration.nix -# -# ThinkPad X220 Expected Hardware: -# - Intel Core i5-2520M (2nd gen Sandy Bridge) -# - Intel HD Graphics 3000 (i915 driver) -# - 4-8GB DDR3 RAM -# - SATA SSD/HDD storage - -{ config, lib, pkgs, modulesPath, ... }: -{ - imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - - # Placeholder - replace with actual hardware scan results - boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "usb_storage" "sd_mod" ]; - boot.kernelModules = [ "kvm-intel" ]; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/PLACEHOLDER"; - fsType = "ext4"; - }; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/nix-configs b/nix-configs deleted file mode 160000 -Subproject 70e5b25e38f653c5f59c16096f00fdac6b55fc5 diff --git a/pkgs/scpzine-texlive.nix b/pkgs/scpzine-texlive.nix deleted file mode 100644 index b9ce910..0000000 --- a/pkgs/scpzine-texlive.nix +++ /dev/null @@ -1,38 +0,0 @@ -# Local TeXLive package for scpzine.sty -# Builds a texlivePackages-compatible derivation from the local .sty file. -{ - lib, - runCommand, - texlive, -}: let - scpzine-src = ../assets/texmf/tex/latex/scpzine; -in - runCommand "texlive-scpzine" { - passthru.tlDeps = with texlive; [ - courier - lm - microtype - parskip - setspace - ragged2e - graphics - wrapfig - xcolor - pgf # tikz - booktabs - tabularx - tools # array - soul - textcase - eso-pic - hyperref - fancyhdr - environ - geometry - fontenc - ]; - tlType = "run"; - } '' - mkdir -p "$out/tex/latex/scpzine" - cp ${scpzine-src}/scpzine.sty "$out/tex/latex/scpzine/" - '' diff --git a/system/audio.nix b/system/audio.nix deleted file mode 100644 index 80dd60b..0000000 --- a/system/audio.nix +++ /dev/null @@ -1,15 +0,0 @@ -{pkgs, ...}: { - security.rtkit.enable = true; - - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - }; - - environment.systemPackages = with pkgs; [ - pavucontrol - ]; -} diff --git a/system/bluetooth.nix b/system/bluetooth.nix deleted file mode 100644 index a4bc960..0000000 --- a/system/bluetooth.nix +++ /dev/null @@ -1,15 +0,0 @@ -{...}: { - hardware.bluetooth = { - enable = true; - powerOnBoot = true; - settings = { - General = { - Experimental = true; - FastConnectable = true; - }; - Policy = { - AutoEnable = true; - }; - }; - }; -} diff --git a/system/boot.nix b/system/boot.nix deleted file mode 100644 index af96d4e..0000000 --- a/system/boot.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ - pkgs, - lib, - ... -}: { - boot = { - kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; - - kernelModules = ["ntsync"]; - initrd = { - kernelModules = ["i915"]; - systemd.enable = true; - }; - - loader = { - efi = { - canTouchEfiVariables = true; - efiSysMountPoint = "/boot"; - }; - grub = { - enable = lib.mkDefault true; - device = "nodev"; - useOSProber = lib.mkDefault false; - efiSupport = true; - }; - systemd-boot = { - enable = false; - consoleMode = "keep"; - configurationLimit = 5; - }; - }; - - plymouth = { - enable = false; - theme = "deus_ex"; - themePackages = [ - (pkgs.adi1090x-plymouth-themes.override { - selected_themes = ["deus_ex"]; - }) - ]; - }; - }; - - fileSystems."/boot".options = ["fmask=0077" "dmask=0077"]; -} diff --git a/system/default.nix b/system/default.nix deleted file mode 100644 index bbeb009..0000000 --- a/system/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{...}: { - imports = [ - ./nix.nix - ./boot.nix - ./audio.nix - ./bluetooth.nix - ./graphics.nix - ./networking.nix - ./packages.nix - ./programs.nix - ./services.nix - ./users.nix - ./encryption.nix - ./virtualisation.nix - # Desktop and stylix are now configured per-rice in home/rices/*/system.nix - ]; - - system.stateVersion = "25.11"; -} diff --git a/system/desktop.nix b/system/desktop.nix deleted file mode 100644 index 0337478..0000000 --- a/system/desktop.nix +++ /dev/null @@ -1,16 +0,0 @@ -{...}: { - # X server and window manager - services.xserver = { - enable = true; - windowManager.i3.enable = true; - - # Czech QWERTZ layout - xkb = { - layout = "cz"; - options = "eurosign:e,caps:escape"; - }; - }; - - # Compositor (system-level service) - services.picom.enable = true; -} diff --git a/system/encryption.nix b/system/encryption.nix deleted file mode 100644 index d5555a2..0000000 --- a/system/encryption.nix +++ /dev/null @@ -1,62 +0,0 @@ -{pkgs, ...}: { - # The encrypted USB is NOT part of boot anymore - # We do NOT use crypttab or systemd-cryptsetup units at all - - systemd.tmpfiles.rules = [ - "d /mnt/ssh-keys 0755 root root -" - "d /mnt/nixos-config 0755 root root -" - "d /mnt/storage 0755 root root -" - "d /mnt/tools 0755 root root -" - "d /mnt/isos 0755 root root -" - ]; - - environment.systemPackages = with pkgs; [ - cryptsetup - # 🔓 Mount + unlock + load SSH key - (writeShellScriptBin "keys-mount" '' - set -e - DEVICE="/dev/disk/by-uuid/d5aa2823-2023-410b-a83e-a4f707db5f7c" - NAME="ssh-keys" - MNT="/mnt/ssh-keys" - MNT_CONFIG="/mnt/nixos-config" - MNT_STORAGE="/mnt/storage" - MNT_TOOLS="/mnt/tools" - echo "🔐 Unlocking encrypted USB..." - sudo cryptsetup open "$DEVICE" "$NAME" - echo "📂 Mounting partitions..." - sudo mount "/dev/mapper/$NAME" "$MNT" - sudo mount -L nixos-config "$MNT_CONFIG" - sudo mount -L storage "$MNT_STORAGE" - sudo mount -L tools "$MNT_TOOLS" - echo "🔑 Adding SSH keys..." - ssh-add "$MNT/poseidon" - ssh-add "$MNT/apollo" - ssh-add "$MNT/codeberg" - ssh-add "$MNT/gitlab-keys" - echo "🔑 Importing GPG key..." - gpg --import "$MNT/gpg-privkey.asc" - echo "✅ Done" - '') - # 🔒 Clean unmount + lock - (writeShellScriptBin "keys-umount" '' - set -e - MNT="/mnt/ssh-keys" - NAME="ssh-keys" - echo "🔑 Removing SSH keys..." - ssh-add -d "$MNT/poseidon" 2>/dev/null || true - ssh-add -d "$MNT/apollo" 2>/dev/null || true - ssh-add -d "$MNT/codeberg" 2>/dev/null || true - ssh-add -d "$MNT/gitlab-keys" 2>/dev/null || true - echo "🔑 Clearing GPG key..." - gpgconf --kill gpg-agent - echo "📤 Unmounting..." - sudo umount /mnt/nixos-config || true - sudo umount /mnt/storage || true - sudo umount /mnt/tools || true - sudo umount "$MNT" || true - echo "🔒 Closing encrypted device..." - sudo cryptsetup close "$NAME" || true - echo "✅ Done" - '') - ]; -} diff --git a/system/graphics.nix b/system/graphics.nix deleted file mode 100644 index e2d9629..0000000 --- a/system/graphics.nix +++ /dev/null @@ -1,13 +0,0 @@ -{pkgs, ...}: { - services.xserver.videoDrivers = ["intel"]; - - hardware.graphics = { - enable = true; - extraPackages = with pkgs; [ - intel-vaapi-driver - intel-media-driver - intel-compute-runtime - mesa - ]; - }; -} diff --git a/system/ly/blackhole-smooth-240x67.dur b/system/ly/blackhole-smooth-240x67.dur Binary files differdeleted file mode 100644 index d65c878..0000000 --- a/system/ly/blackhole-smooth-240x67.dur +++ /dev/null diff --git a/system/networking.nix b/system/networking.nix deleted file mode 100644 index e1e9450..0000000 --- a/system/networking.nix +++ /dev/null @@ -1,3 +0,0 @@ -{...}: { - networking.networkmanager.enable = true; -} diff --git a/system/nix.nix b/system/nix.nix deleted file mode 100644 index ff0512a..0000000 --- a/system/nix.nix +++ /dev/null @@ -1,43 +0,0 @@ -{pkgs, ...}: { - nix = { - package = pkgs.lixPackageSets.stable.lix; - - settings = { - trusted-users = ["root" "mun"]; - - substituters = [ - "https://cache.lix.systems" - "https://cache.nixos.org/" - ]; - - trusted-public-keys = [ - "cache.lix.systems-1:32QFpmvZsbQ8HhH3dBHDx1E8zFGbxqMNxjE2Rk5OGcQ=" - "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - ]; - - experimental-features = ["nix-command" "flakes"]; - }; - gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 7d"; - }; - optimise = { - automatic = true; - dates = ["weekly"]; - }; - }; - - # Fix nixpkgs.overlays for Lix compatibility - nixpkgs.overlays = [ - (final: prev: { - inherit - (prev.lixPackageSets.stable) - nixpkgs-review - nix-eval-jobs - nix-fast-build - colmena - ; - }) - ]; -} diff --git a/system/packages.nix b/system/packages.nix deleted file mode 100644 index fcc194d..0000000 --- a/system/packages.nix +++ /dev/null @@ -1,76 +0,0 @@ -{pkgs, ...}: { - nixpkgs.config.allowUnfree = true; - - environment.systemPackages = with pkgs; [ - # Core - neovim - wget - git - lazygit - gnupg - pinentry-curses - - # CLI utilities - tree - ripgrep - fd - unzip - bzip2 - killall - acpi - - # System monitoring - btop - auto-cpufreq - - # Nix helpers - nh - nix-output-monitor - nvd - - # Audio/Media - alsa-utils - helvum - playerctl - pipewire - - # Bluetooth & Wireless - blueman - bluez - wirelesstools - - # Display & Graphics - feh - flameshot - xss-lock - brightnessctl - imagemagick - ghostscript - - # Development - stdenv - tree-sitter - clang - libgcc - lua - lua53Packages.luarocks - lua-language-server - stylua - nil - python314 - pyright - ruff - vtsls - ]; - - fonts = { - enableDefaultPackages = true; - packages = with pkgs; [ - fira-code - noto-fonts - noto-fonts-color-emoji - blackout - beon - ]; - }; -} diff --git a/system/programs.nix b/system/programs.nix deleted file mode 100644 index 9db68d9..0000000 --- a/system/programs.nix +++ /dev/null @@ -1,72 +0,0 @@ -{...}: { - # Fix firefox not being properly sandboxed and security - environment.etc."apparmor.d/firefox-local".text = '' - # This profile allows everything and only exists to give the - # application a name instead of having the label "unconfined" - abi <abi/4.0>, - include <tunables/global> - profile firefox-local - /home/mun/bin/firefox/{firefox,firefox-bin,updater} - flags=(unconfined) { - userns, - # Site-specific additions and overrides. See local/README for details. - include if exists <local/firefox> - } - ''; - - programs.firefox = { - enable = true; - languagePacks = ["en-GB" "cs" "sk" "de"]; - policies = { - DefaultDownloadDirectory = "\${home}/Downloads"; - Extensions.Install = map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}") [ - # Privacy - "ublock-origin" - "privacy-badger17" - "torproject-snowflake" - "clearurls" - "flagfox" - "user-agent-string-switcher" - "facebook-container" - - # QoL - "sidebery" - "onetab" - "bitwarden-password-manager" - - # YouTube - "return-youtube-dislikes" - "sponsorblock" - "youtube-recommended-videos" - "hide-members-only-videos" - - # Theming - "styl-us" - "firefox-color" - "darkreader" - ]; - Extensions.Uninstall = [ - "ddg@search.mozilla.org" - "google@search.mozilla.org" - "bing@search.mozilla.org" - "amazondotcom@search.mozilla.org" - "ebay@search.mozilla.org" - "twitter@search.mozilla.org" - ]; - DisableFirefoxStudies = true; - DisableTelemetry = true; - DisableFeedbackCommands = true; - DisablePocket = true; - }; - }; - programs.zsh.enable = true; - - programs.steam = { - enable = true; - remotePlay.openFirewall = true; - dedicatedServer.openFirewall = true; - localNetworkGameTransfers.openFirewall = true; - }; - - programs.ssh.startAgent = true; -} diff --git a/system/services.nix b/system/services.nix deleted file mode 100644 index c05e3b1..0000000 --- a/system/services.nix +++ /dev/null @@ -1,36 +0,0 @@ -{pkgs, ...}: { - security.pam.sshAgentAuth.enable = true; - - time.timeZone = "Europe/Prague"; - - services = { - displayManager.ly.enable = true; - printing.enable = true; - libinput.enable = true; - openssh.enable = true; - tailscale.enable = true; - gnome = { - gnome-keyring.enable = true; - gcr-ssh-agent.enable = false; - }; - # Setup MPD as the backend of RMPC - mpd = { - enable = true; - user = "mun"; - musicDirectory = "/home/mun/Music"; - extraConfig = '' - audio_output { - type "pipewire" - name "PipeWire" - } - audio_output { - type "fifo" - name "my_fifo" - path "/tmp/mpd.fifo" - format "44100:16:2" - } - ''; - }; - }; - systemd.services.mpd.environment.XDG_RUNTIME_DIR = "/run/user/1000"; -} diff --git a/system/users.nix b/system/users.nix deleted file mode 100644 index 5b84f9a..0000000 --- a/system/users.nix +++ /dev/null @@ -1,8 +0,0 @@ -{pkgs, ...}: { - users.groups.ssh-keys = {}; - users.users.mun = { - isNormalUser = true; - extraGroups = ["wheel" "bluetooth" "networkmanager" "kvm" "nixos" "ssh-keys"]; - shell = pkgs.zsh; - }; -} diff --git a/system/virtualisation.nix b/system/virtualisation.nix deleted file mode 100644 index eae69f7..0000000 --- a/system/virtualisation.nix +++ /dev/null @@ -1,12 +0,0 @@ -{pkgs, ...}: { - virtualisation.docker = { - enable = true; - autoPrune.enable = true; - package = pkgs.docker_29; - }; - virtualisation.oci-containers = { - backend = "docker"; - }; - - users.extraGroups.docker.members = ["mun"]; -} |
