Compare commits
49 Commits
08fd0ea72c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 24ac62ed2e | |||
|
|
291162e613 | ||
|
|
46a34a6ef5 | ||
|
|
8ed9bd9618 | ||
|
|
69e881d729 | ||
|
|
e4e6309652 | ||
|
|
c87bd55ce3 | ||
| bcb06844ca | |||
| d68c4de197 | |||
| 9da17501a5 | |||
| 9e58fe4ec5 | |||
| 07c74ceacc | |||
| d8bd26b51e | |||
| 757eb8a8e5 | |||
| 5cea40cfc9 | |||
| 48130f4166 | |||
| 6df4dbab3a | |||
| 099ef7b987 | |||
| 15bc9617a4 | |||
| fc729c8aae | |||
| 5d33a277b3 | |||
| 6b886eeea8 | |||
| eebf3f6159 | |||
| 2a16184fba | |||
| 08f94eaafc | |||
| 0c42a480c6 | |||
| 47e31d5090 | |||
| a292a97d3f | |||
| c95c70f9d2 | |||
| 9a4b06a005 | |||
| 0a4d68e3fd | |||
| c37c83b931 | |||
| 98d5f91cc7 | |||
| debd90e1c3 | |||
| d02b8776aa | |||
| a271d6c3b5 | |||
| 872df78291 | |||
| d553f10f30 | |||
| 0e6c578860 | |||
| 25310fe8b9 | |||
| 52c6077591 | |||
| 0a43990455 | |||
| fa13387a4c | |||
| 8b662955ef | |||
| df14f2f780 | |||
| 4c5ac20b4f | |||
| e4a4329100 | |||
| 9d1e782753 | |||
| 3d698f8631 |
4
.gitmodules
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
[submodule "DeltaruneQuickshell"]
|
||||
path = Shell
|
||||
url = https://git.ocbwoy3.dev/kris/DeltaruneQuickshell
|
||||
branch = main
|
||||
126
README.md
@@ -1,119 +1,19 @@
|
||||

|
||||

|
||||
# Kris's Nix
|
||||
|
||||
# Keybind reference
|
||||
<details>
|
||||
<summary>Asset & Copyright Disclaimers</summary>
|
||||
|
||||
| Keybind | What it does |
|
||||
| --------- | -------------------- |
|
||||
| `SUPER+Q` | Terminal |
|
||||
| `SUPER+C` | Close current window |
|
||||
| `SUPER+E` | File Manager |
|
||||
| `SUPER+V` | Toggle Floating |
|
||||
| `SUPER+Q` | Terminal |
|
||||
| `SUPER+T` | App Launcher |
|
||||
| `SUPER+P` | Psuedo |
|
||||
| `SUPER+J` | Toggle Split |
|
||||
| `SUPER+F` | Fullscreen |
|
||||
DELTARUNE, its trademark and all related assets are Copyright (c) Toby Fox.
|
||||
|
||||
| Keybind | What it does |
|
||||
| ------------------ | ------------------ |
|
||||
| `SUPER+RightArrow` | Move Focus (right) |
|
||||
| `SUPER+LeftArrow` | Move Focus (left) |
|
||||
| `SUPER+DownArrow` | Move Focus (down) |
|
||||
| `SUPER+UpArrow` | Move Focus (up) |
|
||||
**Non-nix packaged fonts used in the rice:**
|
||||
- [8bitoperator JVE](https://fonts2u.com/8bitoperator-jve-regular.font/)
|
||||
- [8-bit Operator+](https://www.1001freefonts.com/8-bit-operator.font)
|
||||
- [Determination Mono](https://fontstruct.com/fontstructions/show/1349263/determination-6-1-2)
|
||||
|
||||
| Keybind | What it does |
|
||||
| ------------------------ | ------------------ |
|
||||
| `SUPER+SHIFT+RightArrow` | Window width +100 |
|
||||
| `SUPER+SHIFT+LeftArrow` | Window width -100 |
|
||||
| `SUPER+SHIFT+DownArrow` | Window height +100 |
|
||||
| `SUPER+SHIFT+UpArrow` | Window height -100 |
|
||||
### Determination Mono
|
||||
- The FontStruction “Determination Mono” (https://fontstruct.com/fontstructions/show/1349263) by MVBit is licensed under a Creative Commons Attribution Share Alike license (http://creativecommons.org/licenses/by-sa/3.0/).
|
||||
- “Determination Mono” was originally cloned (copied) from the FontStruction “Determination” (https://fontstruct.com/fontstructions/show/1327343) by MVBit , which is licensed under a Creative Commons Attribution Share Alike license (http://creativecommons.org/licenses/by-sa/3.0/).
|
||||
- “Determination” was in turn cloned (copied) from the FontStruction “Determination” (https://fontstruct.com/fontstructions/show/1212496) by Ryan B, which is licensed under a Creative Commons Attribution Share Alike license (http://creativecommons.org/licenses/by-sa/3.0/).
|
||||
|
||||
| Keybind | What it does |
|
||||
| ----------------------- | ----------------------- |
|
||||
| `SUPER+CTRL+RightArrow` | Swap window pos (right) |
|
||||
| `SUPER+CTRL+LeftArrow` | Swap window pos (left) |
|
||||
| `SUPER+CTRL+UpArrow` | Swap window pos (down) |
|
||||
| `SUPER+CTRL+DownArrow` | Swap window pos (up) |
|
||||
|
||||
| Mouse Keybind | What it does |
|
||||
| ------------------ | -------------- |
|
||||
| `SUPER+MouseLeft` | Move window |
|
||||
| `SUPER+MouseRight` | Resize window |
|
||||
| `SUPER+ScrollUp` | Next workspace |
|
||||
| `SUPER+ScrollDown` | Prev workspace |
|
||||
|
||||
| Keybind | What it does |
|
||||
| ------------------- | ---------------------------------------- |
|
||||
| `SUPER+[0-9]` | Switch to workspace X |
|
||||
| `SUPER+SHIFT+[0-9]` | Move active window to workspace X |
|
||||
| `SUPER+Z` | Special workspace |
|
||||
| `SUPER+SHIFT+Z` | Move current window to special Workspace |
|
||||
|
||||
| Keybind | What it does |
|
||||
| --------------- | ---------------- |
|
||||
| `SUPER+SHIFT+B` | Reload Waybar |
|
||||
| `CTRL+ALT+DEL` | WLogout |
|
||||
| `FN+F5` | Prev music track |
|
||||
| `FN+F6` | Next music track |
|
||||
| `FN+F7` | Play/Pause music |
|
||||
|
||||
| Keybind | What it does |
|
||||
| ------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
||||
| `SUPER+SHIFT+ENTER` | Change wallpaper |
|
||||
| `SUPER+F1` | Hide waybar |
|
||||
| `SUPER+F2` | [Roblox](https://roblox.com) [Roblox](https://sober.vinegarhq.org) [Roblox](https://github.com/ocbwoy3/tuxstrap) |
|
||||
| `SUPER+Space` | Switch Keyboard Layout (English, Latvian) |
|
||||
|
||||
## How to install NixOS
|
||||
|
||||
1. Install base NixOS from the commandline
|
||||
|
||||
- Without UI
|
||||
- Use this disk configuration
|
||||
|
||||
```
|
||||
/dev/sda1 - 1G fat32 fmask=0022 dmask=0022 vfat
|
||||
mounts to /boot
|
||||
|
||||
# add compress=zstd
|
||||
|
||||
/dev/sdb2 - 100% btrfs, with these subvolumes:
|
||||
root -> /
|
||||
[noatime] nix -> /nix
|
||||
home -> /home
|
||||
root -> /root
|
||||
```
|
||||
|
||||
2. Create user named 'ocbwoy3'
|
||||
|
||||
3. Run this in order:
|
||||
|
||||
```bash
|
||||
cd ~
|
||||
nix-shell -p git
|
||||
```
|
||||
|
||||
4. Run this inside the `nix-shell`
|
||||
|
||||
```bash
|
||||
git clone git@tangled.sh:ocbwoy3.dev/nix
|
||||
cd config
|
||||
sudo nixos-rebuild switch --flake .#default --impure --cores 20
|
||||
```
|
||||
|
||||
1. Reboot, run this in your terminal:
|
||||
|
||||
```bash
|
||||
mkdir -p /home/ocbwoy3/Pictures/Screenshots
|
||||
mkdir -p /home/ocbwoy3/Downloads
|
||||
mkdir -p /home/ocbwoy3/Desktop
|
||||
mkdir -p /home/ocbwoy3/Documents
|
||||
mkdir -p /home/ocbwoy3/Projects
|
||||
```
|
||||
|
||||
6. Add this to `/etc/resolv.conf` as root
|
||||
|
||||
```
|
||||
nameserver 1.1.1.1
|
||||
```
|
||||
</details>
|
||||
|
||||
1
Shell
Submodule
BIN
asset/fonts/nonnix/8bitOperatorPlus-Bold.ttf
Normal file
BIN
asset/fonts/nonnix/8bitOperatorPlus-Regular.ttf
Normal file
BIN
asset/fonts/nonnix/8bitOperatorPlus8-Bold.ttf
Normal file
BIN
asset/fonts/nonnix/8bitOperatorPlus8-Regular.ttf
Normal file
BIN
asset/fonts/nonnix/8bitOperatorPlusSC-Bold.ttf
Normal file
BIN
asset/fonts/nonnix/8bitOperatorPlusSC-Regular.ttf
Normal file
40
asset/fonts/nonnix/8bitoperator_jve-readme.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
Congratulations, you have successfully downloaded font file!
|
||||
|
||||
This font is provided to you by Fonts2u.com – the largest online
|
||||
repository of free fonts for Windows and Mac.
|
||||
|
||||
|
||||
|
||||
How to install this font on your computer?
|
||||
|
||||
For Windows 7 / Vista users:
|
||||
|
||||
- Right-click the font file(s) and choose "Install".
|
||||
|
||||
For users of the previous Windows versions:
|
||||
|
||||
- Copy the included file(s) into a default Windows font folder
|
||||
(usually C:\WINDOWS\FONTS or C:\WINNT\FONTS)
|
||||
|
||||
For Mac users:
|
||||
|
||||
Mac OS X 10.3 or above (including the FontBook)
|
||||
|
||||
- Double-click the font file and hit "Install font" button at
|
||||
the bottom of the preview.
|
||||
|
||||
Mac OS X
|
||||
|
||||
- Either copy the font file(s) to /Library/Fonts (for all users),
|
||||
or to /Users/Your_username/Library/Fonts (for you only).
|
||||
|
||||
Mac OS 9 or earlier
|
||||
|
||||
- You have to convert the font file(s) you have downloaded.
|
||||
Drag the font suitcases into the System folder. The system
|
||||
will propose you to add them to the Fonts folder.
|
||||
|
||||
For Linux users:
|
||||
|
||||
- Copy the font file(s) to /USR/SHARE/FONTS
|
||||
|
||||
BIN
asset/fonts/nonnix/8bitoperator_jve.ttf
Normal file
43
asset/fonts/nonnix/SIL Open Font License.txt
Normal file
@@ -0,0 +1,43 @@
|
||||
Copyright (c) 2009 - 2014 Grand Chaos Productions (http://grandchaos9000.deviantart.com), with Reserved Font Name 8-bit Operator+.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
12
asset/fonts/nonnix/determination-mono-license.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
The FontStruction “Determination Mono”
|
||||
(https://fontstruct.com/fontstructions/show/1349263) by MVBit is licensed under
|
||||
a Creative Commons Attribution Share Alike license
|
||||
(http://creativecommons.org/licenses/by-sa/3.0/).
|
||||
“Determination Mono” was originally cloned (copied) from the FontStruction
|
||||
“Determination” (https://fontstruct.com/fontstructions/show/1327343) by
|
||||
MVBit , which is licensed under a Creative Commons Attribution Share Alike
|
||||
license (http://creativecommons.org/licenses/by-sa/3.0/).
|
||||
“Determination” was in turn cloned (copied) from the FontStruction
|
||||
“Determination” (https://fontstruct.com/fontstructions/show/1212496) by Ryan
|
||||
B, which is licensed under a Creative Commons Attribution Share Alike license
|
||||
(http://creativecommons.org/licenses/by-sa/3.0/).
|
||||
26
asset/fonts/nonnix/determination-mono-readme.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
The font file in this archive was created using Fontstruct the free, online
|
||||
font-building tool.
|
||||
This font was created by MVBit *.
|
||||
This font has a homepage where this archive and other versions may be found:
|
||||
https://fontstruct.com/fontstructions/show/1349263
|
||||
|
||||
*NOTE: “Determination Mono” was originally cloned (copied) from the
|
||||
FontStruction “Determination”
|
||||
(https://fontstruct.com/fontstructions/show/1327343) by MVBit , which is
|
||||
licensed under a Creative Commons Attribution Share Alike license
|
||||
(http://creativecommons.org/licenses/by-sa/3.0/).
|
||||
“Determination” was in turn cloned (copied) from the FontStruction
|
||||
“Determination” (https://fontstruct.com/fontstructions/show/1212496) by Ryan
|
||||
B, which is licensed under a Creative Commons Attribution Share Alike license
|
||||
(http://creativecommons.org/licenses/by-sa/3.0/).
|
||||
|
||||
Try Fontstruct at https://fontstruct.com
|
||||
It’s easy and it’s fun.
|
||||
|
||||
Fontstruct is copyright ©2016-2025 Rob Meek
|
||||
|
||||
LEGAL NOTICE:
|
||||
In using this font you must comply with the licensing terms described in the
|
||||
file “license.txt” included with this archive.
|
||||
If you redistribute the font file in this archive, it must be accompanied by all
|
||||
the other files from this archive, including this one.
|
||||
BIN
asset/fonts/nonnix/determination-mono.ttf
Normal file
2
asset/thirdparty/deltarune/COPYRIGHT_NOTICE.txt
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
Asset & Copyright Disclaimer
|
||||
DELTARUNE, its trademark and all related assets are Copyright (c) Toby Fox.
|
||||
BIN
asset/thirdparty/deltarune/border.png
vendored
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
@@ -1,14 +0,0 @@
|
||||
# CachyOS Installation
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
Run the master installation script to install everything:
|
||||
|
||||
```bash
|
||||
cd /home/ocbwoy3/config/cachyos
|
||||
./install-all.sh
|
||||
```
|
||||
|
||||
This will automatically run all installation steps in the correct order.
|
||||
|
||||
**Note**: This installation is based on the currently written Nix configuration and should do it's best to recreate the same experience you'd get on NixOS, but on CachyOS. All the install scripts are written by Curor's AI, there might be some inaccuracies. Equivalent alternatives for Nix-specific stuff are provided wherever possible.
|
||||
@@ -1,45 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Master Installation Script for Hyprland Rice on CachyOS
|
||||
# Runs all installation and setup scripts in the correct order
|
||||
|
||||
set -e
|
||||
|
||||
echo "🚀 OCbwoy3 Dotfiles - CachyOS"
|
||||
echo "============================="
|
||||
echo ""
|
||||
|
||||
# Get the directory where this script is located
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
echo "📋 This script will:"
|
||||
echo " 1. Install all required packages for your Hyprland rice"
|
||||
echo " 2. Install Ralsei cursors"
|
||||
echo " 3. Set up configuration symlinks and final configuration"
|
||||
echo ""
|
||||
echo "⚠️ This process may take a while and will require sudo privileges"
|
||||
echo ""
|
||||
read -p "Continue? (y/N): " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "❌ Installation cancelled"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "🔧 CHModing +x install scripts"
|
||||
chmod +x "$SCRIPT_DIR"/*.sh
|
||||
|
||||
echo ""
|
||||
echo "📦 [1/3] Install packages"
|
||||
"$SCRIPT_DIR/install-packages.sh"
|
||||
|
||||
echo ""
|
||||
echo "🎮 [2/3] Installing cursors"
|
||||
"$SCRIPT_DIR/install-cursors.sh"
|
||||
|
||||
echo ""
|
||||
echo "⚙️ [3/3] Installing Hyprland"
|
||||
"$SCRIPT_DIR/setup.sh"
|
||||
|
||||
echo "🚀 Done!"
|
||||
@@ -1,55 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Ralsei Cursors Installation Script for CachyOS
|
||||
# Installs custom Ralsei cursor theme
|
||||
|
||||
set -e
|
||||
|
||||
echo "🎮 Installing Ralsei cursors..."
|
||||
|
||||
# Create cursor directory
|
||||
CURSOR_DIR="$HOME/.local/share/icons/RalseiCursors"
|
||||
mkdir -p "$CURSOR_DIR"
|
||||
|
||||
# Copy cursor files from config directory
|
||||
CONFIG_DIR="~/config"
|
||||
CURSOR_SOURCE="$CONFIG_DIR/hosts/default/packages/ralsei-cursors/cursors"
|
||||
|
||||
if [ -d "$CURSOR_SOURCE" ]; then
|
||||
echo "📁 Copying cursor files..."
|
||||
cp -r "$CURSOR_SOURCE"/* "$CURSOR_DIR/"
|
||||
|
||||
# Copy theme index file
|
||||
if [ -f "$CONFIG_DIR/hosts/default/packages/ralsei-cursors/index.theme" ]; then
|
||||
cp "$CONFIG_DIR/hosts/default/packages/ralsei-cursors/index.theme" "$CURSOR_DIR/"
|
||||
fi
|
||||
|
||||
echo "✅ Ralsei cursors copied successfully!"
|
||||
else
|
||||
echo "❌ Cursor source directory not found at: $CURSOR_SOURCE"
|
||||
echo "Please ensure your config directory structure is correct."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Update icon cache
|
||||
echo "🔄 Updating icon cache..."
|
||||
if command -v gtk-update-icon-cache &> /dev/null; then
|
||||
gtk-update-icon-cache -f -t "$CURSOR_DIR"
|
||||
echo "✅ Icon cache updated!"
|
||||
else
|
||||
echo "⚠️ gtk-update-icon-cache not found. You may need to install gtk-update-icon-cache"
|
||||
fi
|
||||
|
||||
# Set as default cursor theme (optional - user can do this manually)
|
||||
echo "🎯 Setting Ralsei cursors as default..."
|
||||
if command -v gsettings &> /dev/null; then
|
||||
gsettings set org.gnome.desktop.interface cursor-theme "RalseiCursors"
|
||||
echo "✅ Cursor theme set as default!"
|
||||
else
|
||||
echo "⚠️ gsettings not found. You may need to set the cursor theme manually."
|
||||
fi
|
||||
|
||||
# Alternative method using XDG
|
||||
if command -v xdg-settings &> /dev/null; then
|
||||
xdg-settings set cursor-theme "RalseiCursors" 2>/dev/null || true
|
||||
fi
|
||||
@@ -1,129 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "🚀 Installing packages for Hyprland"
|
||||
|
||||
# Update system first
|
||||
# echo "📦 Updating system"
|
||||
# sudo pacman -Syu --noconfirm
|
||||
|
||||
# Core Hyprland packages
|
||||
echo "🎨 Installing Hyprland apps"
|
||||
sudo pacman -S --needed --noconfirm \
|
||||
hyprland \
|
||||
waybar \
|
||||
wofi \
|
||||
hyprpaper \
|
||||
dunst \
|
||||
hyprlock \
|
||||
hypridle \
|
||||
swww
|
||||
|
||||
# Essential Wayland tools
|
||||
echo "🔧 Installing Wayland apps"
|
||||
sudo pacman -S --needed --noconfirm \
|
||||
grim \
|
||||
slurp \
|
||||
swappy \
|
||||
wl-clipboard \
|
||||
wayland-utils \
|
||||
cliphist \
|
||||
libnotify
|
||||
|
||||
# Audio and media
|
||||
echo "🎵 Installing media apps"
|
||||
sudo pacman -S --needed --noconfirm \
|
||||
pavucontrol \
|
||||
playerctl \
|
||||
mpv \
|
||||
ffmpeg \
|
||||
gimp \
|
||||
imagemagick
|
||||
|
||||
# Fonts
|
||||
echo "🔤 Installing fonts"
|
||||
sudo pacman -S --needed --noconfirm \
|
||||
noto-fonts \
|
||||
noto-fonts-cjk \
|
||||
noto-fonts-emoji \
|
||||
ttf-nerd-fonts-symbols \
|
||||
ttf-jetbrains-mono \
|
||||
ttf-fira-code
|
||||
|
||||
# Development tools
|
||||
echo "💻 Installing dev tools"
|
||||
sudo pacman -S --needed --noconfirm \
|
||||
npm \
|
||||
git \
|
||||
github-cli \
|
||||
nix \
|
||||
bun
|
||||
|
||||
# System utilities
|
||||
echo "🛠️ Installing system tools"
|
||||
sudo pacman -S --needed --noconfirm \
|
||||
htop \
|
||||
btop \
|
||||
fastfetch \
|
||||
wget \
|
||||
curl \
|
||||
unzip \
|
||||
jq \
|
||||
networkmanager \
|
||||
blueman \
|
||||
network-manager-applet \
|
||||
ghostty
|
||||
|
||||
# Gaming
|
||||
echo "🎮 Installing gaming stuff"
|
||||
sudo pacman -S --needed --noconfirm \
|
||||
steam \
|
||||
gamescope \
|
||||
mangohud
|
||||
|
||||
# DE
|
||||
echo "🖥️ Installing DE components"
|
||||
sudo pacman -S --needed --noconfirm \
|
||||
gnome-keyring \
|
||||
seahorse \
|
||||
polkit-gnome \
|
||||
xdg-desktop-portal \
|
||||
xdg-desktop-portal-gtk \
|
||||
xdg-desktop-portal-wlr \
|
||||
qt5ct \
|
||||
qt6ct \
|
||||
prismlauncher
|
||||
|
||||
# File manager
|
||||
echo "📁 Installing file manager"
|
||||
sudo pacman -S --needed --noconfirm \
|
||||
nautilus
|
||||
|
||||
echo "🔍 Installing more tools..."
|
||||
sudo pacman -S --needed --noconfirm \
|
||||
vesktop \
|
||||
obs-studio \
|
||||
kitty
|
||||
|
||||
# Install AUR packages
|
||||
echo "📦 Installing AUR packages"
|
||||
if command -v yay &> /dev/null; then
|
||||
echo "Using yay for AUR packages..."
|
||||
yay -S --needed --noconfirm \
|
||||
hyprsysteminfo \
|
||||
catppuccin-gtk-theme-mocha \
|
||||
catppuccin-cursors-mocha-blue \
|
||||
catppuccin-kde \
|
||||
catppuccin-papirus-folders \
|
||||
catppuccin-waybar-hyprland \
|
||||
brave-bin
|
||||
else
|
||||
echo "⚠️ Please install yay"
|
||||
echo "sudo pacman -S cachyos/yay"
|
||||
fi
|
||||
|
||||
# Enable services
|
||||
echo "🔧 Enabling services"
|
||||
sudo systemctl enable NetworkManager
|
||||
sudo systemctl enable bluetooth
|
||||
172
cachyos/setup.sh
@@ -1,172 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Setup Script for Hyprland Rice Configuration
|
||||
# Creates symlinks and performs final setup
|
||||
|
||||
set -e
|
||||
|
||||
echo "🔧 Setting up Hyprland rice configuration..."
|
||||
|
||||
CONFIG_DIR="~/config"
|
||||
USER_HOME="$HOME"
|
||||
XDG_CONFIG_HOME="$USER_HOME/.config"
|
||||
|
||||
# Function to create symlink
|
||||
create_symlink() {
|
||||
local source="$1"
|
||||
local target="$2"
|
||||
local description="$3"
|
||||
|
||||
if [ -e "$source" ]; then
|
||||
echo "🔗 Creating symlink: $description"
|
||||
# Remove existing file/directory if it exists
|
||||
[ -e "$target" ] && rm -rf "$target"
|
||||
# Create parent directory if it doesn't exist
|
||||
mkdir -p "$(dirname "$target")"
|
||||
# Create symlink
|
||||
ln -sf "$source" "$target"
|
||||
echo " ✅ $description configured"
|
||||
else
|
||||
echo " ⚠️ Source not found: $source"
|
||||
fi
|
||||
}
|
||||
|
||||
# Create configuration symlinks
|
||||
echo "📁 Setting up configuration symlinks..."
|
||||
|
||||
# Hyprland configuration
|
||||
create_symlink "$CONFIG_DIR/config/hypr" "$XDG_CONFIG_HOME/hypr" "Hyprland configuration"
|
||||
|
||||
# Waybar configuration
|
||||
create_symlink "$CONFIG_DIR/config/waybar" "$XDG_CONFIG_HOME/waybar" "Waybar configuration"
|
||||
|
||||
# Wofi configuration
|
||||
create_symlink "$CONFIG_DIR/config/wofi" "$XDG_CONFIG_HOME/wofi" "Wofi configuration"
|
||||
|
||||
# Dunst configuration
|
||||
create_symlink "$CONFIG_DIR/config/dunst" "$XDG_CONFIG_HOME/dunst" "Dunst notification daemon"
|
||||
|
||||
# Ghostty configuration
|
||||
create_symlink "$CONFIG_DIR/config/ghostty" "$XDG_CONFIG_HOME/ghostty" "Ghostty terminal configuration"
|
||||
|
||||
# Wlogout configuration
|
||||
create_symlink "$CONFIG_DIR/config/wlogout" "$XDG_CONFIG_HOME/wlogout" "Wlogout configuration"
|
||||
|
||||
# Qt5CT configuration
|
||||
create_symlink "$CONFIG_DIR/config/qt5ct" "$XDG_CONFIG_HOME/qt5ct" "Qt5CT configuration"
|
||||
|
||||
# Fastfetch configuration
|
||||
create_symlink "$CONFIG_DIR/config/fastfetch" "$XDG_CONFIG_HOME/fastfetch" "Fastfetch configuration"
|
||||
|
||||
# XDG Desktop Portal configuration
|
||||
create_symlink "$CONFIG_DIR/config/xdg-desktop-portal" "$XDG_CONFIG_HOME/xdg-desktop-portal" "XDG Desktop Portal configuration"
|
||||
|
||||
# Create fonts directory and symlink custom font
|
||||
echo "🔤 Setting up fonts..."
|
||||
FONT_DIR="$USER_HOME/.local/share/fonts"
|
||||
mkdir -p "$FONT_DIR"
|
||||
create_symlink "$CONFIG_DIR/config/dotfile_deps/DotfilesFont.otf" "$FONT_DIR/DotfilesFont.otf" "Custom Dotfiles font"
|
||||
|
||||
# Set up GTK configuration
|
||||
echo "🎨 Setting up GTK configuration..."
|
||||
GTK_CONFIG_DIR="$XDG_CONFIG_HOME/gtk-3.0"
|
||||
mkdir -p "$GTK_CONFIG_DIR"
|
||||
create_symlink "$CONFIG_DIR/config/gtk-3.0/settings.ini" "$GTK_CONFIG_DIR/settings.ini" "GTK3 settings"
|
||||
|
||||
# Install Arashi icon theme
|
||||
echo "🎯 Installing Arashi icon theme..."
|
||||
ARASHI_THEME_DIR="$USER_HOME/.local/share/icons/Arashi"
|
||||
ARASHI_REPO="https://github.com/0hStormy/Arashi"
|
||||
|
||||
if [ ! -d "$ARASHI_THEME_DIR" ]; then
|
||||
mkdir -p "$USER_HOME/.local/share/icons/"
|
||||
echo " 📥 Cloning Arashi icon theme from GitHub..."
|
||||
git clone "$ARASHI_REPO" "$ARASHI_THEME_DIR"
|
||||
echo " ✅ Arashi icon theme installed from GitHub"
|
||||
else
|
||||
echo " ✅ Arashi icon theme already installed"
|
||||
fi
|
||||
|
||||
# Set up desktop environment
|
||||
echo "🖥️ Configuring desktop environment..."
|
||||
|
||||
# Set GTK theme
|
||||
if command -v gsettings &> /dev/null; then
|
||||
echo "🎨 Setting GTK themes..."
|
||||
gsettings set org.gnome.desktop.interface gtk-theme "Catppuccin-Mocha-Standard-Blue-Dark"
|
||||
gsettings set org.gnome.desktop.interface icon-theme "Arashi"
|
||||
gsettings set org.gnome.desktop.interface cursor-theme "RalseiCursors"
|
||||
gsettings set org.gnome.desktop.interface font-name "Noto Sans 11"
|
||||
gsettings set org.gnome.desktop.wm.preferences theme "Catppuccin-Mocha-Standard-Blue-Dark"
|
||||
echo " ✅ GTK themes configured"
|
||||
fi
|
||||
|
||||
# Set Qt theme
|
||||
echo "🎨 Setting Qt themes..."
|
||||
if command -v qt5ct &> /dev/null; then
|
||||
echo " ✅ Qt5CT available for Qt5 theme configuration"
|
||||
fi
|
||||
|
||||
if command -v qt6ct &> /dev/null; then
|
||||
echo " ✅ Qt6CT available for Qt6 theme configuration"
|
||||
fi
|
||||
|
||||
# Configure XDG directories
|
||||
echo "📂 Setting up XDG directories..."
|
||||
mkdir -p "$USER_HOME/.local/share/applications"
|
||||
mkdir -p "$USER_HOME/.local/share/mime"
|
||||
mkdir -p "$USER_HOME/.cache"
|
||||
|
||||
# Set up environment variables
|
||||
echo "🌍 Setting up environment variables..."
|
||||
sudo tee -a /etc/environment << EOF
|
||||
|
||||
# Hyprland rice environment variables
|
||||
XDG_TERMINAL=ghostty
|
||||
XDG_SYSTEM_MONITOR=htop
|
||||
GTK_USE_PORTAL=1
|
||||
QT_QPA_PLATFORMTHEME=qt5ct
|
||||
EOF
|
||||
echo " ✅ Environment variables configured in /etc/environment"
|
||||
|
||||
# Create useful scripts
|
||||
echo "📝 Creating useful scripts..."
|
||||
SCRIPTS_DIR="$USER_HOME/.local/bin"
|
||||
mkdir -p "$SCRIPTS_DIR"
|
||||
|
||||
# Roblox game scripts
|
||||
cat > "$SCRIPTS_DIR/regretevator" << 'EOF'
|
||||
#!/bin/bash
|
||||
xdg-open roblox://placeId=4972273297
|
||||
EOF
|
||||
|
||||
cat > "$SCRIPTS_DIR/kaijuparadise" << 'EOF'
|
||||
#!/bin/bash
|
||||
xdg-open roblox://placeId=6456351776
|
||||
EOF
|
||||
|
||||
cat > "$SCRIPTS_DIR/sewh" << 'EOF'
|
||||
#!/bin/bash
|
||||
xdg-open roblox://placeId=16991287194
|
||||
EOF
|
||||
|
||||
# Make scripts executable
|
||||
chmod +x "$SCRIPTS_DIR/regretevator"
|
||||
chmod +x "$SCRIPTS_DIR/kaijuparadise"
|
||||
chmod +x "$SCRIPTS_DIR/sewh"
|
||||
|
||||
echo " ✅ Roblox game scripts created"
|
||||
|
||||
# Update font cache
|
||||
echo "🔄 Updating font cache..."
|
||||
if command -v fc-cache &> /dev/null; then
|
||||
fc-cache -fv
|
||||
echo " ✅ Font cache updated"
|
||||
fi
|
||||
|
||||
# Update icon cache
|
||||
echo "🔄 Updating icon cache..."
|
||||
if command -v gtk-update-icon-cache &> /dev/null; then
|
||||
gtk-update-icon-cache -f -t "$USER_HOME/.local/share/icons" 2>/dev/null || true
|
||||
echo " ✅ Icon cache updated"
|
||||
fi
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
### Text ###
|
||||
|
||||
font = SF Pro Display 11, SFProJPDisplay-Regular 11
|
||||
font = 8-bit Operator+, 8bitoperator JVE, Determination Mono, SF Pro Display 11, SFProJPDisplay-Regular 11
|
||||
line_height = 0
|
||||
markup = full
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
|
||||
### Misc/Advanced ###
|
||||
dmenu = w -p dunst:
|
||||
browser = zen
|
||||
browser = zen-beta
|
||||
always_run_script = true
|
||||
title = Dunst
|
||||
class = Dunst
|
||||
@@ -115,7 +115,7 @@
|
||||
timeout = 10
|
||||
|
||||
[hyprland_welcome_new]
|
||||
summary = "Sveicināti Hyprland!"
|
||||
summary = "Welcome to Hyprland!"
|
||||
background = "#1e1e2e"
|
||||
frame_color = "#a6e3a1"
|
||||
foreground = "#a6e3a1"
|
||||
@@ -128,13 +128,13 @@
|
||||
foreground = "#fab387"
|
||||
|
||||
[dotfiles_kbd]
|
||||
summary = "Tastatūra"
|
||||
summary = "Keyboard"
|
||||
background = "#1e1e2e"
|
||||
frame_color = "#fab387"
|
||||
foreground = "#fab387"
|
||||
|
||||
[dotfiles_wallpaper]
|
||||
summary = "Fons"
|
||||
summary = "Wallpaper"
|
||||
background = "#1e1e2e"
|
||||
frame_color = "#fab387"
|
||||
foreground = "#fab387"
|
||||
@@ -146,13 +146,13 @@
|
||||
frame_color = "#f38ba8"
|
||||
|
||||
[dotfiles_screenshot]
|
||||
summary = "Ekrānuzņēmums"
|
||||
summary = "Screenshot"
|
||||
background = "#1e1e2e"
|
||||
frame_color = "#89dceb"
|
||||
foreground = "#89dceb"
|
||||
|
||||
[dotfiles_error]
|
||||
summary = "Kļūda"
|
||||
summary = "Error"
|
||||
background = "#1e1e2e"
|
||||
foreground = "#f38ba8"
|
||||
frame_color = "#f38ba8"
|
||||
|
||||
@@ -1,100 +0,0 @@
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||
"logo": {
|
||||
"source": "~/.config/fastfetch/ralsei.png",
|
||||
},
|
||||
"display": {
|
||||
"color": "magenta",
|
||||
},
|
||||
"modules": [
|
||||
"break",
|
||||
|
||||
{
|
||||
"type": "title",
|
||||
"keyColor": "blue",
|
||||
"format": "{user-name-colored}{at-symbol-colored}{host-name-colored}",
|
||||
},
|
||||
|
||||
"break",
|
||||
|
||||
{
|
||||
"type": "os",
|
||||
"key": "OS",
|
||||
"format": "{pretty-name}",
|
||||
},
|
||||
{
|
||||
"type": "kernel",
|
||||
// "format": "Linux 6.17.0-2-cachyos-ralsei-rt-bore-lto"
|
||||
},
|
||||
// "packages",
|
||||
|
||||
"break",
|
||||
|
||||
"host",
|
||||
"uptime",
|
||||
|
||||
"break",
|
||||
|
||||
{
|
||||
"type": "cpu",
|
||||
"format": "{cores-logical}x {name} @ {freq-base} {temperature}",
|
||||
"temp": true,
|
||||
},
|
||||
{
|
||||
"type": "gpu",
|
||||
"format": "{name} [{type}] {temperature}",
|
||||
"temp": true,
|
||||
},
|
||||
|
||||
"break",
|
||||
|
||||
"memory",
|
||||
"disk",
|
||||
|
||||
"break",
|
||||
|
||||
{
|
||||
"type": "wm",
|
||||
"key": "WM",
|
||||
"format": "{pretty-name}",
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"key": "Shell",
|
||||
"format": "{pretty-name}",
|
||||
},
|
||||
"terminal",
|
||||
"locale",
|
||||
|
||||
/*
|
||||
"break",
|
||||
|
||||
{
|
||||
"type": "weather",
|
||||
"location": "Latvia",
|
||||
"timeout": 1000,
|
||||
"outputFormat": "%t+-+%C"
|
||||
},
|
||||
*/
|
||||
|
||||
"break",
|
||||
|
||||
{
|
||||
"type": "media",
|
||||
"key": "Song",
|
||||
"format": "{artist} — {title}",
|
||||
},
|
||||
{
|
||||
"type": "media",
|
||||
"key": "Album",
|
||||
"format": "{album}",
|
||||
},
|
||||
|
||||
"break",
|
||||
|
||||
{
|
||||
"type": "colors",
|
||||
"symbol": "circle",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
Before Width: | Height: | Size: 379 KiB |
@@ -1,11 +0,0 @@
|
||||
font-family = "SF Mono"
|
||||
theme = Catppuccin Mocha
|
||||
background-opacity = 0.7
|
||||
window-padding-x = 16
|
||||
window-padding-y = 16
|
||||
font-feature = -calt
|
||||
font-feature = -liga
|
||||
font-feature = -dlig
|
||||
gtk-single-instance = true
|
||||
window-decoration = none
|
||||
|
||||
2
config/gtk-3.0/.gitignore
vendored
@@ -1,2 +0,0 @@
|
||||
bookmarks
|
||||
bookmarks_2
|
||||
@@ -1,17 +0,0 @@
|
||||
[Settings]
|
||||
gtk-theme-name=catppuccin-mocha-blue-standard+default
|
||||
gtk-icon-theme-name=Arashi
|
||||
gtk-font-name=Noto Sans 11
|
||||
gtk-cursor-theme-name=RalseiCursors
|
||||
gtk-cursor-theme-size=24
|
||||
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||
gtk-button-images=0
|
||||
gtk-menu-images=0
|
||||
gtk-enable-event-sounds=1
|
||||
gtk-enable-input-feedback-sounds=0
|
||||
gtk-xft-antialias=1
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle=hintslight
|
||||
gtk-xft-rgba=rgb
|
||||
gtk-application-prefer-dark-theme=0
|
||||
@@ -1,39 +1,35 @@
|
||||
# Polkit
|
||||
# exec-once = systemctl --user start /nix/store/*-hyprpolkitagent-*/libexec/hyprpolkitagent
|
||||
|
||||
# Waybar
|
||||
exec-once = "GTK_THEME=Adwaita LC_TIME=lv_LV.UTF-8 waybar -c ~/config/config/waybar/config -s ~/config/config/waybar/style.css"
|
||||
exec-once = systemctl --user start /nix/store/*-hyprpolkitagent-*/libexec/hyprpolkitagent
|
||||
exec-once = /usr/lib/hyprpolkitagent/hyprpolkitagent
|
||||
|
||||
# Wallpaper
|
||||
exec-once = swww-daemon
|
||||
|
||||
# Notification Manager
|
||||
exec-once = dunst
|
||||
|
||||
# Gentoo Stuff
|
||||
exec-once = bash ~/config/scripts/gentoo-init.sh
|
||||
exec-once = bash /etc/nixos/scripts/gentoo-init.sh
|
||||
|
||||
# Clipboard Manager
|
||||
exec-once = wl-paste --watch cliphist store
|
||||
|
||||
# XDG Desktop Portal
|
||||
exec-once = bash ~/config/scripts/xdg.sh
|
||||
|
||||
# Set GTK Settings
|
||||
exec-once = bash ~/config/scripts/gtk.sh
|
||||
exec-once = bash /etc/nixos/scripts/xdg.sh
|
||||
|
||||
# Start Hot Reload
|
||||
exec-once = bash ~/config/scripts/hot-reload.sh
|
||||
exec-once = bash /etc/nixos/scripts/hot-reload.sh
|
||||
|
||||
# Hyprland polkit
|
||||
exec-once = /usr/libexec/hyprpolkitagent
|
||||
exec-once = /usr/lib/hyprpolkitagent/hyprpolkitagent
|
||||
|
||||
exec-once = [workspace special:music silent] cider
|
||||
exec-once = [workspace special:quick silent] equibop
|
||||
|
||||
# exec-once = arrpc
|
||||
|
||||
# deltarune
|
||||
exec-once = qs
|
||||
|
||||
# Hyprland Splash
|
||||
# exec-once = "sleep 5 && bun run scripts/bin/betterSplash.ts"
|
||||
exec-once = sleep 5 && notify-send "Sveicināti Hyprland!" "$(hyprctl splash)"
|
||||
exec-once = sleep 5 && notify-send -a dotfiles "Welcome to Hyprland!" "$(hyprctl splash)"
|
||||
|
||||
# exec-once = nix-shell -p mpvpaper --command "mpvpaper -o \"no-audio loop loop-playlist\" HDMI-A-2 \"/home/ralsei/Documents/Boykisser Chipi Chipi Full Animation [3sP6ZvlqJeE].webm\""
|
||||
|
||||
|
||||
@@ -15,8 +15,11 @@ general {
|
||||
gaps_out = 20
|
||||
border_size = 2
|
||||
|
||||
col.active_border = rgb(89b4fa)
|
||||
col.inactive_border = rgb(585b70)
|
||||
col.active_border = rgb(ffffff)
|
||||
col.inactive_border = rgb(ffffff)
|
||||
|
||||
# col.active_border = rgb(89b4fa)
|
||||
# col.inactive_border = rgb(585b70)
|
||||
|
||||
resize_on_border = false
|
||||
allow_tearing = true
|
||||
@@ -29,7 +32,7 @@ general {
|
||||
#############################################
|
||||
|
||||
decoration {
|
||||
rounding = 12
|
||||
# rounding = 12
|
||||
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
@@ -103,7 +106,7 @@ cursor {
|
||||
|
||||
windowrule {
|
||||
name = games
|
||||
match:class = org.vinegarhq.Sober|com.mojang.minecraft.java-edition|deltarune.exe|steam_app_1671210
|
||||
match:class = org\.vinegarhq\.Sober|com\.mojang\.minecraft\.java-edition|deltarune\.exe|steam_app_1671210
|
||||
tag = +game
|
||||
}
|
||||
|
||||
@@ -113,9 +116,16 @@ windowrule {
|
||||
tag = +discord
|
||||
}
|
||||
|
||||
|
||||
windowrule {
|
||||
name = roblox
|
||||
match:class = org\.vinegarhq\.Sober
|
||||
tag = +roblox
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = deltarune
|
||||
match:class = deltarune.exe|steam_app_1671210
|
||||
match:class = deltarune\.exe|steam_app_1671210
|
||||
tag = +deltarune
|
||||
}
|
||||
|
||||
@@ -158,7 +168,7 @@ misc {
|
||||
enable_anr_dialog = true
|
||||
disable_hyprland_logo = false
|
||||
initial_workspace_tracking = 0
|
||||
new_window_takes_over_fullscreen = 1
|
||||
# new_window_takes_over_fullscreen = 1
|
||||
disable_splash_rendering = false
|
||||
font_family = "SF Pro Display"
|
||||
render_unfocused_fps = 240
|
||||
@@ -170,15 +180,6 @@ misc {
|
||||
# LAYER RULES
|
||||
#############################################
|
||||
|
||||
layerrule {
|
||||
name = waybar
|
||||
match:namespace = waybar
|
||||
animation = slide top
|
||||
above_lock = 2
|
||||
order = -20
|
||||
no_screen_share = off
|
||||
}
|
||||
|
||||
layerrule {
|
||||
name = notifications
|
||||
match:namespace = notifications
|
||||
@@ -186,14 +187,6 @@ layerrule {
|
||||
above_lock = 2
|
||||
}
|
||||
|
||||
layerrule {
|
||||
name = wofi
|
||||
match:namespace = wofi
|
||||
animation = popin 70%
|
||||
dim_around = on
|
||||
order = -10
|
||||
}
|
||||
|
||||
layerrule {
|
||||
name = shimeji
|
||||
match:namespace = wl_shimeji
|
||||
@@ -213,8 +206,8 @@ layerrule {
|
||||
#############################################
|
||||
|
||||
windowrule {
|
||||
name = blueman music internet
|
||||
match:class = blueman-manager|blueman-manager-wrapped|org.pulseaudio.pavucontrol|nm-connection-editor|nm-connection-editor-wrapped
|
||||
name = utility windows
|
||||
match:class = org\.kde\.systemsettings|systemsettings
|
||||
float = true
|
||||
size = 900 500
|
||||
center = true
|
||||
@@ -224,7 +217,12 @@ windowrule {
|
||||
# OTHER
|
||||
#############################################
|
||||
|
||||
windowrule = match:class steam_proton|org.vinegarhq.Sober, allows_input on
|
||||
windowrule = match:class steam_proton|org\.vinegarhq\.Sober, allows_input on
|
||||
|
||||
env = QT_QPA_PLATFORMTHEME,qtct
|
||||
env = QT_STYLE_OVERRIDE,Darkly
|
||||
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||
|
||||
|
||||
# windowrulev2 = immediate, class:^(sober)$
|
||||
# windowrulev2 = fullscreen,title:^(Sober)$
|
||||
|
||||
@@ -6,9 +6,10 @@ bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, T, exec, $menu
|
||||
bind = $mainMod, A, exec, qs ipc call deltarune.shell toggleQuickSettings
|
||||
bind = $mainMod, Y, exec, $browser
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
bind = $mainMod, J, layoutmsg, togglesplit, # dwindle
|
||||
bind = $mainMod, F, fullscreen
|
||||
|
||||
# Window focus keybinds
|
||||
@@ -62,15 +63,14 @@ bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Function keys ( FN + F[1-12] )
|
||||
bindl = , XF86MonBrightnessUp, exec, brightnessctl -q s +10%
|
||||
bindl = , XF86MonBrightnessDown, exec, brightnessctl -q s 10%-
|
||||
bindl = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindl = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindl = , XF86AudioPlay, exec, playerctl -p cider,chromium,OCbwoy3_s_iPhone,OCbwoy3__s_iPhone,OCbwoy3___s_iPhone,cmus play-pause
|
||||
bindl = , XF86AudioPause, exec, playerctl -p cider,chromium,OCbwoy3_s_iPhone,OCbwoy3__s_iPhone,OCbwoy3___s_iPhone,cmus pause
|
||||
bindl = , XF86AudioNext, exec, playerctl -p cider,chromium,OCbwoy3_s_iPhone,OCbwoy3__s_iPhone,OCbwoy3___s_iPhone,cmus next
|
||||
bindl = , XF86AudioPrev, exec, playerctl -p cider,chromium,OCbwoy3_s_iPhone,OCbwoy3__s_iPhone,OCbwoy3___s_iPhone,cmus previous
|
||||
bindl = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
bindlu = , XF86MonBrightnessUp, exec, brightnessctl -q s +10%
|
||||
bindlu = , XF86MonBrightnessDown, exec, brightnessctl -q s 10%-
|
||||
bindlu = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindlu = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindlu = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindlu = , XF86AudioPlay, exec, playerctl -p cider,chromium,Kris___s_iPhone,OCbwoy3__s_iPhone,OCbwoy3___s_iPhone,cmus play-pause
|
||||
bindlu = , XF86AudioPause, exec, playerctl -p cider,chromium,Kris___s_iPhone,OCbwoy3__s_iPhone,OCbwoy3___s_iPhone,cmus pause
|
||||
bindlu = , XF86AudioNext, exec, playerctl -p cider,chromium,Kris___s_iPhone,OCbwoy3__s_iPhone,OCbwoy3___s_iPhone,cmus next
|
||||
bindlu = , XF86AudioPrev, exec, playerctl -p cider,chromium,Kris___s_iPhone,OCbwoy3__s_iPhone,OCbwoy3___s_iPhone,cmus previous
|
||||
bindlu = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
bindl = , XF86Lock, exec, pkill -USR1 hyprlock || hyprlock
|
||||
|
||||
|
||||
@@ -6,31 +6,31 @@ bind = $mainMod, GRAVE, togglespecialworkspace, music
|
||||
bind = $mainMod SHIFT, GRAVE, movetoworkspace, special:music
|
||||
|
||||
# Hot reload
|
||||
bind = $mainMod SHIFT, B, exec, bash ~/config/scripts/hot-reload.sh
|
||||
bind = $mainMod SHIFT, B, exec, bash /etc/nixos/scripts/hot-reload.sh
|
||||
|
||||
# Wallpaper
|
||||
bind = $mainMod SHIFT, RETURN, exec, pkill wofi || bash ~/config/scripts/select-wallpaper.sh
|
||||
bind = $mainMod SHIFT, RETURN, exec, bash /etc/nixos/scripts/select-wallpaper.sh
|
||||
|
||||
# Screenshot keybinds
|
||||
bind = $mainMod, PRINT, exec, bash ~/config/scripts/screenshot-selection.sh
|
||||
bind = $mainMod SHIFT, PRINT, exec, bash ~/config/scripts/screenshot-fullscreen.sh
|
||||
bind = $mainMod CTRL SHIFT, PRINT, exec, bash ~/config/scripts/edit-last-screenshot.sh
|
||||
bindu = , PRINT, exec, bash -lc 'env -u QT_STYLE_OVERRIDE QT_QPA_PLATFORMTHEME=qt6ct QT_QPA_PLATFORM=wayland flameshot gui'
|
||||
bindu = $mainMod SHIFT, PRINT, exec, bash -lc 'env -u QT_STYLE_OVERRIDE QT_QPA_PLATFORMTHEME=qt6ct QT_QPA_PLATFORM=wayland flameshot full --path ~/Pictures/Screenshots'
|
||||
bind = $mainMod CTRL SHIFT, PRINT, exec, bash -lc 'env -u QT_STYLE_OVERRIDE QT_QPA_PLATFORMTHEME=qt6ct QT_QPA_PLATFORM=wayland flameshot launcher'
|
||||
|
||||
# Music Get Keybind
|
||||
|
||||
# input:repeat_delay = 10
|
||||
bindel = $mainMod, BACKSLASH, exec, bash ~/config/scripts/whatsplaying.sh
|
||||
bindrl = $mainMod, BACKSLASH, exec, bash ~/config/scripts/whatsplaying.sh rel
|
||||
bindelu = $mainMod, BACKSLASH, exec, bash /etc/nixos/scripts/whatsplaying.sh
|
||||
# bindrl = $mainMod, BACKSLASH, exec, bash ~/config/scripts/whatsplaying.sh rel
|
||||
|
||||
# Global shit
|
||||
bind = ALT, F9, pass, class:^(com\.obsproject\.Studio)$
|
||||
|
||||
# Music volume control
|
||||
bindl = $mainMod, XF86AudioRaiseVolume, exec, playerctl -p chromium,cmus,elisa,cider,spotify,OCbwoy3_s_iPhone,OCbwoy3__s_iPhone,OCbwoy3___s_iPhone volume 0.02+
|
||||
bindl = $mainMod, XF86AudioLowerVolume, exec, playerctl -p chromium,cmus,elisa,cider,spotify,OCbwoy3_s_iPhone,OCbwoy3__s_iPhone,OCbwoy3___s_iPhone volume 0.02-
|
||||
bindl = $mainMod, XF86AudioRaiseVolume, exec, playerctl -p chromium,cmus,elisa,cider,spotify,Kris___s_iPhone,OCbwoy3__s_iPhone,OCbwoy3___s_iPhone volume 0.02+
|
||||
bindl = $mainMod, XF86AudioLowerVolume, exec, playerctl -p chromium,cmus,elisa,cider,spotify,Kris___s_iPhone,OCbwoy3__s_iPhone,OCbwoy3___s_iPhone volume 0.02-
|
||||
|
||||
# Screen locker and logout keybinds
|
||||
bind = CTRL ALT, DELETE, exec, wlogout
|
||||
bind = CTRL ALT, DELETE, exec, qs ipc call deltarune.shell togglePowerMenu
|
||||
bindl = SUPER SHIFT, L, exec, pkill -9 hyprlock || hyprlock
|
||||
|
||||
# Group Stuff, complicated stuff. Enable if you dare!
|
||||
@@ -45,8 +45,8 @@ bindl = SUPER SHIFT, L, exec, pkill -9 hyprlock || hyprlock
|
||||
# bind = $mainMod CTRL ALT, down, moveintogroup, d
|
||||
|
||||
# zoom
|
||||
bind = $mainMod SHIFT CTRL, mouse_down, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 1.25}')"
|
||||
bind = $mainMod SHIFT CTRL, mouse_up, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 1.25}')"
|
||||
bindu = $mainMod SHIFT CTRL, mouse_down, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 1.25}')"
|
||||
bindu = $mainMod SHIFT CTRL, mouse_up, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 1.25}')"
|
||||
|
||||
bind = $mainMod SHIFT, M, exec, bun run $HOME/config/scripts/bin/r2Upload.ts
|
||||
bind = $mainMod, F1, exec, bash $HOME/config/scripts/roblox-fullscreen.sh
|
||||
@@ -54,7 +54,7 @@ bind = $mainMod, F2, exec, bash -c "xdg-open roblox://"
|
||||
bind = $mainMod, F5, exec, notify-send -u critical "Hyprland" "Enabled debug overlay" && hyprctl keyword debug:overlay 1
|
||||
# bind = $mainMod SHIFT, F3, exec, bash -c "NIXPKGS_ALLOW_UNFREE=1 nix-shell -p osu-lazer-bin --command osu\!"
|
||||
|
||||
bind = $mainMod CTRL SHIFT, F9, exec, pkill wofi || bash $HOME/config/scripts/open-game.sh
|
||||
bind = $mainMod CTRL SHIFT, F9, exec, bash $HOME/config/scripts/open-game.sh
|
||||
|
||||
bind = $mainMod SHIFT, F, fullscreen, 1
|
||||
bind = $mainMod, SPACE, exec, bash $HOME/config/scripts/toggle-language.sh
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
ecosystem {
|
||||
enforce_permissions = true
|
||||
enforce_permissions = false
|
||||
}
|
||||
|
||||
permission = /nix/store/[A-Za-z0-9]+\-(wrapped-)?(grim|hyprlock|xdg-desktop-portal-hyprland|obs-studio|hyprpicker)\-.*, screencopy, allow
|
||||
|
||||
25
config/hypr/config/plugin.conf
Normal file
@@ -0,0 +1,25 @@
|
||||
plugin:imgborders {
|
||||
enabled = true
|
||||
image = /etc/nixos/asset/thirdparty/deltarune/border.png
|
||||
sizes = 52,52,52,52 # left, right, top, bottom
|
||||
insets = 20,20,20,20 # left, right, top, bottom
|
||||
# 16 16+8=24 16+4=20
|
||||
# 1 = the same scale in deltarune
|
||||
scale = 0.5
|
||||
smooth = true
|
||||
blur = false
|
||||
noimgborders = true
|
||||
}
|
||||
|
||||
plugin:dynamic-cursors {
|
||||
enabled = false
|
||||
mode = tilt
|
||||
shake {
|
||||
enabled = false
|
||||
}
|
||||
hyprcursor {
|
||||
nearest = true
|
||||
enabled = true
|
||||
resolution = -12
|
||||
}
|
||||
}
|
||||
51
config/hypr/config/rice/deltarune.conf
Normal file
@@ -0,0 +1,51 @@
|
||||
exec-once = qs -p /etc/nixos/Shell/Startup
|
||||
|
||||
layerrule {
|
||||
name = deltarune qs
|
||||
match:namespace = deltarune-quickshell
|
||||
animation = slide top
|
||||
above_lock = 2
|
||||
order = -20
|
||||
no_screen_share = off
|
||||
}
|
||||
|
||||
layerrule {
|
||||
name = deltarune qs dn
|
||||
match:namespace = deltarune-quickshell-bottom
|
||||
animation = slide bottom
|
||||
above_lock = 2
|
||||
order = -20
|
||||
no_screen_share = off
|
||||
}
|
||||
|
||||
layerrule {
|
||||
name = deltarune qs db
|
||||
match:namespace = deltarune-quickshell-dialogbox
|
||||
animation = slide bottom
|
||||
order = 100
|
||||
above_lock = 2
|
||||
order = -20
|
||||
no_screen_share = off
|
||||
}
|
||||
|
||||
bind = SUPER, A, global, deltarune:shell_open
|
||||
|
||||
submap = deltarune
|
||||
|
||||
bind = SUPER, A, global, deltarune:shell_close
|
||||
|
||||
bind = , ESCAPE, global, deltarune:input_back
|
||||
bind = , Shift_L, global, deltarune:input_back
|
||||
bind = , Shift_R, global, deltarune:input_back
|
||||
bind = , X, global, deltarune:input_back
|
||||
|
||||
bind = , Z, global, deltarune:input_enter
|
||||
bind = , ENTER, global, deltarune:input_enter
|
||||
bind = , RETURN, global, deltarune:input_enter
|
||||
|
||||
bind = , UP, global, deltarune:input_up
|
||||
bind = , DOWN, global, deltarune:input_down
|
||||
bind = , LEFT, global, deltarune:input_left
|
||||
bind = , RIGHT, global, deltarune:input_right
|
||||
|
||||
submap = reset
|
||||
@@ -5,16 +5,15 @@ $mainMod = SUPER
|
||||
|
||||
# Programs
|
||||
|
||||
$terminal = ghostty
|
||||
$fileManager = nautilus
|
||||
$menu = wofi --show drun
|
||||
$browser = zen-browser
|
||||
$terminal = kitty
|
||||
$fileManager = dolphin
|
||||
$menu = qs ipc call deltarune.shell toggleAppLauncher
|
||||
$browser = zen-beta
|
||||
|
||||
# Cursor
|
||||
|
||||
exec = hyprctl setcursor RalseiCursors 24
|
||||
# RalseiCursors 24
|
||||
|
||||
env = HYPRCURSOR_THEME,RalseiCursors
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
env = XCURSOR_THEME,RalseiCursors
|
||||
env = XCURSOR_SIZE,24
|
||||
@@ -37,7 +36,6 @@ env = XDG_SESSION_DESKTOP,Hyprland
|
||||
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
|
||||
env = QT_QPA_PLATFORM,wayland;xcb
|
||||
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||
env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||
|
||||
# NVIDIA Env
|
||||
|
||||
|
||||
21
config/hypr/hyprland.conf
Executable file → Normal file
@@ -1,20 +1,19 @@
|
||||
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
|
||||
|
||||
exec-once = hyprctl notify 1 5000 0 " Hyprland!!"
|
||||
|
||||
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once = dbus-update-activation-environment DISPLAY WAYLAND_DISPLAY
|
||||
|
||||
source = ~/config/config/hypr/config/variables.conf
|
||||
source = ~/config/config/hypr/config/display.conf
|
||||
source = ~/config/config/hypr/config/input.conf
|
||||
source = ~/config/config/hypr/config/keybindings/default.conf
|
||||
source = ~/config/config/hypr/config/keybindings/other.conf
|
||||
source = ~/config/config/hypr/config/autoexec.conf
|
||||
source = ~/.config/hypr/config/variables.conf
|
||||
source = ~/.config/hypr/config/display.conf
|
||||
source = ~/.config/hypr/config/input.conf
|
||||
source = ~/.config/hypr/config/keybindings/default.conf
|
||||
source = ~/.config/hypr/config/keybindings/other.conf
|
||||
source = ~/.config/hypr/config/autoexec.conf
|
||||
source = ~/.config/hypr/config/permissions.conf
|
||||
|
||||
source = ~/.config/hypr/config/rice/deltarune.conf
|
||||
|
||||
# hyprlang noerror true
|
||||
|
||||
source = ~/config/config/hypr/config/permissions.conf
|
||||
source = ~/.config/hypr/config/plugin.conf
|
||||
|
||||
# hyprlang noerror false
|
||||
|
||||
@@ -12,7 +12,8 @@ general {
|
||||
#BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
path = ~/Pictures/Wallpapers/kris_ralsei_kissing.png # definetly not a picture of kris and ralsei kissing!!
|
||||
color = rgba(0,0,0,0)
|
||||
# path = ~/Pictures/Wallpapers/israel.png # definetly not a picture of kris and ralsei kissing!!
|
||||
}
|
||||
|
||||
input-field {
|
||||
@@ -25,12 +26,12 @@ input-field {
|
||||
inner_color = rgba(0, 0, 0, 0)
|
||||
check_color = rgba(0, 0, 0, 0)
|
||||
fail_color = rgba(0, 0, 0, 0)
|
||||
font_color = rgb(245, 194, 231)
|
||||
font_color = rgb(255, 0, 255)
|
||||
fade_on_empty = false
|
||||
font_family = Symbols Nerd Font, SF Pro Display
|
||||
placeholder_text = Session locked, enter password to unlock!
|
||||
hide_input = false
|
||||
fail_text = Password hint: Favorite Character - Deltarune, not Regretevator!
|
||||
fail_text = wrong password mf
|
||||
position = 0, -30
|
||||
halign = center
|
||||
valign = top
|
||||
|
||||
62
config/kitty/kitty.conf
Normal file
@@ -0,0 +1,62 @@
|
||||
foreground #ffffff
|
||||
background #000000
|
||||
font_family family="Determination Mono"
|
||||
font_size 15
|
||||
disable_ligatures always
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
cursor_shape beam
|
||||
cursor_trail 1
|
||||
window_padding_width 16
|
||||
|
||||
# vim:ft=kitty
|
||||
|
||||
## name: Catppuccin Kitty Diff Mocha
|
||||
## author: Catppuccin Org
|
||||
## license: MIT
|
||||
## upstream: https://github.com/catppuccin/kitty/blob/main/themes/diff-mocha.conf
|
||||
## blurb: Soothing pastel theme for the high-spirited!
|
||||
|
||||
# text
|
||||
# foreground #cdd6f4
|
||||
# base
|
||||
# background #1e1e2e
|
||||
# subtext0
|
||||
title_fg #a6adc8
|
||||
|
||||
# mantle
|
||||
title_bg #181825
|
||||
margin_bg #181825
|
||||
|
||||
# subtext1
|
||||
margin_fg #a6adc8
|
||||
# mantle
|
||||
filler_bg #181825
|
||||
|
||||
# 30% red, 70% base
|
||||
removed_bg #5e3f53
|
||||
# 50% red, 50% base
|
||||
highlight_removed_bg #89556b
|
||||
# 40% red, 60% base
|
||||
removed_margin_bg #734a5f
|
||||
|
||||
# 30% green, 70% base
|
||||
added_bg #475a51
|
||||
# 50% green, 50% base
|
||||
highlight_added_bg #628168
|
||||
# 40% green, 60% base
|
||||
added_margin_bg #734a5f
|
||||
|
||||
# mantle
|
||||
hunk_margin_bg #181825
|
||||
hunk_bg #181825
|
||||
|
||||
# 40% yellow, 60% base
|
||||
search_bg #766c62
|
||||
# text
|
||||
search_fg #cdd6f4
|
||||
# 30% sky, 70% base
|
||||
select_bg #3e5767
|
||||
# text
|
||||
select_fg #cdd6f4
|
||||
@@ -1,4 +0,0 @@
|
||||
[ColorScheme]
|
||||
active_colors= #ffcdd6f4, #ff45475a, #ff585b70, #ff313244, #ff11111b, #ff181825, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff11111b, #ff89b4fa, #ff11111b, #ff89b4fa, #ffb4befe, #ff181825, #ffffffff, #ff1e1e2e, #ffcdd6f4, #806c7086
|
||||
inactive_colors=#ff7f849c, #ff1e1e2e, #ff45475a, #ff313244, #ff11111b, #ff181825, #ff7f849c, #ffcdd6f4, #ff7f849c, #ff1e1e2e, #ff181825, #ff11111b, #ff313244, #ff7f849c, #ff7f849c, #ff7f849c, #ff181825, #ffffffff, #ff1e1e2e, #ffcdd6f4, #806c7086
|
||||
disabled_colors=#ff6c7086, #ff313244, #ff45475a, #ff313244, #ff11111b, #ff181825, #ff6c7086, #ffcdd6f4, #ff6c7086, #ff1e1e2e, #ff181825, #ff11111b, #ff181825, #ff6c7086, #ffa9bcdb, #ffc7cceb, #ff181825, #ffffffff, #ff1e1e2e, #ffcdd6f4, #806c7086
|
||||
@@ -1,32 +0,0 @@
|
||||
[Appearance]
|
||||
color_scheme_path=/home/ralsei/.config/qt5ct/colors/catppuccin-mocha-blue.conf
|
||||
custom_palette=true
|
||||
icon_theme=Arashi
|
||||
standard_dialogs=default
|
||||
style=Fusion
|
||||
|
||||
[Fonts]
|
||||
fixed="Geist Mono,9,-1,5,50,0,0,0,0,0"
|
||||
general="Sans Serif,9,-1,5,50,0,0,0,0,0"
|
||||
|
||||
[Interface]
|
||||
activate_item_on_single_click=1
|
||||
buttonbox_layout=0
|
||||
cursor_flash_time=1000
|
||||
dialog_buttons_have_icons=1
|
||||
double_click_interval=400
|
||||
gui_effects=General, AnimateMenu, AnimateCombo, AnimateTooltip, AnimateToolBox
|
||||
keyboard_scheme=1
|
||||
menus_have_icons=true
|
||||
show_shortcuts_in_context_menus=true
|
||||
stylesheets=@Invalid()
|
||||
toolbutton_style=4
|
||||
underline_shortcut=1
|
||||
wheel_scroll_lines=3
|
||||
|
||||
[SettingsWindow]
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\x16\0\0\0\x33\0\0\x3\xb8\0\0\x4!\0\0\0\x16\0\0\0\x33\0\0\x3\xb8\0\0\x4!\0\0\0\0\0\0\0\0\a\x80\0\0\0\x16\0\0\0\x33\0\0\x3\xb8\0\0\x4!)
|
||||
|
||||
[Troubleshooting]
|
||||
force_raster_widgets=1
|
||||
ignored_applications=@Invalid()
|
||||
@@ -1,4 +0,0 @@
|
||||
[ColorScheme]
|
||||
active_colors=#ff232629, #fffcfcfc, #ffffffff, #fff9fafa, #ff71757a, #ffbdc1c6, #ff232629, #ffffffff, #ff232629, #ffffffff, #ffeff0f1, #ff3b3d3f, #ff3daee9, #ffffffff, #ff2980b9, #ff9b59b6, #fff7f7f7, #ffffffff, #fff7f7f7, #ff232629, #80ffffff
|
||||
disabled_colors=#ff808080, #ff424245, #ff979797, #ff5e5c5b, #ff302f2e, #ff4a4947, #ff808080, #ffffffff, #ff808080, #ff3d3d3d, #ff222020, #ffe7e4e0, #ff12608a, #ff808080, #ff0986d3, #ffa70b06, #ff5c5b5a, #ffffffff, #ff3f3f36, #ffffffff, #80ffffff
|
||||
inactive_colors=#ff232629, #fffcfcfc, #ffffffff, #fff9fafa, #ff71757a, #ffbdc1c6, #ff232629, #ffffffff, #ff232629, #ffffffff, #ffeff0f1, #ff3b3d3f, #ff3daee9, #ffffffff, #ff2980b9, #ff9b59b6, #fff7f7f7, #ffffffff, #fff7f7f7, #ff232629, #80ffffff
|
||||
@@ -6,7 +6,7 @@
|
||||
"margin-right": 8,
|
||||
"spacing": 10,
|
||||
"include": [
|
||||
"~/config/config/waybar/modules.json"
|
||||
"~/.config/waybar/modules.json"
|
||||
],
|
||||
"modules-left": [
|
||||
"hyprland/workspaces",
|
||||
@@ -14,7 +14,8 @@
|
||||
],
|
||||
"modules-right": [
|
||||
// "custom/regretevator_state",
|
||||
"custom/cider",
|
||||
//"custom/cider",
|
||||
"mpris",
|
||||
"group/traygroup",
|
||||
"clock"
|
||||
]
|
||||
|
||||
@@ -9,11 +9,9 @@
|
||||
"pulseaudio#lol"
|
||||
]
|
||||
},
|
||||
|
||||
"custom/middle-split": {
|
||||
"format": " "
|
||||
},
|
||||
|
||||
"mpris": {
|
||||
"players": [
|
||||
"chromium",
|
||||
@@ -21,14 +19,14 @@
|
||||
"elisa",
|
||||
"cider",
|
||||
"spotify",
|
||||
"OCbwoy3_s_iPhone"
|
||||
"Kris_s_iPhone"
|
||||
],
|
||||
"interval": 1,
|
||||
"on-scroll-up": "playerctl -p chromium,cmus,elisa,cider,spotify,OCbwoy3_s_iPhone volume 0.05+",
|
||||
"on-scroll-down": "playerctl -p chromium,cmus,elisa,cider,spotify,OCbwoy3_s_iPhone volume 0.05-",
|
||||
"on-click": "playerctl -p chromium,cmus,elisa,cider,spotify,OCbwoy3_s_iPhone play-pause",
|
||||
"on-click-right": "playerctl -p chromium,cmus,elisa,cider,spotify,OCbwoy3_s_iPhone next",
|
||||
"on-click-middle": "playerctl -p chromium,cmus,elisa,cider,spotify,OCbwoy3_s_iPhone previous",
|
||||
"on-scroll-up": "playerctl -p chromium,cmus,elisa,cider,spotify,Kris___s_iPhone volume 0.05+",
|
||||
"on-scroll-down": "playerctl -p chromium,cmus,elisa,cider,spotify,Kris___s_iPhone volume 0.05-",
|
||||
"on-click": "playerctl -p chromium,cmus,elisa,cider,spotify,Kris___s_iPhone play-pause",
|
||||
"on-click-right": "playerctl -p chromium,cmus,elisa,cider,spotify,Kris___s_iPhone next",
|
||||
"on-click-middle": "playerctl -p chromium,cmus,elisa,cider,spotify,Kris___s_iPhone previous",
|
||||
"format": " {artist} — {title}",
|
||||
// "format": " {title}",
|
||||
"tooltip-format": "{album}",
|
||||
@@ -37,32 +35,29 @@
|
||||
"smooth-scrolling-treshold": 40,
|
||||
"max-length": 60
|
||||
},
|
||||
|
||||
"custom/cider": {
|
||||
"restart-interval": 1,
|
||||
"return-type": "json",
|
||||
// "exec": "bun run ~/config/scripts/bin/actWithMusic.ts waybar",
|
||||
"exec": "~/config/scripts/bin/ocbwoy3-actwithmus waybar",
|
||||
"on-scroll-up": "playerctl -p chromium,cmus,elisa,cider,spotify,OCbwoy3_s_iPhone volume 0.05+",
|
||||
"on-scroll-down": "playerctl -p chromium,cmus,elisa,cider,spotify,OCbwoy3_s_iPhone volume 0.05-",
|
||||
"on-click": "playerctl -p chromium,cmus,elisa,cider,spotify,OCbwoy3_s_iPhone play-pause",
|
||||
"on-click-right": "playerctl -p chromium,cmus,elisa,cider,spotify,OCbwoy3_s_iPhone next",
|
||||
"on-click-middle": "playerctl -p chromium,cmus,elisa,cider,spotify,OCbwoy3_s_iPhone previous"
|
||||
"exec": "/etc/nixos/scripts/bin/ocbwoy3-actwithmus waybar",
|
||||
"on-scroll-up": "playerctl -p chromium,cmus,elisa,cider,spotify,Kris___s_iPhone volume 0.05+",
|
||||
"on-scroll-down": "playerctl -p chromium,cmus,elisa,cider,spotify,Kris___s_iPhone volume 0.05-",
|
||||
"on-click": "playerctl -p chromium,cmus,elisa,cider,spotify,Kris___s_iPhone play-pause",
|
||||
"on-click-right": "playerctl -p chromium,cmus,elisa,cider,spotify,Kris___s_iPhone next",
|
||||
"on-click-middle": "playerctl -p chromium,cmus,elisa,cider,spotify,Kris___s_iPhone previous"
|
||||
},
|
||||
|
||||
"custom/regretevator_state": {
|
||||
"restart-interval": 1,
|
||||
"return-type": "json",
|
||||
"exec": "cat /tmp/.regretevator_state"
|
||||
},
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
// "tooltip": "{initialClass}",
|
||||
"rewrite": {
|
||||
"(Support Hyprland|MainPicker|Hyprland Updated)": "Hyprland",
|
||||
"DELTARUNE": "Deltarune",
|
||||
"DELTARUNE Chapter ([0-9]+)": "Deltarune",
|
||||
// "DELTARUNE Chapter ([0-9]+)": "Deltarune",
|
||||
"Sober": "Roblox",
|
||||
"vinegar": "Vinegar",
|
||||
"RobloxStudio": "Roblox Studio",
|
||||
@@ -70,14 +65,16 @@
|
||||
"PORTAL 2 - (OpenGL|Vulkan)": "Portal 2",
|
||||
"HALF-LIFE 2 - (OpenGL|Vulkan)": "Half-Life 2",
|
||||
"(.*) - Google( Search| meklēšana)?": "$1",
|
||||
|
||||
"Cider": "Apple Music",
|
||||
"swappy": "Swappy",
|
||||
"(.*) — (Firefox( Developer Edition)|Zen Browser)?": "$1"
|
||||
// "(.*) - PDSls": "$1",
|
||||
"(.*) — Mozilla Firefox": "$1",
|
||||
"(.*) - PDSls — Mozilla Firefox": "PDSls",
|
||||
"(.*) — ((Mozilla )?Firefox( Developer Edition)|Zen Browser)?": "$1",
|
||||
"(.*) - PDSls": "$1"
|
||||
},
|
||||
"separate-outputs": false
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"on-click": "activate",
|
||||
"active-only": false,
|
||||
@@ -93,12 +90,10 @@
|
||||
"*": 1
|
||||
}
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 21,
|
||||
"spacing": 10
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"timezone": "Europe/Riga",
|
||||
"locale": "lv_LV.UTF-8",
|
||||
@@ -117,32 +112,37 @@
|
||||
"format-alt": "{:%H:%M:%S}",
|
||||
"interval": 1
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon}",
|
||||
"format-muted": "",
|
||||
"format-source": "",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"default": ["", "", ""]
|
||||
"default": [
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"tooltip-format": "{desc}\n{icon} {volume}%",
|
||||
"on-click": "pavucontrol"
|
||||
"on-click": "qs ipc call deltarune.shell toggleQuickSettings"
|
||||
},
|
||||
|
||||
"pulseaudio#lol": {
|
||||
"format": "{volume}%",
|
||||
"format-muted": "0%",
|
||||
"format-source": "{volume}%",
|
||||
"format-source-muted": "0%",
|
||||
"format-icons": {
|
||||
"default": ["", "", ""]
|
||||
"default": [
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"tooltip-format": "{desc}\n{icon} {volume}%",
|
||||
"on-click": "pavucontrol",
|
||||
"on-click": "qs ipc call deltarune.shell toggleQuickSettings",
|
||||
"class": "pulseaudio-lol"
|
||||
},
|
||||
|
||||
"network": {
|
||||
"format": "",
|
||||
"format-wifi": "",
|
||||
@@ -153,16 +153,15 @@
|
||||
"tooltip-format-ethernet": " {ifname}\n {bandwidthUpBits} {bandwidthDownBits}",
|
||||
"tooltip-format-disconnected": "",
|
||||
"max-length": 50,
|
||||
"on-click": "nm-connection-editor"
|
||||
"on-click": "kitty -e nmtui"
|
||||
},
|
||||
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-disabled": "",
|
||||
"format-off": "",
|
||||
"tooltip-format": "Ierīces pieslēgas Bluetooth: {num_connections}",
|
||||
"interval": 1,
|
||||
"on-click": "blueman-manager",
|
||||
"on-click": "qs ipc call deltarune.shell toggleQuickSettings",
|
||||
"format-no-controller": ""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
* {
|
||||
font-family: "SF Pro Display", SFProJPDisplay-Regular, "Symbols Nerd Font";
|
||||
font-family: "8-bit Operator+", "Determination Mono", "8bitoperator JVE", "SF Pro Display", SFProJPDisplay-Regular, "Symbols Nerd Font";
|
||||
border: none;
|
||||
font-size: 15px;
|
||||
font-size: 13px;
|
||||
min-height: 10px;
|
||||
/* max-height: 10px; */
|
||||
}
|
||||
@@ -28,7 +28,7 @@ window#waybar {
|
||||
}
|
||||
|
||||
#clock {
|
||||
font-family: "SF Pro Display", SFProJPDisplay-Regular, "Symbols Nerd Font";
|
||||
font-family: "8-bit Operator+", "Determination Mono", "8bitoperator JVE", "SF Pro Display", SFProJPDisplay-Regular, "Symbols Nerd Font";
|
||||
}
|
||||
|
||||
#traygroup,
|
||||
@@ -46,7 +46,7 @@ window#waybar {
|
||||
#custom-regretevator_state,
|
||||
#custom-cider {
|
||||
font-family:
|
||||
"DotfilesFont", SFProJPDisplay-Regular, "Symbols Nerd Font", "Geist";
|
||||
"DotfilesFont", "8-bit Operator+", "Determination Mono", "8bitoperator JVE", SFProJPDisplay-Regular, "Symbols Nerd Font", "Geist";
|
||||
}
|
||||
|
||||
#mpris,
|
||||
@@ -69,6 +69,7 @@ window#waybar {
|
||||
#workspaces button.active {
|
||||
color: #cba6f7;
|
||||
font-weight: bolder;
|
||||
font-family: "Determination Mono";
|
||||
}
|
||||
|
||||
#tray {
|
||||
@@ -133,7 +134,7 @@ window#waybar {
|
||||
}
|
||||
|
||||
tooltip {
|
||||
font-family: "SF Pro Display", SFProJPDisplay-Regular, "Symbols Nerd Font";
|
||||
font-family: "8-bit Operator+", "Determination Mono", "8bitoperator JVE", "SF Pro Display", SFProJPDisplay-Regular, "Symbols Nerd Font";
|
||||
padding: 0px 0px 0px 0px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
border-radius: 4px;
|
||||
@@ -144,7 +145,7 @@ tooltip {
|
||||
}
|
||||
|
||||
tooltip * {
|
||||
font-family: "SF Pro Display", SFProJPDisplay-Regular, "Symbols Nerd Font";
|
||||
font-family: "8-bit Operator+", "Determination Mono", "8bitoperator JVE", "SF Pro Display", SFProJPDisplay-Regular, "Symbols Nerd Font";
|
||||
padding: 0px 0px 0px 0px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
color: #cdd6f4;
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
}
|
||||
{
|
||||
"label" : "logout",
|
||||
"action" : "pkill -9 -u ralsei",
|
||||
"action" : "pkill -9 -u kris",
|
||||
"text" : "Logout",
|
||||
"keybind" : "e"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
* {
|
||||
background-image: none;
|
||||
box-shadow: none;
|
||||
font-family: "SF Pro Display", "Symbols Nerd Font";
|
||||
font-family: "8-bit Operator+", "SF Pro Display", "Symbols Nerd Font";
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
@@ -36,36 +36,36 @@ button:hover {
|
||||
|
||||
#lock {
|
||||
background-image: image(
|
||||
url("/home/ralsei/config/config/wlogout/assets/lock.png")
|
||||
url("/etc/nixos/config/wlogout/assets/lock.png")
|
||||
);
|
||||
}
|
||||
|
||||
#logout {
|
||||
background-image: image(
|
||||
url("/home/ralsei/config/config/wlogout/assets/logout.png")
|
||||
url("/etc/nixos/config/wlogout/assets/logout.png")
|
||||
);
|
||||
}
|
||||
|
||||
#suspend {
|
||||
background-image: image(
|
||||
url("/home/ralsei/config/config/wlogout/assets/suspend.png")
|
||||
url("/etc/nixos/config/wlogout/assets/suspend.png")
|
||||
);
|
||||
}
|
||||
|
||||
#hibernate {
|
||||
background-image: image(
|
||||
url("/home/ralsei/config/config/wlogout/assets/hibernate.png")
|
||||
url("/etc/nixos/config/wlogout/assets/hibernate.png")
|
||||
);
|
||||
}
|
||||
|
||||
#shutdown {
|
||||
background-image: image(
|
||||
url("/home/ralsei/config/config/wlogout/assets/shutdown.png")
|
||||
url("/etc/nixos/config/wlogout/assets/shutdown.png")
|
||||
);
|
||||
}
|
||||
|
||||
#reboot {
|
||||
background-image: image(
|
||||
url("/home/ralsei/config/config/wlogout/assets/reboot.png")
|
||||
url("/etc/nixos/config/wlogout/assets/reboot.png")
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
prompt=Meklēt...
|
||||
allow_images=true
|
||||
allow_markup=true
|
||||
term=ghostty
|
||||
term=kitty
|
||||
dynamic_lines=true
|
||||
normal_window=false
|
||||
insensitive=true
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
[preferred]
|
||||
default = hyprland;gtk
|
||||
# org.freedesktop.impl.portal.FileChooser = gnome
|
||||
1152
flake.lock
generated
84
flake.nix
@@ -1,7 +1,9 @@
|
||||
{
|
||||
description = "https://tangled.sh/@ocbwoy3.dev/nix";
|
||||
description = "Not a Deltarune reference!";
|
||||
|
||||
inputs = {
|
||||
self.submodules = true;
|
||||
|
||||
# Core
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
@@ -15,51 +17,76 @@
|
||||
};
|
||||
hyprlock.url = "github:hyprwm/hyprlock";
|
||||
hyprsysteminfo.url = "github:hyprwm/hyprsysteminfo";
|
||||
ghostty.url = "github:ghostty-org/ghostty";
|
||||
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
||||
|
||||
# Programs
|
||||
tuxstrap.url = "git+https://tangled.sh/@ocbwoy3.dev/tuxstrap";
|
||||
hypr-dynamic-cursors = {
|
||||
url = "github:VirtCode/hypr-dynamic-cursors";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
imgborders = {
|
||||
url = "git+https://codeberg.org/zacoons/imgborders";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.systems.follows = "hyprland/systems";
|
||||
};
|
||||
zen-browser.url = "github:0xc000022070/zen-browser-flake/beta";
|
||||
quickshell = {
|
||||
url = "github:outfoxxed/quickshell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Package tooling
|
||||
disko.url = "github:nix-community/disko";
|
||||
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
|
||||
nvf.url = "github:notashelf/nvf";
|
||||
|
||||
# Extras
|
||||
tangled.url = "git+https://tangled.sh/@tangled.sh/core";
|
||||
tangled.url = "git+https://tangled.org/did:plc:wshs7t2adsemcrrd4snkeqli/core";
|
||||
vscode-server.url = "github:nix-community/nixos-vscode-server";
|
||||
spacebar = {
|
||||
url = "github:spacebarchat/server";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Required by NixOS:
|
||||
# ./hardware-configuration.nix
|
||||
|
||||
# inputs.home-manager.nixosModules.default
|
||||
# catppuccin.nixosModules.catppuccin
|
||||
# nix-flatpak.nixosModules.nix-flatpak
|
||||
# slop
|
||||
openclaw.url = "github:openclaw/nix-openclaw";
|
||||
deltarune-grub-theme = {
|
||||
url = "git+https://tangled.org/did:plc:s7cesz7cr6ybltaryy4meb6y/deltarune-grub-theme";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, ... }@inputs: {
|
||||
nixosConfigurations.installer = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
};
|
||||
modules = [
|
||||
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"
|
||||
./hosts/installer/configuration.nix
|
||||
];
|
||||
};
|
||||
|
||||
packages.x86_64-linux.installerIso =
|
||||
self.nixosConfigurations.installer.config.system.build.isoImage;
|
||||
|
||||
nixosConfigurations.default = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
};
|
||||
modules = [
|
||||
# inputs.nixos-hardware.nixosModules.common-gpu-nvidia
|
||||
inputs.home-manager.nixosModules.default
|
||||
inputs.disko.nixosModules.disko
|
||||
inputs.catppuccin.nixosModules.catppuccin
|
||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
# inputs.chaotic.nixosModules.default
|
||||
inputs.hyprland.nixosModules.default
|
||||
inputs.chaotic.nixosModules.nyx-cache
|
||||
inputs.chaotic.nixosModules.nyx-overlay
|
||||
inputs.chaotic.nixosModules.nyx-registry
|
||||
# ./hosts/default/hardware-configuration.nix
|
||||
|
||||
# lil hack to not use --impure when rebuilding nixos >:3
|
||||
"/etc/nixos/hardware-configuration.nix"
|
||||
|
||||
./hosts/default/disko.nix
|
||||
./hosts/default/hardware-configuration.nix
|
||||
./hosts/default/configuration.nix
|
||||
];
|
||||
};
|
||||
|
||||
nixosConfigurations.server = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
@@ -69,17 +96,20 @@
|
||||
inputs.tangled.nixosModules.knot
|
||||
inputs.tangled.nixosModules.spindle
|
||||
inputs.vscode-server.nixosModules.default
|
||||
|
||||
inputs.chaotic.nixosModules.nyx-cache
|
||||
inputs.chaotic.nixosModules.nyx-overlay
|
||||
inputs.chaotic.nixosModules.nyx-registry
|
||||
|
||||
# lil hack to not use --impure when rebuilding nixos >:3
|
||||
"/etc/nixos/hardware-configuration.nix"
|
||||
|
||||
./modules/openclaw-user.nix
|
||||
./modules/openclaw-sudo.nix
|
||||
./modules/openclaw-fs.nix
|
||||
./modules/openclaw-docker.nix
|
||||
./modules/openclaw-docker-env.nix
|
||||
./modules/openclaw-watchdog.nix
|
||||
./hosts/server/configuration.nix
|
||||
./hosts/server/hardware-configuration.nix
|
||||
];
|
||||
};
|
||||
|
||||
nixosConfigurations.fix_nixpkgs = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
{ config, inputs, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
let
|
||||
userName = "kris";
|
||||
realName = "Kris";
|
||||
in {
|
||||
|
||||
imports = [
|
||||
../../modules/forceMainPC.nix
|
||||
@@ -12,14 +15,16 @@
|
||||
# ./apps/ancs.nix
|
||||
];
|
||||
|
||||
services.displayManager.gdm.enable = true;
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.displayManager.sddm.wayland.enable = true;
|
||||
services.displayManager.autoLogin = {
|
||||
enable = true;
|
||||
user = userName;
|
||||
};
|
||||
|
||||
boot.kernelPackages = (pkgs.linuxPackages_cachyos-lto.override {
|
||||
ticksHz = 1000;
|
||||
useLTO = "full";
|
||||
# extraMakeFlags = ["-O3"];
|
||||
withoutDebug = true;
|
||||
});
|
||||
boot.loader.grub.theme = lib.mkDefault inputs.deltarune-grub-theme;
|
||||
|
||||
# boot.kernelPackages = pkgs.linuxPackages_cachyos-lto;
|
||||
|
||||
services.scx.enable = true;
|
||||
services.scx.scheduler = "scx_bpfland";
|
||||
@@ -37,20 +42,6 @@
|
||||
|
||||
# services.ancs.enable = true;
|
||||
|
||||
services.flatpak.enable = true;
|
||||
services.flatpak.remotes = [
|
||||
{
|
||||
name = "flathub";
|
||||
location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
||||
}
|
||||
];
|
||||
services.flatpak.packages = [
|
||||
{
|
||||
appId = "com.modrinth.ModrinthApp";
|
||||
origin = "flathub";
|
||||
}
|
||||
];
|
||||
|
||||
services.printing = {
|
||||
enable = true;
|
||||
drivers = with pkgs; [
|
||||
@@ -67,18 +58,14 @@
|
||||
openFirewall = false;
|
||||
};
|
||||
|
||||
programs.virt-manager.enable = true;
|
||||
users.groups.libvirtd.members = [ "ocbwoy3" ];
|
||||
virtualisation.libvirtd.enable = true;
|
||||
# virtualisation.waydroid.enable = true;
|
||||
virtualisation.spiceUSBRedirection.enable = true;
|
||||
|
||||
networking.extraHosts = ''
|
||||
# dont worry, i still don't like the guy
|
||||
# but i need to community note roblox on how their moderation is still shit
|
||||
# at this point just hire the goober project to take them down for you
|
||||
'';
|
||||
|
||||
networking.hostName = "darkworld";
|
||||
|
||||
powerManagement.enable = true;
|
||||
|
||||
services.avahi = {
|
||||
@@ -91,12 +78,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
# Sadly, I don't know how to install flatpaks like this.
|
||||
# services.flatpak.packages = [
|
||||
# "com.usebottles.bottles"
|
||||
# { flatpakref = "https://sober.vinegarhq.org/sober.flatpakref"; sha256 = "0"; }
|
||||
# ];
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
@@ -119,13 +100,9 @@
|
||||
equibop
|
||||
code-cursor
|
||||
kdePackages.kdenlive
|
||||
libsForQt5.qt5ct
|
||||
catppuccin-qt5ct
|
||||
darkly
|
||||
kdePackages.qt6ct
|
||||
hyfetch
|
||||
kitty
|
||||
inputs.ghostty.packages.${pkgs.stdenv.hostPlatform.system}.ghostty
|
||||
];
|
||||
|
||||
qt.enable = true;
|
||||
@@ -134,28 +111,22 @@
|
||||
xdg.terminal-exec.enable = true;
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gnome
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
||||
];
|
||||
config.common.default = [ "hyprland" "gtk" ];
|
||||
};
|
||||
|
||||
# environment.variables.XDG_TERMINAL = "${inputs.ghostty.packages.${pkgs.stdenv.hostPlatform.system}.ghostty}/bin/ghostty";
|
||||
# environment.variables.XDG_SYSTEM_MONITOR = "${pkgs.htop}/bin/htop";
|
||||
|
||||
environment.variables.XDG_TERMINAL = "ghostty";
|
||||
environment.variables.XDG_TERMINAL = "kitty";
|
||||
environment.variables.XDG_SYSTEM_MONITOR = "htop";
|
||||
|
||||
environment.variables.GTK_USE_PORTAL = "1";
|
||||
environment.sessionVariables.GTK_USE_PORTAL = 1;
|
||||
|
||||
fileSystems = {
|
||||
"/".options = [ "compress=zstd" ];
|
||||
"/home".options = [ "compress=zstd" ];
|
||||
"/nix".options = [ "compress=zstd" "noatime" ];
|
||||
};
|
||||
|
||||
services.btrfs.autoScrub = {
|
||||
enable = true;
|
||||
interval = "monthly";
|
||||
@@ -165,8 +136,8 @@
|
||||
# CHANGE YOUR NAME IN HOME MANAGER!
|
||||
# BETTER YET, DON'T TOUCH THIS. AT ALL.
|
||||
|
||||
main-user.userName = "ocbwoy3";
|
||||
main-user.realName = "OCbwoy3";
|
||||
main-user.userName = userName;
|
||||
main-user.realName = realName;
|
||||
|
||||
services.fstrim.enable = true;
|
||||
systemd.services.fstrim.enable = false;
|
||||
@@ -177,6 +148,7 @@
|
||||
|
||||
programs.dconf.enable = true;
|
||||
services.gvfs.enable = true;
|
||||
services.flatpak.enable = true;
|
||||
|
||||
# home-manager.services.mpris-proxy.enable = true;
|
||||
|
||||
@@ -188,7 +160,10 @@
|
||||
accent = "blue";
|
||||
};
|
||||
|
||||
home-manager.users.ocbwoy3 = { programs, config, pkgs, ... }: {
|
||||
home-manager.users.${userName} = { programs, config, pkgs, ... }:
|
||||
let
|
||||
system = pkgs.stdenv.hostPlatform.system;
|
||||
in {
|
||||
|
||||
imports = [
|
||||
inputs.catppuccin.homeModules.catppuccin
|
||||
@@ -197,11 +172,7 @@
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
cursorTheme = {
|
||||
name = "RalseiCursors";
|
||||
package = pkgs.callPackage ./packages/ralsei-cursors/default.nix {};
|
||||
};
|
||||
gtk4.theme = config.gtk.theme;
|
||||
|
||||
iconTheme = {
|
||||
name = "Arashi";
|
||||
@@ -209,12 +180,83 @@
|
||||
};
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
name = "RalseiCursors";
|
||||
package = pkgs.callPackage ./packages/ralsei-cursors/default.nix {};
|
||||
size = 24;
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
};
|
||||
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
accent = "blue";
|
||||
# we're already using arashi
|
||||
gtk.icon.enable = false;
|
||||
cursors.enable = false;
|
||||
kvantum.enable = false;
|
||||
qt5ct.enable = false;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
libsForQt5.qt5ct
|
||||
qt6Packages.qt6ct
|
||||
darkly-qt5
|
||||
darkly
|
||||
];
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
style.name = "Darkly";
|
||||
qt5ctSettings = {
|
||||
Appearance = {
|
||||
color_scheme_path = "${pkgs.catppuccin-qt5ct}/share/qt5ct/colors/catppuccin-mocha-blue.conf";
|
||||
custom_palette = true;
|
||||
icon_theme = "Arashi";
|
||||
standard_dialogs = "default";
|
||||
style = "Darkly";
|
||||
};
|
||||
};
|
||||
qt6ctSettings = {
|
||||
Appearance = {
|
||||
color_scheme_path = "${pkgs.catppuccin-qt5ct}/share/qt6ct/colors/catppuccin-mocha-blue.conf";
|
||||
custom_palette = true;
|
||||
icon_theme = "Arashi";
|
||||
standard_dialogs = "default";
|
||||
style = "Darkly";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"default-web-browser" = [ "zen-beta.desktop" ];
|
||||
"text/html" = [ "zen-beta.desktop" ];
|
||||
"x-scheme-handler/http" = [ "zen-beta.desktop" ];
|
||||
"x-scheme-handler/https" = [ "zen-beta.desktop" ];
|
||||
|
||||
"inode/directory" = [ "org.kde.dolphin.desktop" ];
|
||||
|
||||
"image/png" = [ "org.kde.gwenview.desktop" ];
|
||||
"image/jpeg" = [ "org.kde.gwenview.desktop" ];
|
||||
"image/gif" = [ "org.kde.gwenview.desktop" ];
|
||||
"image/webp" = [ "org.kde.gwenview.desktop" ];
|
||||
"image/svg+xml" = [ "org.kde.gwenview.desktop" ];
|
||||
"image/avif" = [ "org.kde.gwenview.desktop" ];
|
||||
|
||||
"video/mp4" = [ "mpv.desktop" ];
|
||||
"video/webm" = [ "mpv.desktop" ];
|
||||
"video/x-matroska" = [ "mpv.desktop" ];
|
||||
"audio/flac" = [ "mpv.desktop" ];
|
||||
"audio/mpeg" = [ "mpv.desktop" ];
|
||||
"audio/ogg" = [ "mpv.desktop" ];
|
||||
"audio/wav" = [ "mpv.desktop" ];
|
||||
|
||||
"application/pdf" = [ "org.kde.gwenview.desktop" ];
|
||||
};
|
||||
};
|
||||
|
||||
programs.zen-browser = {
|
||||
@@ -226,63 +268,75 @@
|
||||
};
|
||||
};
|
||||
|
||||
home.file.".config/fastfetch" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/ocbwoy3/config/config/fastfetch";
|
||||
services.flameshot = {
|
||||
enable = true;
|
||||
settings = {
|
||||
General = {
|
||||
disabledTrayIcon = true;
|
||||
showDesktopNotification = false;
|
||||
showStartupLaunchMessage = false;
|
||||
savePath = "/home/kris/Pictures/Screenshots";
|
||||
savePathFixed = true;
|
||||
useGrimAdapter = true;
|
||||
disabledGrimWarning = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = null;
|
||||
portalPackage = null;
|
||||
systemd.enable = true;
|
||||
plugins = [];
|
||||
extraConfig = builtins.readFile ../../config/hypr/hyprland.conf;
|
||||
};
|
||||
|
||||
home.file.".config/hypr/config" = {
|
||||
source = ../../config/hypr/config;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
home.file.".config/dunst" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/ocbwoy3/config/config/dunst";
|
||||
recursive = true;
|
||||
home.file.".config/hypr/hyprlock.conf" = {
|
||||
source = ../../config/hypr/hyprlock.conf;
|
||||
};
|
||||
|
||||
# home.file.".config/gtk-3.0" = {
|
||||
# source = config.lib.file.mkOutOfStoreSymlink "/home/ocbwoy3/config/config/gtk-3.0";
|
||||
# recursive = true;
|
||||
# };
|
||||
|
||||
home.file.".config/hypr" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/ocbwoy3/config/config/hypr";
|
||||
recursive = true;
|
||||
home.file.".config/hypr/hyprpaper.conf" = {
|
||||
source = ../../config/hypr/hyprpaper.conf;
|
||||
};
|
||||
|
||||
home.file.".config/xdg-desktop-portal" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/ocbwoy3/config/config/xdg-desktop-portal";
|
||||
recursive = true;
|
||||
home.file.".config/hypr/wallpaper.png" = {
|
||||
source = ../../config/hypr/wallpaper.png;
|
||||
};
|
||||
|
||||
home.file.".config/hypr/xdph.conf" = {
|
||||
source = ../../config/hypr/xdph.conf;
|
||||
};
|
||||
|
||||
home.file.".local/share/fonts/DotfilesFont.otf" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/ocbwoy3/config/config/dotfile_deps/DotfilesFont.otf";
|
||||
source = ../../config/dotfile_deps/DotfilesFont.otf;
|
||||
};
|
||||
|
||||
home.file.".config/ghostty" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/ocbwoy3/config/config/ghostty";
|
||||
recursive = true;
|
||||
programs.quickshell = {
|
||||
enable = true;
|
||||
package = inputs.quickshell.packages.${system}.default.withModules (
|
||||
with pkgs.qt6; [
|
||||
qtimageformats
|
||||
qtmultimedia
|
||||
qtsvg
|
||||
qt5compat
|
||||
]
|
||||
);
|
||||
configs = {
|
||||
default = ../../Shell;
|
||||
DeltaruneQuickshell = ../../Shell;
|
||||
};
|
||||
|
||||
home.file.".config/wlogout" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/ocbwoy3/config/config/wlogout";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
home.file.".config/qt5ct" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/ocbwoy3/config/config/qt5ct";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
home.file.".config/wofi" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/ocbwoy3/config/config/wofi";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
|
||||
# xdg.configHome = "/home/ocbwoy3/config/config";
|
||||
|
||||
services.mpris-proxy.enable = true;
|
||||
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
package = pkgs.brave;
|
||||
extensions = [
|
||||
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # uBlock Origin
|
||||
{ id = "enamippconapkdmgfgjchkhakpfinmaj"; } # DeArrow
|
||||
@@ -308,8 +362,11 @@
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "OCbwoy3";
|
||||
userEmail = "ocbwoy3@ocbwoy3.dev";
|
||||
signing.format = "openpgp";
|
||||
settings.user = {
|
||||
name = realName;
|
||||
email = "kris@darkworld.download";
|
||||
};
|
||||
};
|
||||
|
||||
programs.obs-studio = {
|
||||
|
||||
57
hosts/default/disko.nix
Normal file
@@ -0,0 +1,57 @@
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
disko.devices = {
|
||||
disk.main = {
|
||||
type = "disk";
|
||||
device = lib.mkDefault "/dev/nvme0n1";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
ESP = {
|
||||
size = "2G";
|
||||
type = "EF00";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
mountOptions = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
nixos = {
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "btrfs";
|
||||
extraArgs = [
|
||||
"-f"
|
||||
"-L"
|
||||
"NixOS"
|
||||
];
|
||||
subvolumes = {
|
||||
"@root" = {
|
||||
mountpoint = "/";
|
||||
mountOptions = [ "compress=zstd" ];
|
||||
};
|
||||
"@home" = {
|
||||
mountpoint = "/home";
|
||||
mountOptions = [ "compress=zstd" ];
|
||||
};
|
||||
"@nix" = {
|
||||
mountpoint = "/nix";
|
||||
mountOptions = [
|
||||
"compress=zstd"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -8,43 +8,36 @@
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||
boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/5ca305a1-d705-4c99-913c-a2d1c3447282";
|
||||
fileSystems."/" = lib.mkDefault
|
||||
{ device = "/dev/disk/by-uuid/d18510ee-3ef5-4ab0-a94b-aa6c4f4e0c31";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=root" ];
|
||||
options = [ "subvol=@root" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/5ca305a1-d705-4c99-913c-a2d1c3447282";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=home" ];
|
||||
};
|
||||
|
||||
fileSystems."/nix" =
|
||||
{ device = "/dev/disk/by-uuid/5ca305a1-d705-4c99-913c-a2d1c3447282";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=nix" "noatime" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/732D-084E";
|
||||
fileSystems."/boot" = lib.mkDefault
|
||||
{ device = "/dev/disk/by-uuid/EA40-0DB9";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
# swapDevices = [ { device = "/swap/swapfile"; } ];
|
||||
fileSystems."/home" = lib.mkDefault
|
||||
{ device = "/dev/disk/by-uuid/d18510ee-3ef5-4ab0-a94b-aa6c4f4e0c31";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@home" ];
|
||||
};
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
|
||||
fileSystems."/nix" = lib.mkDefault
|
||||
{ device = "/dev/disk/by-uuid/d18510ee-3ef5-4ab0-a94b-aa6c4f4e0c31";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@nix" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
{
|
||||
|
||||
environment.systemPackages = [
|
||||
(pkgs.callPackage ./../packages/ocbwoy3-icons/default.nix {})
|
||||
(pkgs.callPackage ./../packages/kris-icons/default.nix {})
|
||||
(pkgs.callPackage ./../packages/arashi-icons.nix {})
|
||||
(pkgs.callPackage ./../packages/ralsei-cursors/default.nix {}) # ralsei cursors ported to linux
|
||||
(pkgs.callPackage ./../packages/ralsei-cursors/default.nix {})
|
||||
];
|
||||
|
||||
system.nixos = {
|
||||
@@ -14,9 +14,9 @@
|
||||
};
|
||||
};
|
||||
|
||||
system.name = "ocbwoy3";
|
||||
system.nixos.label = "ocbwoy3-config-main";
|
||||
boot.loader.grub.configurationName = lib.mkDefault "git+https://tangled.sh/@ocbwoy3.dev/nix?ref=main";
|
||||
system.name = "kris";
|
||||
system.nixos.label = "kris-config-main";
|
||||
boot.loader.grub.configurationName = lib.mkDefault "git+https://tangled.sh/@kris.darkworld.download/nix?ref=main";
|
||||
|
||||
system.activationScripts.reloadFonts = {
|
||||
text = ''
|
||||
@@ -24,10 +24,4 @@
|
||||
'';
|
||||
};
|
||||
|
||||
system.activationScripts.xdgDesktopPortal = {
|
||||
text = ''
|
||||
echo "${pkgs.xdg-desktop-portal-gtk}/libexec/xdg-desktop-portal-gtk" > /.xdg.sh
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1,71 +1,51 @@
|
||||
{ inputs, config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-emoji
|
||||
noto-fonts-color-emoji
|
||||
monaspace
|
||||
geist-font
|
||||
# nerdfonts
|
||||
nerd-fonts.geist-mono
|
||||
nerd-fonts.monaspace
|
||||
nerd-fonts.symbols-only
|
||||
minecraftia
|
||||
(callPackage ./packages/nonnix-fonts.nix { })
|
||||
];
|
||||
|
||||
programs.seahorse.enable = true;
|
||||
|
||||
environment.sessionVariables.LD_LIBRARY_PATH = "${pkgs.gcc15}/lib";
|
||||
|
||||
security.polkit = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
security.polkit.enable = true;
|
||||
security.soteria.enable = true;
|
||||
|
||||
# surely they should add programs.discord!!
|
||||
environment.systemPackages = with pkgs; [
|
||||
mosh
|
||||
(discord.override {
|
||||
withEquicord = true;
|
||||
})
|
||||
|
||||
# hyprland stuff
|
||||
inputs.hyprlock.packages.${pkgs.stdenv.hostPlatform.system}.hyprlock
|
||||
inputs.hyprsysteminfo.packages.${pkgs.stdenv.hostPlatform.system}.hyprsysteminfo
|
||||
|
||||
# roblox
|
||||
inputs.tuxstrap.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
(writeShellScriptBin "regretevator" "xdg-open roblox://placeId=4972273297")
|
||||
(writeShellScriptBin "kaijuparadise" "xdg-open roblox://placeId=6456351776")
|
||||
(writeShellScriptBin "sewh" "xdg-open roblox://placeId=16991287194")
|
||||
|
||||
# minecraft
|
||||
qemu
|
||||
(writeShellScriptBin "qemu-system-x86_64-uefi" ''
|
||||
qemu-system-x86_64 \
|
||||
-bios ${OVMF.fd}/FV/OVMF.fd \
|
||||
"$@"
|
||||
'')
|
||||
(writeShellScriptBin "regretevator" ''xdg-open roblox://placeId=4972273297'')
|
||||
(writeShellScriptBin "kaijuparadise" ''xdg-open roblox://placeId=6456351776'')
|
||||
(writeShellScriptBin "sewh" ''xdg-open roblox://placeId=16991287194'')
|
||||
|
||||
(writeShellScriptBin "fix-gtk" ''${inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland}/bin/hyprctl dispatch exec "${pkgs.xdg-desktop-portal-gtk}/libexec/xdg-desktop-portal-gtk -r"'')
|
||||
(callPackage ./apps/wl-shimeji.nix {})
|
||||
(writeShellScriptBin "stop-shimejis" ''${inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland}/bin/hyprctl dispatch exec "shimejictl stop"'')
|
||||
# (writeShellScriptBin "partynoob" ''shimejictl summon PartyNoob'')
|
||||
# inputs.quickshell.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
(writeShellScriptBin "stop-shimejis" ''${
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
|
||||
}/bin/hyprctl dispatch exec "shimejictl stop"'')
|
||||
|
||||
tailscale
|
||||
bitwarden-desktop
|
||||
kdePackages.qtdeclarative
|
||||
catppuccin-gtk
|
||||
catppuccin
|
||||
catppuccin-qt5ct
|
||||
catppuccin-catwalk
|
||||
catppuccin-whiskers
|
||||
mission-center
|
||||
# nvtopPackages.full
|
||||
libxkbcommon
|
||||
ffmpeg-full
|
||||
gnupg
|
||||
code-cursor
|
||||
nix-direnv
|
||||
htop
|
||||
nixpkgs-fmt
|
||||
@@ -79,8 +59,9 @@
|
||||
alacritty
|
||||
libimobiledevice
|
||||
direnv
|
||||
nautilus
|
||||
kdePackages.dolphin
|
||||
kdePackages.gwenview
|
||||
kdePackages.kleopatra
|
||||
kdePackages.kservice
|
||||
qpwgraph
|
||||
wget
|
||||
@@ -95,61 +76,40 @@
|
||||
pypresence
|
||||
pygobject3
|
||||
]))
|
||||
# wrangler
|
||||
fontforge
|
||||
xclip
|
||||
gamescope
|
||||
yt-dlp
|
||||
fontforge-gtk
|
||||
deno
|
||||
wofi
|
||||
waybar
|
||||
hyprpaper
|
||||
dunst
|
||||
swww
|
||||
swappy
|
||||
slurp
|
||||
flameshot
|
||||
grim
|
||||
wayland-utils
|
||||
wl-clipboard
|
||||
github-cli
|
||||
cliphist
|
||||
pywal
|
||||
pavucontrol
|
||||
wlogout
|
||||
libnotify
|
||||
killall
|
||||
networkmanagerapplet
|
||||
blueman
|
||||
arrpc
|
||||
playerctl
|
||||
mangohud
|
||||
jq
|
||||
github-cli
|
||||
file
|
||||
nwg-look
|
||||
# rhythmbox
|
||||
hyprpolkitagent
|
||||
|
||||
# important
|
||||
glib
|
||||
openssl
|
||||
nss
|
||||
glibc # C LIBRARY DO NOT REMOVE VERY IMPORTANT
|
||||
glibc
|
||||
gobject-introspection
|
||||
gimp3
|
||||
mpv
|
||||
nixfmt-rfc-style
|
||||
|
||||
protonvpn-cli
|
||||
protonvpn-gui
|
||||
(writeShellScriptBin "protonvpn" ''${pkgs.protonvpn-cli}/bin/protonvpn-cli "$@"'')
|
||||
nixfmt
|
||||
|
||||
kdePackages.kdialog
|
||||
|
||||
(writeShellScriptBin "roblox-studio-patcher" ''${pkgs.bun}/bin/bun run /home/ocbwoy3/config/scripts/bin/patchInternalRobloxStudio.ts'')
|
||||
# firefox-devedition
|
||||
|
||||
(writeShellScriptBin "roblox-studio-patcher" "${pkgs.bun}/bin/bun run /etc/nixos/scripts/bin/patchInternalRobloxStudio.ts")
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, stdenv }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ocbwoy3-nixos-icons";
|
||||
pname = "kris-nixos-icons";
|
||||
version = "1.0.0";
|
||||
src = ./.;
|
||||
|
||||
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "OCbwoy3's Custom Icons for NixOS";
|
||||
homepage = "https://tangled.sh/@ocbwoy3.dev/nix?ref=main";
|
||||
description = "Kris's Custom Icons for NixOS";
|
||||
homepage = "https://tangled.sh/@kris.darkworld.download/nix?ref=main";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
14
hosts/default/packages/nonnix-fonts.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{ stdenvNoCC }:
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "kris-nonnix-fonts";
|
||||
version = "1";
|
||||
|
||||
src = ../../../asset/fonts/nonnix;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm644 *.ttf -t "$out/share/fonts/truetype"
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
||||
26
hosts/installer/configuration.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
curl
|
||||
wget
|
||||
rsync
|
||||
parted
|
||||
gptfdisk
|
||||
btrfs-progs
|
||||
nvme-cli
|
||||
vim
|
||||
inputs.disko.packages.${pkgs.system}.default
|
||||
];
|
||||
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings.PermitRootLogin = "yes";
|
||||
};
|
||||
}
|
||||
@@ -1,42 +1,72 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
mkUserService = pkgs.writeShellScriptBin "mk-user-service" ''
|
||||
set -euo pipefail
|
||||
|
||||
if [ "$#" -lt 2 ]; then
|
||||
echo "Usage: mk-user-service <name> <exec command...>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
name="$1"
|
||||
shift
|
||||
|
||||
unitDir="''${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user"
|
||||
unitFile="$unitDir/$name.service"
|
||||
|
||||
mkdir -p "$unitDir"
|
||||
|
||||
if [ -e "$unitFile" ]; then
|
||||
echo "Refusing to overwrite existing unit: $unitFile" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
cat > "$unitFile" <<EOF
|
||||
[Unit]
|
||||
Description=$name
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=$*
|
||||
Restart=on-failure
|
||||
RestartSec=2
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
EOF
|
||||
|
||||
echo "Created $unitFile"
|
||||
echo "Next steps:"
|
||||
echo " systemctl --user daemon-reload"
|
||||
echo " systemctl --user enable --now $name.service"
|
||||
'';
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./modules/atproto-pds.nix
|
||||
./modules/cloudflare.nix
|
||||
./modules/tangled.nix
|
||||
../../modules/force.nix
|
||||
./modules/gitea.nix
|
||||
./modules/vaultwarden.nix
|
||||
./modules/zipline.nix
|
||||
./slop/openclaw.nix
|
||||
./slop/brave.nix
|
||||
];
|
||||
|
||||
# gcc. shit breaks. wtf
|
||||
environment.sessionVariables.LD_LIBRARY_PATH = "${pkgs.gcc15}/lib";
|
||||
|
||||
services.vscode-server.enable = true;
|
||||
|
||||
systemd.services.ocbwoy3-start-pm2 = {
|
||||
enable = true;
|
||||
description = "Start PM2";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "forking";
|
||||
User = "ocbwoy3";
|
||||
LimitNOFILE = "infinity";
|
||||
LimitNPROC = "infinity";
|
||||
LimitCORE = "infinity";
|
||||
Environment = "PM2_HOME=/home/ocbwoy3/.pm2";
|
||||
PIDFile = "/home/ocbwoy3/.pm2/pm2.pid";
|
||||
Restart = "on-failure";
|
||||
|
||||
ExecStart = "${pkgs.pm2}/bin/pm2 resurrect";
|
||||
ExecReload = "${pkgs.pm2}/bin/pm2 reload all";
|
||||
ExecStop = "${pkgs.pm2}/bin/pm2 kill";
|
||||
};
|
||||
};
|
||||
|
||||
services.openssh.settings = {
|
||||
services.openssh.settings = lib.mkDefault {
|
||||
PubkeyAuthentication = "yes";
|
||||
TrustedUserCAKeys = "/etc/ssh/ca.pub";
|
||||
PermitRootLogin = lib.mkDefault "prohibit-password";
|
||||
KbdInteractiveAuthentication = lib.mkDefault false;
|
||||
};
|
||||
|
||||
services.openssh = {
|
||||
@@ -44,20 +74,113 @@
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
mosh
|
||||
fastfetch
|
||||
hyfetch
|
||||
pm2
|
||||
bash
|
||||
jdk
|
||||
steam-run
|
||||
opencode
|
||||
bun
|
||||
nodejs
|
||||
node-gyp
|
||||
playwright
|
||||
chromium
|
||||
brave
|
||||
(pkgs.callPackage ./slop/rocksky-cli.nix { })
|
||||
];
|
||||
|
||||
users.users.ocbwoy3 = {
|
||||
initialPassword = "thisisapassword42069!"; # not the type passwords i use
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "networkmanager" ];
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
"docker"
|
||||
];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
users.users.kris = {
|
||||
initialPassword = "thisisapassword42069!";
|
||||
isNormalUser = true;
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
"docker"
|
||||
];
|
||||
shell = pkgs.zsh;
|
||||
packages = [
|
||||
pkgs.mrpack-install
|
||||
mkUserService
|
||||
];
|
||||
};
|
||||
|
||||
system.activationScripts.enableKrisLinger.text = ''
|
||||
${pkgs.systemd}/bin/loginctl enable-linger kris || true
|
||||
'';
|
||||
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
nixos-rebuild = prev.writeShellScriptBin "nixos-rebuild" ''
|
||||
set -euo pipefail
|
||||
|
||||
action="''${1:-}"
|
||||
case "$action" in
|
||||
switch|boot|test|build|dry-activate)
|
||||
needs_flake=1
|
||||
;;
|
||||
*)
|
||||
needs_flake=0
|
||||
;;
|
||||
esac
|
||||
|
||||
has_flake=0
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--flake|--flake=*)
|
||||
has_flake=1
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$needs_flake" -eq 1 ] && [ "$has_flake" -eq 0 ]; then
|
||||
cat >&2 <<'EOF'
|
||||
|
||||
🚨🚨🚨 WARNING: DANGEROUS SYSTEM REBUILD 🚨🚨🚨
|
||||
This host is FLAKE-MANAGED. Do not attempt to rebuild the system from /etc/nixos.
|
||||
|
||||
Please ensure you are running THIS EXACT COMMAND inside /home/ocbwoy3/config:
|
||||
|
||||
sudo nixos-rebuild switch --flake /home/ocbwoy3/config#server --impure --cores 4 -L --upgrade
|
||||
|
||||
Aborting unsafe nixos-rebuild invocation.
|
||||
EOF
|
||||
exit 64
|
||||
fi
|
||||
|
||||
exec ${prev.nixos-rebuild}/bin/nixos-rebuild "$@"
|
||||
'';
|
||||
})
|
||||
];
|
||||
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
daemon.settings = {
|
||||
"log-driver" = "local";
|
||||
"log-opts" = {
|
||||
"max-size" = "10m";
|
||||
"max-file" = "3";
|
||||
};
|
||||
"live-restore" = true;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.docker.serviceConfig = {
|
||||
CPUQuota = "200%";
|
||||
MemoryMax = "12G";
|
||||
};
|
||||
|
||||
services.mongodb = {
|
||||
enable = true;
|
||||
@@ -69,14 +192,48 @@
|
||||
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [ 22 443 3000 3001 8080 25565 ];
|
||||
allowedUDPPorts = [ 22 443 3000 3001 8080 25565 ];
|
||||
allowedTCPPorts = [
|
||||
22
|
||||
443
|
||||
3000
|
||||
3001
|
||||
4067
|
||||
8080
|
||||
25565
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
22
|
||||
443
|
||||
3000
|
||||
3001
|
||||
4067
|
||||
8080
|
||||
25565
|
||||
];
|
||||
};
|
||||
|
||||
networking.hostName = "kris-server";
|
||||
|
||||
# Lock /etc/nixos to read-only mode (config lives in /home/ocbwoy3/config).
|
||||
systemd.tmpfiles.rules = [
|
||||
"z /etc/nixos 0555 root root - -"
|
||||
];
|
||||
|
||||
# Force resolver config to Cloudflare only.
|
||||
networking.nameservers = lib.mkForce [
|
||||
"1.1.1.1"
|
||||
"1.0.0.1"
|
||||
];
|
||||
environment.etc."resolv.conf".text = lib.mkForce ''
|
||||
nameserver 1.1.1.1
|
||||
nameserver 1.0.0.1
|
||||
'';
|
||||
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
accent = "blue";
|
||||
gitea.enable = false;
|
||||
};
|
||||
|
||||
system.stateVersion = "23.05"; # DO NOT TOUCH
|
||||
|
||||
51
hosts/server/hardware-configuration.nix
Normal file
@@ -0,0 +1,51 @@
|
||||
# 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" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/5ca305a1-d705-4c99-913c-a2d1c3447282";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=root" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/5ca305a1-d705-4c99-913c-a2d1c3447282";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=home" ];
|
||||
};
|
||||
|
||||
fileSystems."/nix" =
|
||||
{ device = "/dev/disk/by-uuid/5ca305a1-d705-4c99-913c-a2d1c3447282";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=nix" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/732D-084E";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
# swapDevices = [ { device = "/swap/swapfile"; } ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
62
hosts/server/modules/Caddyfile
Normal file
@@ -0,0 +1,62 @@
|
||||
@favicon path /favicon.ico
|
||||
handle @favicon {
|
||||
root * /lib/system-utdr-assets
|
||||
rewrite * /tenna.ico
|
||||
header Content-Type "image/vnd.microsoft.icon" # <-- microslop
|
||||
file_server
|
||||
}
|
||||
|
||||
@root path /
|
||||
handle @root {
|
||||
header Content-Type "text/plain; charset=utf-8"
|
||||
respond "
|
||||
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⠈⣾⠀⠀⠀⠀⠀⠀⠀⠀⣰⠎⢈⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠑⣹⠿⣧⠌⠀⠀⠀⠀⠀⣬⠷⣿⠛⠑⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡿⠁⠀⠀⠀⢀⢈⠀⠀⠀⠀⡱⣿⠌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣯⢎⢈⢈⣨⣿⣿⣯⢈⢈⢈⣮⣿⣿⠎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⠳⡳⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⡷⠳⠳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠱⣦⣌⣌⢌⢈⠈⠀⠀⠢⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⠯⠂⠀⠀⢈⢈⣌⣌⣬⠶⠁⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⡱⣿⣿⣿⣿⣯⣯⣌⣜⣹⣞⢹⡳⡷⢳⣙⣾⣙⣌⣬⣯⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠰⠷⠳⡷⣿⣿⣿⣿⣿⣿⣿⣯⣮⣿⣿⣿⣿⣿⣿⣿⡿⠷⠳⠷⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣨⣿⡿⠱⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⡱⣷⣯⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⠿⠀⠀⠱⣷⣿⣿⣿⣿⣿⣿⣿⠷⠁⠀⠰⣿⣿⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣨⣿⠿⠀⠀⠀⠀⢀⠈⠙⣿⣿⠟⠉⢈⠀⠀⠀⠀⠰⣿⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⣀⣿⡿⠀⠀⠀⠀⠀⡳⣷⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⡰⣿⣏⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⣌⣾⠗⠀⠀⠀⠀⠀⠀⠀⢀⣟⡻⡷⣻⣿⠏⠀⠀⠀⠀⠀⠀⠐⣷⣮⠈⠀⠀⠀⠀⠀⠀
|
||||
⢀⢈⢈⣈⣮⣼⣿⣿⠗⠀⠀⠀⠀⠀⠀⠀⢀⣽⣿⡿⣮⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠐⣷⣿⣿⣮⣌⢈⢈⢈
|
||||
⠀⢙⣿⠁⣈⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⠑⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⣿⣏⠈⣱⢟⠉
|
||||
⠲⠳⣯⡾⠷⠑⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣿⣿⠏⠀⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠑⡷⣮⠿⠳
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣳⣿⣿⠀⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣷⣿⣯⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡳⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣷⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡳⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
|
||||
This is an AT Protocol Personal Data Server (aka, an atproto PDS)
|
||||
|
||||
Most API routes are under /xrpc/
|
||||
|
||||
Code: https://github.com/bluesky-social/atproto
|
||||
Self-Host: https://github.com/bluesky-social/pds
|
||||
Protocol: https://atproto.com
|
||||
|
||||
As foretold in the prophecy.
|
||||
" 200
|
||||
}
|
||||
|
||||
@robots path /robots.txt
|
||||
handle @robots {
|
||||
header Content-Type "text/plain; charset=utf-8"
|
||||
respond "User-agent: *
|
||||
Disallow: /
|
||||
" 200
|
||||
}
|
||||
|
||||
handle {
|
||||
reverse_proxy localhost:3000 {
|
||||
header_up Host castletown.darkworld.download
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,13 @@
|
||||
{ config, inputs, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
systemUtdrAssets = pkgs.callPackage ./system-utdr-assets { };
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
@@ -13,14 +22,28 @@
|
||||
settings = {
|
||||
PDS_CRAWLERS = "https://bsky.network";
|
||||
LOG_ENABLED = "true";
|
||||
PDS_HOSTNAME = "pds.ocbwoy3.dev";
|
||||
# PDS_VERSION = "\"ATProto PDS v69420\"";
|
||||
PDS_HOSTNAME = "castletown.darkworld.download";
|
||||
PDS_VERSION = "\"That feeling when Deltarune........ tomorrow! :3\"";
|
||||
PDS_DID_PLC_URL = "https://plc.directory";
|
||||
PDS_CONTACT_EMAIL_ADDRESS = "ocbwoy3@ocbwoy3.dev";
|
||||
PDS_PRIVACY_POLICY_URL = "https://ocbwoy3.dev";
|
||||
PDS_TERMS_OF_SERVICE_URL = "https://ocbwoy3.dev";
|
||||
PDS_CONTACT_EMAIL_ADDRESS = "kris@darkworld.download";
|
||||
# PDS_PRIVACY_POLICY_URL = "https://bsky.social/about/support/privacy-policy";
|
||||
# PDS_TERMS_OF_SERVICE_URL = "https://bsky.social/about/support/tos";
|
||||
PDS_ACCEPTING_REPO_IMPORTS = "true";
|
||||
};
|
||||
};
|
||||
|
||||
# Set host header to `localhost` in tunnel settings otherwise you'll end up wasting countless hours of your life
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"L+ /lib/system-utdr-assets - - - - ${systemUtdrAssets}/lib/system-utdr-assets"
|
||||
];
|
||||
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
globalConfig = ''
|
||||
auto_https off
|
||||
'';
|
||||
virtualHosts."localhost:80".extraConfig = builtins.readFile ./Caddyfile;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ config, inputs, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
|
||||
34
hosts/server/modules/gitea.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
services.gitea = {
|
||||
enable = true;
|
||||
|
||||
database = {
|
||||
type = "postgres";
|
||||
};
|
||||
|
||||
settings = {
|
||||
server = {
|
||||
DOMAIN = "git.ocbwoy3.dev";
|
||||
ROOT_URL = "https://git.ocbwoy3.dev/";
|
||||
HTTP_PORT = 2222;
|
||||
DISABLE_SSH = true;
|
||||
MAX_UPLOAD_FILE_SIZE = 5242880;
|
||||
};
|
||||
|
||||
attachment = {
|
||||
MAX_SIZE = 5; # MB (this is the one causing the 1024 KiB error)
|
||||
};
|
||||
|
||||
service = {
|
||||
DISABLE_REGISTRATION = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
21
hosts/server/modules/system-utdr-assets/default.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ stdenvNoCC, lib }:
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "system-utdr-assets";
|
||||
version = "1.0.0";
|
||||
|
||||
src = ./.;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/lib/system-utdr-assets"
|
||||
cp "$src/tenna.ico" "$out/lib/system-utdr-assets/tenna.ico"
|
||||
cp "$src/logo.png" "$out/lib/system-utdr-assets/logo.png"
|
||||
cp "$src/favicon.png" "$out/lib/system-utdr-assets/favicon.png"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "System Undertale & Deltarune assets";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
||||
BIN
hosts/server/modules/system-utdr-assets/favicon.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
hosts/server/modules/system-utdr-assets/logo.png
Normal file
|
After Width: | Height: | Size: 864 KiB |
BIN
hosts/server/modules/system-utdr-assets/tenna.ico
Normal file
|
After Width: | Height: | Size: 17 KiB |
@@ -1,7 +1,12 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
services.tangled-knot = {
|
||||
services.tangled.knot = {
|
||||
enable = true;
|
||||
server = {
|
||||
listenAddr = "0.0.0.0:3003";
|
||||
@@ -10,7 +15,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
services.tangled-spindle = {
|
||||
services.tangled.spindle = {
|
||||
enable = true;
|
||||
server = {
|
||||
listenAddr = "0.0.0.0:3004";
|
||||
|
||||
44
hosts/server/modules/vaultwarden.nix
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
services.vaultwarden = {
|
||||
enable = true;
|
||||
dbBackend = "sqlite";
|
||||
environmentFile = "/var/lib/vaultwarden/vaultwarden.env";
|
||||
config = {
|
||||
# Keep data alongside the secret env file so we can back it up together.
|
||||
DATA_FOLDER = "/var/lib/vaultwarden/data";
|
||||
PUSH_RELAY_URI = "https://api.bitwarden.eu";
|
||||
PUSH_IDENTITY_URI = "https://identity.bitwarden.eu";
|
||||
DOMAIN = "https://vault.ocbwoy3.dev";
|
||||
ROCKET_ADDRESS = "0.0.0.0";
|
||||
ROCKET_PORT = 8222;
|
||||
WEBSOCKET_ENABLED = true;
|
||||
WEBSOCKET_ADDRESS = "0.0.0.0";
|
||||
WEBSOCKET_PORT = 3012;
|
||||
SIGNUPS_ALLOWED = false;
|
||||
};
|
||||
};
|
||||
|
||||
# Allow vaultwarden to write under /var/lib/vaultwarden and ensure the directories exist.
|
||||
systemd.services.vaultwarden.serviceConfig = {
|
||||
ReadWritePaths = [ "/var/lib/vaultwarden" ];
|
||||
};
|
||||
|
||||
# Create parent/data directories with proper ownership before startup.
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /var/lib/vaultwarden 0750 vaultwarden vaultwarden -"
|
||||
"d /var/lib/vaultwarden/data 0750 vaultwarden vaultwarden -"
|
||||
];
|
||||
|
||||
# cloudflared!!
|
||||
# networking.firewall.allowedTCPPorts = [
|
||||
# 8222
|
||||
# 3012
|
||||
# ];
|
||||
}
|
||||
17
hosts/server/modules/zipline.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
services.zipline = {
|
||||
enable = true;
|
||||
environmentFiles = [ "/private/zipline/zipline.env" ];
|
||||
settings = {
|
||||
CORE_HOSTNAME = "127.0.0.1";
|
||||
CORE_PORT = 3015;
|
||||
};
|
||||
};
|
||||
}
|
||||
201
hosts/server/slop/brave-shim.nix
Normal file
@@ -0,0 +1,201 @@
|
||||
{ pkgs }:
|
||||
|
||||
let
|
||||
pythonEnv = pkgs.python3.withPackages (ps: with ps; [
|
||||
fastapi
|
||||
uvicorn
|
||||
ddgs
|
||||
pyyaml
|
||||
]);
|
||||
in
|
||||
pkgs.stdenvNoCC.mkDerivation {
|
||||
pname = "brave-shim";
|
||||
version = "0.1.0";
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out/share/brave-shim
|
||||
|
||||
cat > $out/share/brave-shim/brave_shim.conf <<'CONF'
|
||||
server:
|
||||
host: "127.0.0.1"
|
||||
port: 8000
|
||||
|
||||
ssl:
|
||||
use_custom_ca: false
|
||||
ca_bundle_path: "/etc/ssl/certs/ca-certificates.crt"
|
||||
verify_ssl: true
|
||||
|
||||
logging:
|
||||
file_path: "/home/openclaw/.local/state/brave-shim/brave_shim.log"
|
||||
level: "INFO"
|
||||
|
||||
bot_protection:
|
||||
cache_expiration: 3600
|
||||
min_delay: 1.0
|
||||
max_delay: 2.5
|
||||
|
||||
search:
|
||||
default_count: 10
|
||||
local_count: 5
|
||||
CONF
|
||||
|
||||
cat > $out/share/brave-shim/brave_shim.py <<'PY'
|
||||
import time
|
||||
import random
|
||||
import yaml
|
||||
import uvicorn
|
||||
import logging
|
||||
import os
|
||||
import ssl
|
||||
from fastapi import FastAPI, Query
|
||||
from ddgs import DDGS
|
||||
from pathlib import Path
|
||||
|
||||
config_path = Path(os.environ.get("BRAVE_SHIM_CONF", "brave_shim.conf"))
|
||||
if not config_path.exists():
|
||||
raise FileNotFoundError(f"Config not found: {config_path}")
|
||||
|
||||
with open(config_path, "r") as f:
|
||||
config = yaml.safe_load(f)
|
||||
|
||||
os.makedirs(os.path.dirname(config["logging"]["file_path"]), exist_ok=True)
|
||||
logging.basicConfig(
|
||||
level=config['logging']['level'],
|
||||
format="%(asctime)s [%(levelname)s] %(message)s",
|
||||
handlers=[logging.FileHandler(config['logging']['file_path'])]
|
||||
)
|
||||
logger = logging.getLogger("brave_shim")
|
||||
|
||||
ssl_cfg = config.get('ssl', {})
|
||||
verify_ssl = ssl_cfg.get('verify_ssl', True)
|
||||
custom_ca_status = "System Default"
|
||||
|
||||
if ssl_cfg.get('use_custom_ca'):
|
||||
ca_path = ssl_cfg['ca_bundle_path']
|
||||
if os.path.exists(ca_path):
|
||||
os.environ["SSL_CERT_FILE"] = ca_path
|
||||
os.environ["REQUESTS_CA_BUNDLE"] = ca_path
|
||||
os.environ["CURL_CA_BUNDLE"] = ca_path
|
||||
|
||||
if not verify_ssl:
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
custom_ca_status = f"Active (Verify=OFF, Path={ca_path})"
|
||||
logger.warning("SSL verification disabled")
|
||||
else:
|
||||
try:
|
||||
context = ssl.create_default_context(cafile=ca_path)
|
||||
ssl._create_default_https_context = lambda: context
|
||||
custom_ca_status = f"Active (Path={ca_path})"
|
||||
except Exception as e:
|
||||
logger.error(f"SSL bundle load error: {e}")
|
||||
else:
|
||||
logger.error(f"SSL CA bundle not found: {ca_path}")
|
||||
custom_ca_status = "Error: File not found"
|
||||
|
||||
app = FastAPI(title="Brave Search API Shim", docs_url=None, redoc_url=None)
|
||||
search_cache = {}
|
||||
|
||||
def get_from_cache(q):
|
||||
expiration = config['bot_protection']['cache_expiration']
|
||||
if q in search_cache:
|
||||
timestamp, data = search_cache[q]
|
||||
if time.time() - timestamp < expiration:
|
||||
return data
|
||||
return None
|
||||
|
||||
@app.get("/status")
|
||||
async def health_check():
|
||||
return {
|
||||
"status": "online",
|
||||
"cache_entries": len(search_cache),
|
||||
"ssl_verify": verify_ssl,
|
||||
"ca_bundle": custom_ca_status
|
||||
}
|
||||
|
||||
@app.get("/res/v1/web/search")
|
||||
async def search_proxy(q: str = Query(...), count: int = None):
|
||||
res_count = count or config['search']['default_count']
|
||||
cached_res = get_from_cache(q)
|
||||
if cached_res:
|
||||
logger.info(f"CACHE HIT: {q}")
|
||||
return cached_res
|
||||
|
||||
time.sleep(random.uniform(config['bot_protection']['min_delay'], config['bot_protection']['max_delay']))
|
||||
logger.info(f"FETCH WEB: {q}")
|
||||
try:
|
||||
with DDGS(verify=verify_ssl) as ddgs:
|
||||
results = []
|
||||
for r in ddgs.text(q, max_results=res_count):
|
||||
results.append({
|
||||
"title": r.get("title"),
|
||||
"url": r.get("href"),
|
||||
"description": r.get("body"),
|
||||
"meta_url": {"path": r.get("href")}
|
||||
})
|
||||
|
||||
response_data = {"web": {"results": results}}
|
||||
search_cache[q] = (time.time(), response_data)
|
||||
return response_data
|
||||
except Exception as e:
|
||||
logger.error(f"WEB search error for '{q}': {e}")
|
||||
return {"web": {"results": []}, "error": str(e)}
|
||||
|
||||
@app.get("/res/v1/local/pois")
|
||||
async def local_proxy(q: str = Query(...), count: int = None):
|
||||
res_count = count or config['search']['local_count']
|
||||
logger.info(f"FETCH LOCAL: {q}")
|
||||
try:
|
||||
with DDGS(verify=verify_ssl) as ddgs:
|
||||
res = [
|
||||
{
|
||||
"id": str(i),
|
||||
"name": r["title"],
|
||||
"address": r["body"][:100],
|
||||
"phone": "",
|
||||
"coordinates": {"latitude": 0.0, "longitude": 0.0}
|
||||
}
|
||||
for i, r in enumerate(ddgs.text(f"place {q}", max_results=res_count))
|
||||
]
|
||||
return {"results": res}
|
||||
except Exception as e:
|
||||
logger.error(f"LOCAL search error for '{q}': {e}")
|
||||
return {"results": []}
|
||||
|
||||
@app.get("/res/v1/local/descriptions")
|
||||
async def local_descriptions(id: str = Query(...)):
|
||||
return {"descriptions": {id: "Data from DDGS proxy."}}
|
||||
|
||||
@app.get("/res/v1/summarizer/summary")
|
||||
async def summarizer_proxy(key: str = Query(...)):
|
||||
return {"summary": "Summary ready.", "status": "complete"}
|
||||
|
||||
if __name__ == "__main__":
|
||||
logger.info(f"Starting brave-shim on {config['server']['host']}:{config['server']['port']}")
|
||||
uvicorn.run(
|
||||
app,
|
||||
host=config['server']['host'],
|
||||
port=config['server']['port'],
|
||||
access_log=False,
|
||||
log_level="critical"
|
||||
)
|
||||
PY
|
||||
|
||||
cat > $out/bin/brave-shim <<EOF
|
||||
#!${pkgs.bash}/bin/bash
|
||||
set -euo pipefail
|
||||
export BRAVE_SHIM_CONF=\"\
|
||||
s h\
|
||||
\"
|
||||
EOF
|
||||
|
||||
# simpler wrapper (avoid quoting bugs)
|
||||
cat > $out/bin/brave-shim <<EOF
|
||||
#!${pkgs.bash}/bin/bash
|
||||
set -euo pipefail
|
||||
export BRAVE_SHIM_CONF="''${BRAVE_SHIM_CONF:-$out/share/brave-shim/brave_shim.conf}"
|
||||
exec ${pythonEnv}/bin/python $out/share/brave-shim/brave_shim.py
|
||||
EOF
|
||||
chmod +x $out/bin/brave-shim
|
||||
'';
|
||||
}
|
||||
21
hosts/server/slop/brave.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
braveShim = pkgs.callPackage ./brave-shim.nix { };
|
||||
in
|
||||
{
|
||||
# Local Brave API shim as a user service
|
||||
systemd.user.services.brave-shim = {
|
||||
description = "Brave Search API shim (DDGS)";
|
||||
wantedBy = [ "default.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${braveShim}/bin/brave-shim";
|
||||
Restart = "always";
|
||||
RestartSec = "3";
|
||||
};
|
||||
};
|
||||
}
|
||||
36
hosts/server/slop/gogcli.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
lib,
|
||||
buildGo125Module,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
buildGo125Module rec {
|
||||
pname = "gogcli";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "steipete";
|
||||
repo = "gogcli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-hJU40ysjRx4p9SWGmbhhpToYCpk3DcMAWCnKqxHRmh0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-WGRlv3UsK3SVBQySD7uZ8+FiRl03p0rzjBm9Se1iITs=";
|
||||
|
||||
subPackages = [ "cmd/gog" ];
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X github.com/steipete/gogcli/internal/cmd.version=${version}"
|
||||
"-X github.com/steipete/gogcli/internal/cmd.commit=v${version}"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Google workspace CLI client";
|
||||
homepage = "https://github.com/steipete/gogcli";
|
||||
license = licenses.mit;
|
||||
mainProgram = "gog";
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
};
|
||||
}
|
||||
69
hosts/server/slop/openclaw.nix
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
openclawPatched = inputs.openclaw.packages.${pkgs.system}.openclaw-gateway.overrideAttrs (old: {
|
||||
installPhase =
|
||||
old.installPhase
|
||||
+ "\n"
|
||||
+ ''
|
||||
# Point Brave web-search endpoint to local shim.
|
||||
# NOTE: upstream installPhase script does not run postInstall hooks,
|
||||
# so patch directly at the end of installPhase.
|
||||
if [ -d "$out/lib/openclaw/dist" ]; then
|
||||
# Web-search tool hardcodes Brave endpoint in bundled JS.
|
||||
# No runtime config option exists for Brave base URL in this OpenClaw version.
|
||||
grep -RIl "https://api.search.brave.com" "$out/lib/openclaw/dist" | while read -r f; do
|
||||
substituteInPlace "$f" \
|
||||
--replace "https://api.search.brave.com/res/v1/web/search" "http://127.0.0.1:8000/res/v1/web/search" \
|
||||
--replace "https://api.search.brave.com/res/v1/" "http://127.0.0.1:8000/res/v1/" \
|
||||
--replace "https://api.search.brave.com/" "http://127.0.0.1:8000/" \
|
||||
--replace "https://api.search.brave.com" "http://127.0.0.1:8000"
|
||||
done
|
||||
fi
|
||||
'';
|
||||
});
|
||||
in
|
||||
{
|
||||
imports = [ inputs.openclaw.nixosModules.openclaw-gateway ];
|
||||
|
||||
users.users.openclaw = {
|
||||
isSystemUser = false;
|
||||
isNormalUser = true;
|
||||
home = "/home/openclaw";
|
||||
createHome = true;
|
||||
group = "openclaw";
|
||||
extraGroups = [ "docker" ];
|
||||
shell = pkgs.bash;
|
||||
description = "OpenClaw agent sandboxed user";
|
||||
packages = [
|
||||
openclawPatched
|
||||
(pkgs.callPackage ./gogcli.nix { })
|
||||
(pkgs.callPackage ./brave-shim.nix { })
|
||||
pkgs.uv
|
||||
pkgs.python3
|
||||
];
|
||||
};
|
||||
|
||||
users.groups.openclaw = { };
|
||||
|
||||
# Keep the openclaw user's systemd --user instance running so the gateway stays up.
|
||||
# Using activation script because services.logind.lingerUsers isn't available in this release.
|
||||
system.activationScripts.enableOpenclawLinger.text = ''
|
||||
${pkgs.systemd}/bin/loginctl enable-linger openclaw || true
|
||||
'';
|
||||
|
||||
# Run OpenClaw gateway as a NixOS system service under the dedicated user.
|
||||
services.openclaw-gateway = {
|
||||
enable = true;
|
||||
package = openclawPatched;
|
||||
createUser = false;
|
||||
user = "openclaw";
|
||||
group = "openclaw";
|
||||
stateDir = "/home/openclaw/.local/share/openclaw";
|
||||
};
|
||||
|
||||
}
|
||||
9
hosts/server/slop/rocksky-cli.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ pkgs }:
|
||||
|
||||
pkgs.writeShellApplication {
|
||||
name = "rocksky";
|
||||
runtimeInputs = [ pkgs.bun ];
|
||||
text = ''
|
||||
exec ${pkgs.bun}/bin/bun x @rocksky/cli "$@"
|
||||
'';
|
||||
}
|
||||
@@ -13,6 +13,8 @@
|
||||
./stuff/zsh.nix
|
||||
];
|
||||
|
||||
services.tailscale.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
tmux
|
||||
gh
|
||||
@@ -21,7 +23,8 @@
|
||||
openssl
|
||||
nss
|
||||
glibc
|
||||
nixfmt-rfc-style
|
||||
kitty
|
||||
nixfmt
|
||||
killall
|
||||
deno
|
||||
bun
|
||||
@@ -34,5 +37,6 @@
|
||||
nixd
|
||||
ffmpeg-full
|
||||
gnupg
|
||||
codex
|
||||
];
|
||||
}
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
./force.nix
|
||||
];
|
||||
|
||||
# because i love cuda
|
||||
nixpkgs.config.cudaSupport = lib.warn "you're going to fucking hell if you aren't using a binary cache" true;
|
||||
|
||||
nixpkgs.config.cudaSupport = lib.mkDefault true;
|
||||
services.desktopManager.plasma6.enable = lib.mkDefault false;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
||||
@@ -25,13 +25,11 @@
|
||||
];
|
||||
|
||||
boot.loader = {
|
||||
efi = {
|
||||
# canTouchEfiVariables = true;
|
||||
};
|
||||
grub = {
|
||||
efiSupport = true;
|
||||
device = "nodev";
|
||||
efiInstallAsRemovable = true;
|
||||
# efiSysMountPoint = "/boot";
|
||||
# efiInstallAsRemovable = true;
|
||||
# will kill pc if triplebooting w*ndows, nixos and cachyos
|
||||
useOSProber = true;
|
||||
gfxmodeEfi = "1920x1080";
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
{
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
services.blueman.enable = true;
|
||||
services.blueman.enable = false;
|
||||
|
||||
hardware.bluetooth.settings = {
|
||||
General = {
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
{
|
||||
options = {
|
||||
main-user.userName = lib.mkOption {
|
||||
default = "ocbwoy3";
|
||||
default = "kris";
|
||||
description = ''
|
||||
Username
|
||||
'';
|
||||
};
|
||||
main-user.realName = lib.mkOption {
|
||||
default = "OCbwoy3";
|
||||
default = "Kris";
|
||||
description = ''
|
||||
User's Name
|
||||
'';
|
||||
@@ -28,7 +28,7 @@
|
||||
initialPassword = "password";
|
||||
description = "${config.main-user.realName}";
|
||||
shell = pkgs.zsh;
|
||||
extraGroups = [ "networkmanager" "gamemode" "wheel" "input" "video" "libvirtd" "power" ];
|
||||
extraGroups = [ "networkmanager" "gamemode" "wheel" "input" "video" "power" ];
|
||||
packages = config.main-user.packages;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
{
|
||||
|
||||
#! Disable default nameservers to prevent ISP espionage
|
||||
networking.nameservers = [ "1.1.1.1" "1.0.0.1" ];
|
||||
networking.nameservers = [
|
||||
"1.1.1.1"
|
||||
"1.0.0.1"
|
||||
];
|
||||
|
||||
networking.hostName = "ralsei-pc";
|
||||
networking.networkmanager.enable = true;
|
||||
networking.resolvconf.enable = false;
|
||||
|
||||
}
|
||||
|
||||
@@ -3,8 +3,16 @@
|
||||
{
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nixpkgs.config.replaceStdenv = args: args.pkgs.stdenv;
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
||||
equibop = pkgs.equibop.overrideAttrs (old: {
|
||||
nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ pkgs.makeWrapper ];
|
||||
postFixup = (old.postFixup or "") + ''
|
||||
wrapProgram $out/bin/equibop \
|
||||
--prefix LD_LIBRARY_PATH : "${pkgs.lib.makeLibraryPath [ (pkgs.lib.getLib pkgs.stdenv.cc.cc) ]}"
|
||||
'';
|
||||
});
|
||||
};
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
@@ -12,18 +20,15 @@
|
||||
nix.settings = {
|
||||
substituters = [
|
||||
"https://hyprland.cachix.org"
|
||||
"https://ghostty.cachix.org"
|
||||
"https://wrangler.cachix.org"
|
||||
"https://nix-community.cachix.org"
|
||||
];
|
||||
trusted-substituters = [
|
||||
"https://hyprland.cachix.org"
|
||||
"https://ghostty.cachix.org"
|
||||
"https://nix-community.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
"ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns="
|
||||
"wrangler.cachix.org-1:N/FIcG2qBQcolSpklb2IMDbsfjZKWg+ctxx0mSMXdSs="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
];
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
@@ -14,8 +19,6 @@
|
||||
NVD_BACKEND = "direct";
|
||||
EGL_PLATFORM = "wayland";
|
||||
VDPAU_DRIVER = "va_gl";
|
||||
WAYLAND_DISPLAY = "wayland-1";
|
||||
DISPLAY = ":0";
|
||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||
MOZ_ENABLE_WAYLAND = "1"; # Enable Wayland for Firefox
|
||||
CHROMIUM_FLAGS = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-gpu-rasterization --enable-zero-copy"; # Enable Wayland and hardware acceleration for Chromium
|
||||
@@ -33,13 +36,14 @@
|
||||
# obs moment
|
||||
# nixpkgs.config.cudaSupport = true;
|
||||
|
||||
hardware.graphics = { # hardware.graphics since NixOS 24.11
|
||||
hardware.graphics = {
|
||||
# hardware.graphics since NixOS 24.11
|
||||
enable = true;
|
||||
# driSupport = true;
|
||||
extraPackages = with pkgs; [
|
||||
nvidia-vaapi-driver
|
||||
libvdpau-va-gl
|
||||
vaapiVdpau
|
||||
libva-vdpau-driver
|
||||
libvdpau
|
||||
];
|
||||
};
|
||||
@@ -50,14 +54,19 @@
|
||||
powerManagement.finegrained = false;
|
||||
open = true;
|
||||
nvidiaSettings = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
};
|
||||
|
||||
boot.kernelModules = [ "nvidia-uvm" "nvidia-drm" ];
|
||||
boot.kernelModules = [
|
||||
"nvidia-uvm"
|
||||
"nvidia-drm"
|
||||
];
|
||||
boot.blacklistedKernelModules = [ "nouveau" ];
|
||||
|
||||
boot.kernelParams = [ "nvidia-drm.modeset=1" "nvidia-drm.fbdev=1" ];
|
||||
boot.kernelParams = [
|
||||
"nvidia-drm.modeset=1"
|
||||
"nvidia-drm.fbdev=1"
|
||||
];
|
||||
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
PasswordAuthentication = false;
|
||||
KbdInteractiveAuthentication = false;
|
||||
PermitRootLogin = "no";
|
||||
AllowUsers = [ "ocbwoy3" "git" ];
|
||||
AllowUsers = [ "kris" "ocbwoy3" "git" ];
|
||||
};
|
||||
# fucks up ssh connections from iphone if you enable this
|
||||
# settings = {
|
||||
@@ -68,7 +68,7 @@
|
||||
# enable = true;
|
||||
agent = {
|
||||
enable = true;
|
||||
pinentryPackage = pkgs.pinentry-gnome3;
|
||||
pinentryPackage = pkgs.pinentry-qt;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
6
modules/openclaw-docker-env.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ ... }:
|
||||
{
|
||||
environment.variables = {
|
||||
DOCKER_HOST = "tcp://127.0.0.1:2375";
|
||||
};
|
||||
}
|
||||
32
modules/openclaw-docker.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
virtualisation.oci-containers.containers.docker-socket-proxy = {
|
||||
image = "tecnativa/docker-socket-proxy:latest";
|
||||
autoStart = true;
|
||||
volumes = [ "/var/run/docker.sock:/var/run/docker.sock" ];
|
||||
environment = {
|
||||
CONTAINERS = "1";
|
||||
IMAGES = "1";
|
||||
NETWORKS = "1";
|
||||
VOLUMES = "1";
|
||||
INFO = "1";
|
||||
POST = "1";
|
||||
BUILD = "1";
|
||||
COMMIT = "0";
|
||||
CONFIGS = "0";
|
||||
DISTRIBUTION = "0";
|
||||
EXEC = "0";
|
||||
GRPC = "0";
|
||||
PLUGINS = "0";
|
||||
SECRETS = "0";
|
||||
SERVICES = "0";
|
||||
SESSION = "0";
|
||||
SWARM = "0";
|
||||
SYSTEM = "0";
|
||||
TASKS = "0";
|
||||
AUTH = "0";
|
||||
ALLOW_RESTARTS = "1";
|
||||
};
|
||||
ports = [ "127.0.0.1:2375:2375" ];
|
||||
};
|
||||
}
|
||||
13
modules/openclaw-fs.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ ... }:
|
||||
{
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /private 0750 root root -"
|
||||
"z /private/AT\x20Protocol 0700 root root -"
|
||||
"z /private/cloudflared 0700 root root -"
|
||||
"z /private/cloudflared.pem 0600 root root -"
|
||||
"z /private/tangled.env 0600 root root -"
|
||||
"z /private/vaultwarden 0700 root root -"
|
||||
"d /private/zipline 0700 root root -"
|
||||
"z /protected 0700 root root -"
|
||||
];
|
||||
}
|
||||
17
modules/openclaw-sudo.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
security.sudo.extraRules = [
|
||||
{
|
||||
users = [ "openclaw" ];
|
||||
commands = [
|
||||
{
|
||||
command = "/run/current-system/sw/bin/cat";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
{
|
||||
command = "/run/current-system/sw/bin/docker";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
3
modules/openclaw-user.nix
Normal file
@@ -0,0 +1,3 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
}
|
||||
82
modules/openclaw-watchdog.nix
Normal file
@@ -0,0 +1,82 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
systemd.services.openclaw-watchdog = {
|
||||
description = "Post-rebuild health watchdog";
|
||||
after = [ "network.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "/etc/openclaw/nixos-rollback.sh check";
|
||||
};
|
||||
onFailure = [ "nixos-rollback.service" ];
|
||||
};
|
||||
|
||||
systemd.services.nixos-rollback = {
|
||||
description = "Autonomous NixOS rollback";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "/etc/openclaw/nixos-rollback.sh rollback";
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc."openclaw/nixos-rollback.sh" = {
|
||||
mode = "0750";
|
||||
text = ''
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
WEBHOOK="$(cat /run/secrets/discord-webhook 2>/dev/null || echo "")"
|
||||
UNITS=("sshd" "docker" "bluesky-pds" "cloudflared" "zipline")
|
||||
HOSTNAME="$(hostname)"
|
||||
|
||||
notify() {
|
||||
[ -z "$WEBHOOK" ] && return
|
||||
curl -s -X POST "$WEBHOOK" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"content\": \"$1\"}"
|
||||
}
|
||||
|
||||
check_units() {
|
||||
for unit in "''${UNITS[@]}"; do
|
||||
if ! systemctl is-active --quiet "$unit"; then
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
check_ssh() {
|
||||
timeout 5 bash -c 'echo > /dev/tcp/127.0.0.1/22' 2>/dev/null
|
||||
}
|
||||
|
||||
do_check() {
|
||||
for i in $(seq 1 6); do
|
||||
sleep 10
|
||||
if check_units && check_ssh; then
|
||||
notify "**[$HOSTNAME] NixOS switch healthy** — all units OK after rebuild."
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
exit 1
|
||||
}
|
||||
|
||||
do_rollback() {
|
||||
notify "**[$HOSTNAME] ROLLBACK TRIGGERED** — health check failed. Rolling back..."
|
||||
if nixos-rebuild switch --rollback; then
|
||||
sleep 15
|
||||
if check_units && check_ssh; then
|
||||
notify "**[$HOSTNAME] Rollback successful** — previous generation restored."
|
||||
else
|
||||
notify "**[$HOSTNAME] URGENT — rollback also failed.** Manual intervention needed."
|
||||
fi
|
||||
else
|
||||
notify "**[$HOSTNAME] URGENT — rollback command failed.** Manual intervention needed."
|
||||
fi
|
||||
}
|
||||
|
||||
case "''${1:-check}" in
|
||||
check) do_check ;;
|
||||
rollback) do_rollback ;;
|
||||
esac
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -14,8 +14,8 @@
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
statusline.lualine.enable = true;
|
||||
lsp.enable = true;
|
||||
languages = {
|
||||
enableLSP = true;
|
||||
enableTreesitter = true;
|
||||
|
||||
nix.enable = true;
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
{ config, inputs, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
@@ -14,13 +20,16 @@
|
||||
syntaxHighlighting.enable = true;
|
||||
ohMyZsh = {
|
||||
enable = true;
|
||||
plugins = [ "git" "direnv" ];
|
||||
plugins = [
|
||||
"git"
|
||||
"direnv"
|
||||
];
|
||||
theme = "robbyrussell";
|
||||
};
|
||||
shellAliases = {
|
||||
# ultimate cpu killer 3000
|
||||
nixrebuild = "sudo nixos-rebuild switch --flake .#default --impure --cores 20 -L --upgrade";
|
||||
dangerous-nixrebuild-server = "sudo nixos-rebuild switch --flake .#server --impure --cores 4 -L --upgrade";
|
||||
dangerous-nixrebuild-server = "sudo nixos-rebuild switch --flake /home/ocbwoy3/config#server --impure --cores 4 -L --upgrade";
|
||||
neofetch = "fastfetch";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,179 +0,0 @@
|
||||
import { $ } from "bun";
|
||||
import { Command } from "commander";
|
||||
// import sharp from "sharp";
|
||||
import { writeFileSync } from "fs";
|
||||
import { getRegretevatorState } from "../lib/RegretevatorUtil";
|
||||
|
||||
/*
|
||||
|
||||
yeucc i swear to fucking god...
|
||||
|
||||
{"text":"ý 999","tooltip":"Regretevator: Floor streak 999"}
|
||||
|
||||
NOTE: ý turns into the regretevator icon when using DotfilesFont
|
||||
|
||||
====
|
||||
|
||||
[BloxstrapRPC] {"command":"SetRichPresence","data":{"details":"REGRETEVATOR","smallImage":{"hoverText":"The Axolotl Sun","assetId":14648053922},"state":"","largeImage":{"hoverText":"THE REGRET ELEVATOR"}}}
|
||||
|
||||
InGame | details === "REGRETEVATOR"; smallImage?.hoverText === "The Axolotl Sun";
|
||||
|
||||
====
|
||||
|
||||
[BloxstrapRPC] {"command":"SetRichPresence","data":{"state":"Lounging in the lobby","timeStart":0,"timeEnd":0}}
|
||||
|
||||
InGame[Lobby] | state === "Lounging in the lobby";
|
||||
|
||||
====
|
||||
|
||||
[BloxstrapRPC] {"command":"SetRichPresence","data":{"state":"Currently spectating ELEVATOR_CAM"}}
|
||||
|
||||
InGame[Spectating] | state matches regex /$Currently spectating (.*)$/, if so, SpectateName=$1;
|
||||
|
||||
====
|
||||
|
||||
[BloxstrapRPC] {"command":"SetRichPresence","data":{"details":"Going up!","state":"Floor streak 348","timeStart":1749325817,"timeEnd":1749325839}}
|
||||
|
||||
InGame[GoingUp] | details === "Going up!"; state matches regex /^Floor streak ([0-9]+)$/, if so, FloorStreak=$1;
|
||||
|
||||
====
|
||||
|
||||
[BloxstrapRPC] {"command":"SetRichPresence","data":{"details":"At Funny Maze","state":"Floor streak 348","timeStart":0,"timeEnd":0}}
|
||||
|
||||
InGame[AtFloor] | details match regex /^At (.+)$/, if so, FloorName=$1; state matches regex /^Floor streak ([0-9]+)$/, if so, FloorStreak=$1;
|
||||
|
||||
====
|
||||
|
||||
TODO: Bring back `features/RegretevatorWaybar.ts` to TuxStrap
|
||||
|
||||
*/
|
||||
|
||||
const windowClassFriendyName: { [windowClass: string]: string } = {
|
||||
steam_app_1671210: "Deltarune",
|
||||
"deltarune.exe": "Deltarune", // deltarune with proton-cachyos/proton-cachyos-slr + PROTON_ENABLE_WAYLAND=1
|
||||
"org.vinegarhq.Sober": "Roblox",
|
||||
steam_app_1690940: "Deltarune", // demo
|
||||
};
|
||||
|
||||
async function getWMClass(): Promise<string> {
|
||||
const windowClass = await $`hyprctl activewindow -j`.json();
|
||||
return windowClass.initialClass;
|
||||
}
|
||||
|
||||
async function getFilename(wmClass?: string): Promise<string> {
|
||||
const _d = new Date();
|
||||
let ic =
|
||||
(wmClass && windowClassFriendyName[wmClass]) || wmClass || "Hyprland";
|
||||
const isRoblox = wmClass === "org.vinegarhq.Sober";
|
||||
if (isRoblox) {
|
||||
ic = "Roblox";
|
||||
}
|
||||
const regretevatorState = isRoblox ? getRegretevatorState() : null;
|
||||
if (!!regretevatorState) {
|
||||
ic = "Regretevator";
|
||||
}
|
||||
// console.log(isRoblox, regretevatorState)
|
||||
return `${ic}-${_d.getTime()}${
|
||||
!regretevatorState
|
||||
? ""
|
||||
: `-regretevator${
|
||||
regretevatorState.state === "INGAME"
|
||||
? `-${regretevatorState.floor}`
|
||||
: ""
|
||||
}`
|
||||
}`;
|
||||
}
|
||||
|
||||
const program = new Command("handle-screenshot");
|
||||
|
||||
const SCREENSHOT_PATH = `/home/ralsei/Pictures/Screenshots`;
|
||||
|
||||
// useless
|
||||
async function transformImage(b: Buffer): Promise<Buffer> {
|
||||
/*
|
||||
const image = sharp(b).ensureAlpha();
|
||||
|
||||
const { width, height } = await image.metadata();
|
||||
|
||||
// console.log(width, height);
|
||||
|
||||
const mask = Buffer.from(
|
||||
`<svg width="${width}" height="${height}">
|
||||
<rect x="0" y="0" width="${width}" height="${height}" rx="16" fill="white"/>
|
||||
</svg>`
|
||||
);
|
||||
|
||||
const maskedImage = image
|
||||
.composite([
|
||||
{
|
||||
input: mask,
|
||||
gravity: "center",
|
||||
blend: "dest-in",
|
||||
},
|
||||
])
|
||||
.extend({
|
||||
top: 16,
|
||||
bottom: 16,
|
||||
left: 16,
|
||||
right: 16,
|
||||
})
|
||||
.ensureAlpha();
|
||||
|
||||
return (await maskedImage.png().toBuffer()) as Buffer;
|
||||
*/
|
||||
return b;
|
||||
}
|
||||
|
||||
(() => {
|
||||
program
|
||||
.command("selection")
|
||||
.description("Takes a screenshot from selection")
|
||||
.action(async () => {
|
||||
const _C = await getWMClass();
|
||||
const selection = await $`slurp -w 0 -d -b "#cdd6f444"`
|
||||
.nothrow()
|
||||
.quiet();
|
||||
if (
|
||||
selection.exitCode !== 0 ||
|
||||
selection.stdout.toString().includes("cancel")
|
||||
) {
|
||||
console.log("/tmp/woah");
|
||||
process.exit(0);
|
||||
}
|
||||
const _BUF = await $`grim -c -t png -l 0 -g ${selection.stdout
|
||||
.toString()
|
||||
.trim()} -`.arrayBuffer();
|
||||
let BUF = Buffer.from(_BUF) as Buffer;
|
||||
|
||||
const FILENAME = `${SCREENSHOT_PATH}/${await getFilename(_C)}.png`;
|
||||
|
||||
// BUF = await transformImage(BUF);
|
||||
writeFileSync(FILENAME, BUF);
|
||||
console.log(FILENAME);
|
||||
});
|
||||
})();
|
||||
|
||||
(() => {
|
||||
program
|
||||
.command("fullscreen")
|
||||
.description("Takes a fullsceen screenshot")
|
||||
.action(async () => {
|
||||
const selection =
|
||||
await $`hyprctl monitors | awk '/Monitor/{monitor=$2} /focused: yes/{print monitor; exit}'`
|
||||
.nothrow()
|
||||
.text();
|
||||
|
||||
const _C = await getWMClass();
|
||||
const _BUF =
|
||||
await $`grim -c -t png -l 0 -o ${selection.trim()} -`.arrayBuffer();
|
||||
let BUF = Buffer.from(_BUF) as Buffer;
|
||||
|
||||
const FILENAME = `${SCREENSHOT_PATH}/${await getFilename(_C)}.png`;
|
||||
|
||||
// BUF = await transformImage(BUF);
|
||||
writeFileSync(FILENAME, BUF);
|
||||
console.log(FILENAME);
|
||||
});
|
||||
})();
|
||||
|
||||
program.parse(process.argv);
|
||||
@@ -6,13 +6,13 @@ setConsoleTitle("Music Test");
|
||||
|
||||
try {
|
||||
const artUrl =
|
||||
await $`playerctl -s -p cider,chromium,OCbwoy3_s_iPhone metadata mpris:artUrl`.text();
|
||||
await $`playerctl -s -p cider,chromium,Kris___s_iPhone metadata mpris:artUrl`.text();
|
||||
const title =
|
||||
await $`playerctl -s -p cider,chromium,OCbwoy3_s_iPhone metadata title`.text();
|
||||
await $`playerctl -s -p cider,chromium,Kris___s_iPhone metadata title`.text();
|
||||
const artist =
|
||||
await $`playerctl -s -p cider,chromium,OCbwoy3_s_iPhone metadata artist`.text();
|
||||
await $`playerctl -s -p cider,chromium,Kris___s_iPhone metadata artist`.text();
|
||||
const album =
|
||||
await $`playerctl -s -p cider,chromium,OCbwoy3_s_iPhone metadata album`.text();
|
||||
await $`playerctl -s -p cider,chromium,Kris___s_iPhone metadata album`.text();
|
||||
|
||||
const MT = `${artist.trim()},${album.trim()}`;
|
||||
|
||||
@@ -28,8 +28,8 @@ try {
|
||||
|
||||
$`notify-send ${title.trim()} ${artist.trim()} -i /tmp/.musictest`
|
||||
.nothrow()
|
||||
.catch((a) => {});
|
||||
.catch((a) => { });
|
||||
} catch (e_) {
|
||||
console.error(e_);
|
||||
$`notify-send "music test" "lol"`.nothrow().catch((a) => {});
|
||||
$`notify-send "music test" "lol"`.nothrow().catch((a) => { });
|
||||
}
|
||||
|
||||
@@ -11,9 +11,9 @@ setConsoleTitle("Screenshot Uploader");
|
||||
|
||||
try {
|
||||
const start = Date.now();
|
||||
$`notify-send -t 1000 "Screenshot" "Uploading.."`
|
||||
$`notify-send -a dotfiles-screenshot -t 1000 "Screenshot" "Uploading.."`
|
||||
.nothrow()
|
||||
.catch((a) => {});
|
||||
.catch((a) => { });
|
||||
configDotenv({
|
||||
path: `${homedir()}/.ocbwoy3-dotfiles-SECRET-DO-NOT-TOUCH.env`,
|
||||
});
|
||||
@@ -34,8 +34,8 @@ try {
|
||||
|
||||
execSync(`echo "${url}" | wl-copy -n`);
|
||||
execSync(
|
||||
`notify-send "Ekrānuzņēmums" "Attēls augšuplādēts e-z.host ${Date.now() - start}ms"`,
|
||||
`notify-send -a dotfiles-screenshot "Screenshot" "Uploaded to e-z.host in ${Date.now() - start}ms"`,
|
||||
);
|
||||
} catch (e_) {
|
||||
execSync(`notify-send "Error" "${`${e_}`}"`);
|
||||
execSync(`notify-send -a dotfiles-screenshot "Error" "${`${e_}`}"`);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
hyprctl notify 1 5000 0 " Loading OCbwoy3's Dotfiles"
|
||||
|
||||
# Dotfiles
|
||||
notify-send "Sveicināti Hyprland!" "some basic startup code"
|
||||
notify-send "Welcome to Hyprland!" "some basic startup code"
|
||||
notify-send "Hyprland" "Enabled debugging overlay"
|
||||
notify-send "OCbwoy3's Dotfiles" "Keyboard Layout: English"
|
||||
notify-send "Screenshot" "Saved and copied to clipboard."
|
||||
|
||||