Add files

This commit is contained in:
Username404-59 2026-06-21 22:55:22 +02:00
parent 232770418f
commit 3240615eea
Signed by: Username404-59
GPG Key ID: F3A1878B14F5F0D7
28 changed files with 2163 additions and 0 deletions

9
README.md Normal file
View File

@ -0,0 +1,9 @@
# My dotfiles for NixOs
If like me, you don't want to use flakes, I guess you can take inspiration from this ¯\\\_(ツ)_/¯
## Credits
- `tamal/default.nix` — from [Nixtamal](https://nixtamal.toast.al/)
© original authors, licensed under ISC
- `home/doggo/backgrounds/ubuntu_budgie_wallpaper1.jpg` — from [Ubuntu Budgie Wallpapers](https://github.com/UbuntuBudgie/budgie-wallpapers),
© original authors, licensed under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)

45
bootloader.nix Normal file
View File

@ -0,0 +1,45 @@
{ pkgs, ... }:
{
catppuccin.plymouth.enable = false;
# Bootloader.
boot = {
loader = {
grub.enable = false;
systemd-boot.enable = false;
limine.enable = true;
limine.secureBoot = {
enable = true;
autoEnrollKeys.enable = true;
};
efi.canTouchEfiVariables = true;
# 0 = Hide the OS choice for bootloaders.
# It would still be possible to open the bootloader list by pressing any key
# It just would not appear on screen unless a key is pressed
timeout = 5;
};
plymouth = {
enable = true;
theme = "owl";
themePackages = with pkgs; [
(adi1090x-plymouth-themes.override {
selected_themes = [ "owl" ];
})
];
};
# Enables "Silent boot"
consoleLogLevel = 3;
initrd.verbose = false;
kernelParams = [
"quiet"
"rd.udev.log_level=3"
"rd.systemd.show_status=auto"
];
};
}

144
configuration.nix Normal file
View File

@ -0,0 +1,144 @@
{ config, lib, ... }:
# This should be in /etc/nixos/ together with the rest.
# For the nixos channel
# nix-channel --add https://channels.nixos.org/nixos-unstable nixos && nix-channel --update
# To fix problems sometimes:
# sudo nixos-rebuild switch -I nixos-config=/etc/nixos/configuration.nix
let
nixtamal = import ./tamal {
bootstrap-nixpkgs = <nixpkgs>; # Apparently a little bit impure but faster. (can be removed)
};
# self = final package set, super = pre-overlay nixpkgs
# super.lib: avoids circular dependencies
# self.callPackage: local packages can see each other and other overlays
localPackagesOverlay = self: super: super.lib.packagesFromDirectoryRecursive {
callPackage = self.callPackage;
directory = ./local_packages;
};
pkgs = import nixtamal.nixpkgs {
config.allowUnfree = true;
overlays = [
# CachyOS kernels repo
(import nixtamal.nix-cachyos-kernel).overlays.default
# Nix-Citizen tools overlay (for dw-proton-bin notably)
(import nixtamal.nix-citizen).overlays.steamcompattools
# Local packages
localPackagesOverlay
];
};
in
{
nixpkgs.pkgs = pkgs; # Uses the nixtamal nixpkgs
imports =
[
./local.nix
./hardware-configuration.nix # Results of the hardware scan ("nixos-generate-config" command)
"${nixtamal.home-manager}/nixos"
"${nixtamal.catppuccin}/modules/nixos"
"${nixtamal.nix-cachyos-settings}/module.nix"
./bootloader.nix
./modules/system-packages.nix
./modules/fonts.nix
./modules/hyprland.nix
./modules/kernel.nix
./modules/networking.nix
];
home-manager.useUserPackages = true; # Puts user packages in /etc/profiles
home-manager.useGlobalPkgs = false; # Home-manager inherits the pkgs path since NixOS 20.09 (unlike what the docs seem to say), meaning it uses my pinned nixpkgs source already
nix.settings.auto-optimise-store = true;
nix.settings.experimental-features = [ "nix-command" "blake3-hashes" ]; # blake3 is for nixtamal
catppuccin = {
autoEnable = true;
enable = true;
accent = "red";
flavor = "mocha";
};
# Set your time zone.
time.timeZone = "Europe/Paris";
# Select internationalisation properties.
i18n.defaultLocale = "fr_FR.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "fr_FR.UTF-8";
LC_IDENTIFICATION = "fr_FR.UTF-8";
LC_MEASUREMENT = "fr_FR.UTF-8";
LC_MONETARY = "fr_FR.UTF-8";
LC_NAME = "fr_FR.UTF-8";
LC_NUMERIC = "fr_FR.UTF-8";
LC_PAPER = "fr_FR.UTF-8";
LC_TELEPHONE = "fr_FR.UTF-8";
LC_TIME = "fr_FR.UTF-8";
};
# Configure keymap in X11
services.xserver.xkb = {
layout = "fr";
variant = "";
};
# Configure console keymap
console.keyMap = "fr";
# Define a user account. Don't forget to set a password with passwd.
users.users."doggo" = {
isNormalUser = true;
description = "Charlie Quinet";
extraGroups = [ "networkmanager" "wheel" "networkmanager" "video" "input" "audio" "kvm" ];
};
home-manager.extraSpecialArgs = {
inherit nixtamal;
};
home-manager.users.doggo = import ./home/doggo/doggo.nix;
security.polkit.enable = true;
cachyos.settings = {
enable = true;
zram.enable = false;
debuginfod.enable = false;
};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# List services that you want to enable:
# Enable the OpenSSH daemon.
services.openssh = {
enable = true;
settings = {
PasswordAuthentication = true;
AllowUsers = null;
UseDns = true;
X11Forwarding = true;
PermitRootLogin = "prohibit-password";
};
};
# Extra security (especially for SSH)
services.fail2ban.enable = true;
# To disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "26.11"; # Did you read the comment?
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@ -0,0 +1,39 @@
{ config, pkgs, nixtamal, ... }:
let
shared_theme = "Catppuccin-GTK-Red-Dark";
in
{
catppuccin = {
autoEnable = true;
enable = true;
flavor = "mocha";
accent = "red";
cursors.enable = true;
obs.enable = true;
mangohud.enable = false;
};
home.pointerCursor.size = 24;
gtk = {
enable = true;
colorScheme = "dark";
theme = {
name = shared_theme;
package = pkgs.magnetic-catppuccin-gtk;
};
};
home.sessionVariables.GTK_THEME = shared_theme;
# Editor → Editor Settings → Text Editor → Theme
xdg.configFile."godot/text_editor_themes/Catppuccin Mocha.tet".source = nixtamal.catppuccin-godot; # Godot editor theme
# Editor → Editor Settings → Interface → Theme
# Godot interface colors:
# Base Color: #1e1e2e
# Accent: #cba6f7
# Contrast: 0.2
# Icon Saturation: 0.6
}

View File

@ -0,0 +1,3 @@
{
home.file.".config/Equicord/themes/quickCss.css".source = ./discord_css/myClearVisionV7.css;
}

View File

@ -0,0 +1,89 @@
/**
* @name Transparent Theme
* @version ClearVision v7.0.0
* @description Transparent Discord Theme Make Using ClearVision 7.0.0
* @source https://github.com/ClearVision/ClearVision-v7
* @website https://clearvision.github.io
*/
/* IMPORT CSS */
@import url("https://clearvision.github.io/ClearVision-v7/main.css");
@import url("https://clearvision.github.io/ClearVision-v7/betterdiscord.css");
/* SETTINGS */
:root {
/* ACCENT COLORS */
--main-color: #f38ba8;
--hover-color: #f38ba8;
--success-color: #a6e3a1;
--danger-color: #982929;
/* STATUS COLORS */
--online-color: #a6e3a1;
--idle-color: #fab387;
--dnd-color: #982929;
--streaming-color: #593695;
--offline-color: #7f849c;
/* APP BACKGROUND */
--background-shading-percent: 100%;
--background-image: transparent;
--background-attachment: fixed;
--background-filter: saturate(calc(var(--saturation-factor, 1) * 1));
/* USER POPOUT BACKGROUND */
--user-popout-image: var(--background-image);
--user-popout-attachment: var(--background-attachment);
--user-popout-filter: var(--background-filter);
/* USER MODAL BACKGROUND */
--user-modal-image: var(--background-image);
--user-modal-attachment: var(--background-attachment);
--user-modal-filter: var(--background-filter);
/* HOME ICON */
--home-icon: url(https://clearvision.github.io/icons/discord.svg);
/* FONTS */
--main-font: "gg sans", Whitney, "Helvetica Neue", Helvetica, Arial, sans-serif;
--code-font: Consolas, "gg mono", "Liberation Mono", Menlo, Courier, monospace;
}
/* THEME SPECIFIC SHADING */
/* LIGHT THEME */
:is(.theme-light, .theme-dark .theme-light) {
--background-shading: rgba(252, 252, 252, 0.3);
--card-shading: rgba(252, 252, 252, 0.3);
--popout-shading: rgba(252, 252, 252, 0.7);
--modal-shading: rgba(252, 252, 252, 0.5);
--input-shading: rgba(0, 0, 0, 0.3);
--normal-text: #36363c;
--muted-text: #75757e;
}
/* ASH THEME */
:is(.theme-dark, .theme-light .theme-dark) {
--background-shading: rgba(0, 0, 0, 0.4);
--card-shading: rgba(0, 0, 0, 0.2);
--popout-shading: rgba(0, 0, 0, 0.6);
--modal-shading: rgba(0, 0, 0, 0.4);
--input-shading: rgba(255, 255, 255, 0.05);
--normal-text: #d8d8db;
--muted-text: #aeaeb4;
}
/* DARK THEME */
:is(.theme-darker, .theme-light .theme-darker) {
--background-shading: rgba(0, 0, 0, 0.6);
--card-shading: rgba(0, 0, 0, 0.3);
--popout-shading: rgba(0, 0, 0, 0.7);
--modal-shading: rgba(0, 0, 0, 0.5);
--input-shading: rgba(255, 255, 255, 0.05);
--normal-text: #fbfbfb;
--muted-text: #94949c;
}
/* ONYX THEME */
:is(.theme-midnight, .theme-light .theme-midnight) {
--background-shading: rgba(0, 0, 0, 0.8);
--card-shading: rgba(0, 0, 0, 0.4);
--popout-shading: rgba(0, 0, 0, 0.8);
--modal-shading: rgba(0, 0, 0, 0.6);
--input-shading: rgba(255, 255, 255, 0.05);
--normal-text: #dcdcde;
--muted-text: #86868e;
}
/* ADD ADDITIONAL CSS BELOW HERE */

133
home/doggo/doggo.nix Normal file
View File

@ -0,0 +1,133 @@
{ config, pkgs, nixtamal, ... }:
{
home.username = "doggo";
home.homeDirectory = "/home/doggo";
xdg.userDirs = {
enable = true;
createDirectories = true;
desktop = "${config.home.homeDirectory}/Bureau";
documents = "${config.home.homeDirectory}/Documents";
download = "${config.home.homeDirectory}/Téléchargements";
music = "${config.home.homeDirectory}/Musique";
pictures = "${config.home.homeDirectory}/Images";
videos = "${config.home.homeDirectory}/Vidéos";
templates = "${config.home.homeDirectory}/Modèles";
publicShare = "${config.home.homeDirectory}/Public";
};
nixpkgs.config.allowUnfree = true;
nixpkgs.config.android_sdk.accept_license = true;
nixpkgs.overlays = [
(import nixtamal.dolphin-overlay)
(import nixtamal.nix-citizen).overlays.default
];
home.packages = with pkgs; [
kitty
kdePackages.kate
(discord-canary.override {
withOpenASAR = true;
withEquicord = true;
})
kdePackages.qtsvg # Needed for icons in KDE Dolphin
kdePackages.dolphin
kdePackages.ark zip unzip
kdePackages.kio # For network shares
kdePackages.kio-fuse
kdePackages.kio-extras
kdePackages.gwenview
kdePackages.filelight
mission-center
(pkgs.wrapOBS {
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
obs-vaapi
obs-gstreamer
obs-vkcapture
];
})
(ani-cli.overrideAttrs (old: { version = "unstable"; src = nixtamal.ani-cli; }))
anime4k
spotify
jetbrains.idea
jetbrains.clion
#androidStudioPackages.canary.full
androidStudioForPlatformPackages.canary # Android studio but better for AOSP dev
lmms-full
gnome-feeds
vulkan-tools mesa-demos # vkcube & glxgears
# Gaming packages:
(prismlauncher.override {
jdks = [
graalvmPackages.graalvm-ce
pkgs.jdk25
pkgs.jdk21
];
})
rsi-launcher-git
osu-lazer-bin
godot
wowup-cf
];
imports = [
"${nixtamal.catppuccin}/modules/home-manager"
./catppuccin-config.nix
./hyprland-config.nix
./ironbar-config.nix
./rofi-config.nix
./kitty-config.nix
./discord-config.nix
./firefox-config.nix
./mpv-config.nix
];
qt = {
enable = true;
platformTheme.name = "qtct";
style.name = "kvantum";
};
programs.bash.enable = true; # Needed for session variables
home.sessionVariables = {
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
PROTON_USE_NTSYNC = "1";
PROTON_ENABLE_WAYLAND = "1";
};
programs = {
mangohud = {
enable = true;
settings = {
gpu_stats = true;
gpu_temp = true;
gpu_junction_temp = true;
gpu_core_clock = true;
gpu_mem_temp = true;
gpu_mem_clock = true;
gpu_power = true;
gpu_fan = true;
gpu_voltage = true;
cpu_stats = true;
cpu_mhz = true;
vram = true;
fps = true;
frametime = true;
gpu_name = true;
vulkan_driver = true;
wine = true;
winesync = true;
frame_timing = true;
text_outline = true;
};
};
};
home.stateVersion = "26.11";
}

View File

@ -0,0 +1,53 @@
{ options, config, pkgs, lib, ... }:
let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in
{
programs.firefox = {
configPath = "${config.home.homeDirectory}/.mozilla/firefox";
package = pkgs.firefox-bin;
enable = true;
languagePacks = [ "fr-fr" ];
profiles = {
default = {
id = 0;
name = "doggo";
isDefault = true;
extensions.force = true;
userChrome = (builtins.readFile ./firefox_css/userChrome.css);
userContent = (builtins.readFile ./firefox_css/userContent.css);
};
};
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
DisablePocket = true;
AppAutoUpdate = false;
BackgroundAppUpdate = false;
HardwareAcceleration = true;
Preferences = {
"extensions.pocket.enabled" = lock-false;
"dom.security.https_only_mode" = lock-true;
"toolkit.legacyUserProfileCustomizations.stylesheets" = lock-true;
"browser.tabs.allow_transparent_browser" = lock-true;
"widget.use-xdg-desktop-portal.file-picker" = 1;
"devtools.chrome.enabled" = true;
"browser.newtabpage.activity-stream.widgets.enabled" = lock-false;
"gfx.webrender.all" = lock-true;
"layers.gpu-process.force-enabled" = lock-true;
};
};
};
}

View File

@ -0,0 +1,70 @@
:root {
--bg: #00000066;
--tabpanel-background-color: #00000000 !important;
--in-content-page-background: #00000000 !important;
--in-content-box-background: #00000088 !important;
--tabs-navbar-separator-color: rgba(0, 0, 0, 0) !important;
--toolbar-field-focus-background-color: transparent !important;
}
tab.tabbrowser-tab[selected="true"] stack.tab-stack vbox.tab-background {
background: #FFFFFF28 !important;
}
toolbar {
background: transparent !important;
}
/* window transparencies */
#main-window > body { /* remove '> body' for firefox 140 */
background: var(--bg) !important;
}
/* navbar / tabbar / titlebar */
#nav-bar {
background: transparent !important;
}
#navigator-toolbox {
background: transparent !important;
}
hbox#urlbar[open="true"] hbox#urlbar-background {
background: #0000000e !important;
}
#browser:not(.browser-toolbox-background) {
background-color: transparent !important;
}
#navigator-toolbox > toolbar:not(#toolbar-menubar):not(#TabsToolbar):not(:-moz-lwtheme) {
margin-bottom: -1px !important;
}
/* Black line */
#navigator-toolbox {
border-bottom: none !important;
}
#urlbar-background {
background: #FFFFFF28 !important;
}
#urlbar[open] {
background-color: transparent !important;
}
#searchbar:focus-within{
background: transparent !important;
}
/* Removes the ugly shit in top right corner */
.titlebar-buttonbox-container {
display:none
}
#alltabs-button {
display: none !important;
}
.browserContainer {background: transparent !important;}

View File

@ -0,0 +1 @@
@-moz-document url(about:newtab), url("about:home") { html{ --newtab-background-color: transparent !important; --newtab-background-color-secondary: transparent !important; } }

View File

@ -0,0 +1,290 @@
{ config, pkgs, lib, isLaptop, ... }:
let
menu_name = "rofi";
menu = "${menu_name} -show drun -run-command 'app2unit -- {cmd}'";
uwsm = "uwsm app --";
terminal = "kitty";
fileManager = "dolphin";
mpv_options = "volume=0";
mainMod = "SUPER";
mocha = {
peach = "rgb(fab387)";
};
in
{
wayland.windowManager.hyprland = {
enable = true;
systemd = {
enable = false; # Conflicts with UWSM
};
settings = {
monitor = if !isLaptop then [
{ output = "DP-3"; mode = "2560x1440@144"; position = "0x0"; scale = 1; vrr = 2; }
{ output = "HDMI-A-4"; mode = "1920x1080@77"; position = "-1920x128"; scale = 1; }
] else [
{
output = "eDP-1"; mode = "2880x1800@120"; position = "0x0"; scale = 1.5;
cm = "hdredid"; bitdepth = 10;
min_luminance = 0.0; max_luminance = 2000;
sdr_min_luminance = 0.005; sdr_max_luminance = 350; # 106?
sdrsaturation = 1.0; # 1.175? 0.975?
#sdrbrightness = 1.1; # 1.2625? 0.975?
}
];
# AUTOSTART #
on = {
_args = [
"hyprland.start"
(lib.generators.mkLuaInline ''
function()
${if isLaptop then "-- " else ""}hl.exec_cmd("${uwsm} murale '/disk2/MemoryRebootHatsune&Shrek.avi' -o HDMI-A-4 --mpv-options '${mpv_options}'")
hl.exec_cmd("${uwsm} swaybg ${
if isLaptop then "-c 000000 -o '*'" else "-i '${./backgrounds/ubuntu_budgie_wallpaper1.jpg}' -o DP-3"
}")
hl.exec_cmd("${uwsm} ironbar")
hl.exec_cmd("${uwsm} wl-paste --type text --watch cliphist store")
hl.exec_cmd("${uwsm} wl-paste --type image --watch cliphist store")
hl.exec_cmd("${uwsm} hyprsunset")
hl.exec_cmd("bash -c 'sleep 1.5s && { [ \"$(date +%H)\" -ge 22 ] || [ \"$(date +%H)\" -lt 6 ]; } && hyprctl hyprsunset temperature 3333'")
hl.exec_cmd("systemctl --user start hyprpolkitagent")
end
'')
];
};
/*
# ENVIRONMENT VARIABLES #
env = [
[ "XCURSOR_SIZE" "24" ]
[ "HYPRCURSOR_SIZE "24" ]
[ "AQ_DRM_DEVICES" "/dev/dri/card1" ]
[ "QT_QPA_PLATFORM "wayland" ]
[ "QT_AUTO_SCREEN_SCALE_FACTOR "1" ]
];
*/
# LOOK & FEEL #
config = {
general = {
gaps_in = 5;
gaps_out = 20;
border_size = 3;
col.active_border = {
colors = [
"rgba(33ccffee)"
mocha.peach
"rgba(00ff99ee)"
];
angle = 45;
};
col.inactive_border = { colors = [ "rgba(171727b0)" ]; };
resize_on_border = false;
allow_tearing = true;
layout = "dwindle";
};
render = {
direct_scanout = 1;
new_render_scheduling = true;
};
cursor = {
no_hardware_cursors = 2;
no_break_fs_vrr = 2;
min_refresh_rate = 48;
};
decoration = {
rounding = 10;
rounding_power = 2;
active_opacity = 1.0;
inactive_opacity = 1.0;
shadow = {
enabled = true;
range = 4;
render_power = 3;
color = "rgba(1a1a1aee)";
};
blur = {
enabled = true;
size = 5;
passes = 4;
new_optimizations = true;
vibrancy = 0.75;
vibrancy_darkness = 1.0;
};
};
animations = {
enabled = true;
workspace_wraparound = true;
};
dwindle = {
preserve_split = true;
};
master = {
new_status = "master";
};
# INPUT #
input = {
kb_layout = "fr";
follow_mouse = 1;
focus_on_close = 1;
sensitivity = 0;
touchpad = {
natural_scroll = false;
};
};
misc = {
force_default_wallpaper = 1;
disable_hyprland_logo = false;
};
};
curve = [
{ _args = ["easeOutQuint" { type = "bezier"; points = [ [0.23 1] [0.32 1] ]; } ]; }
{ _args = ["easeInOutCubic" { type = "bezier"; points = [ [0.65 0.05] [0.36 1] ]; } ]; }
{ _args = ["linear" { type = "bezier"; points = [ [0 0] [1 1] ]; } ]; }
{ _args = ["almostLinear" { type = "bezier"; points = [ [0.5 0.5] [0.75 1] ]; } ]; }
{ _args = ["quick" { type = "bezier"; points = [ [0.15 0] [0.1 1] ]; } ]; }
{ _args = ["easy" { type = "spring"; mass = 1; stiffness = 71.2633; dampening = 15.8273644; } ]; }
];
animation = [
{ leaf = "global"; enabled = true; speed = 10; bezier = "default"; }
{ leaf = "border"; enabled = true; speed = 5.39; bezier = "easeOutQuint"; }
{ leaf = "windows"; enabled = true; speed = 4.79; spring = "easy"; }
{ leaf = "windowsIn"; enabled = true; speed = 4.1; spring = "easy"; style = "popin 87%"; }
{ leaf = "windowsOut"; enabled = true; speed = 1.49; bezier = "linear"; style = "popin 87%"; }
{ leaf = "fadeIn"; enabled = true; speed = 1.73; bezier = "almostLinear"; }
{ leaf = "fadeOut"; enabled = true; speed = 1.46; bezier = "almostLinear"; }
{ leaf = "fade"; enabled = true; speed = 3.03; bezier = "quick"; }
{ leaf = "layers"; enabled = true; speed = 3.81; bezier = "easeOutQuint"; }
{ leaf = "layersIn"; enabled = true; speed = 4; bezier = "easeOutQuint"; style = "fade"; }
{ leaf = "layersOut"; enabled = true; speed = 1.5; bezier = "linear"; style = "fade"; }
{ leaf = "fadeLayersIn"; enabled = true; speed = 1.79; bezier = "almostLinear"; }
{ leaf = "fadeLayersOut"; enabled = true; speed = 1.39; bezier = "almostLinear"; }
{ leaf = "workspaces"; enabled = true; speed = 1.94; bezier = "almostLinear"; style = "fade"; }
{ leaf = "workspacesIn"; enabled = true; speed = 1.21; bezier = "almostLinear"; style = "fade"; }
{ leaf = "workspacesOut"; enabled = true; speed = 1.94; bezier = "almostLinear"; style = "fade"; }
# Animated border
{ leaf = "borderangle"; enabled = true; speed= 20.0; bezier = "linear"; style = "loop"; }
];
gesture = {
fingers = 2;
direction = "right";
action = "workspace";
};
device = {
name = "epic-mouse-v1";
sensitivity = -0.5;
};
# KEYBINDINGS #
bind = [
{ _args = [ "${mainMod} + A" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${terminal}\")") ]; }
{ _args = [ "${mainMod} + C" (lib.generators.mkLuaInline "hl.dsp.window.close()") { locked = true; } ]; }
{ _args = [ "${mainMod} + E" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${fileManager}\")") ]; }
{ _args = [ "${mainMod} + V" (lib.generators.mkLuaInline "hl.dsp.window.float({ action = \"toggle\"})") ]; }
{ _args = [ "${mainMod} + P" (lib.generators.mkLuaInline "hl.dsp.window.pseudo()") ]; }
{ _args = [ "${mainMod} + J" (lib.generators.mkLuaInline "hl.dsp.layout(\"togglesplit\")") ]; }
{ _args = [ "${mainMod} + F" (lib.generators.mkLuaInline "hl.dsp.window.fullscreen({ mode = 0, action = \"toggle\" })") ]; }
{ _args = [ "${mainMod} + left" (lib.generators.mkLuaInline "hl.dsp.focus({ direction = \"left\" })") ]; }
{ _args = [ "${mainMod} + right" (lib.generators.mkLuaInline "hl.dsp.focus({ direction = \"right\" })") ]; }
{ _args = [ "${mainMod} + up" (lib.generators.mkLuaInline "hl.dsp.focus({ direction = \"up\" })") ]; }
{ _args = [ "${mainMod} + down" (lib.generators.mkLuaInline "hl.dsp.focus({ direction = \"down\" })") ]; }
{ _args = [ "${mainMod} + S" (lib.generators.mkLuaInline "hl.dsp.workspace.toggle_special(\"magic\")") ]; }
{ _args = [ "${mainMod} + SHIFT + S" (lib.generators.mkLuaInline "hl.dsp.window.move({ workspace = \"special:magic\" })") ]; }
{ _args = [ "${mainMod} + mouse_down" (lib.generators.mkLuaInline "hl.dsp.focus({ workspace = \"e+1\" })") ]; }
{ _args = [ "${mainMod} + mouse_up" (lib.generators.mkLuaInline "hl.dsp.focus({ workspace = \"e-1\" })") ]; }
{ _args = [ "${mainMod} + SUPER_L" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"pkill ${menu_name} || ${menu}\")") ]; }
{ _args = [ "${mainMod} + W" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"cliphist list | rofi -dmenu | cliphist decode | wl-copy\")") ]; }
{ _args = [ "CTRL + ALT + A" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"pkill ${menu_name} || ${uwsm} ani-cli --${menu_name}\")") { long_press = true; } ]; }
{ _args = [ "${mainMod} + mouse:272" (lib.generators.mkLuaInline "hl.dsp.window.drag()") { mouse = true; } ]; }
{ _args = [ "${mainMod} + mouse:273" (lib.generators.mkLuaInline "hl.dsp.window.resize()") { mouse = true; } ]; }
{ _args = [ "XF86AudioRaiseVolume" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+\")") { locked = true; repeating = true; } ]; }
{ _args = [ "XF86AudioLowerVolume" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-\")") { locked = true; repeating = true; } ]; }
{ _args = [ "XF86AudioMute" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle\")") { locked = true; repeating = true; } ]; }
{ _args = [ "XF86AudioMicMute" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle\")") { locked = true; repeating = true; } ]; }
{ _args = [ "XF86MonBrightnessUp" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"hyprctl hyprsunset gamma +5\")") { locked = true; repeating = true; } ]; }
{ _args = [ "XF86MonBrightnessDown" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"hyprctl hyprsunset gamma -5\")") { locked = true; repeating = true; } ]; }
{ _args = [ "XF86AudioNext" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"playerctl next\")") { locked = true; } ]; }
{ _args = [ "XF86AudioPause" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"playerctl play-pause\")") { locked = true; } ]; }
{ _args = [ "XF86AudioPlay" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"playerctl play-pause\")") { locked = true; } ]; }
{ _args = [ "XF86AudioPrev" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"playerctl previous\")") { locked = true; } ]; }
{ _args = [ "${mainMod} + PRINT" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"hyprshot -m window\")") ]; }
{ _args = [ "PRINT" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"hyprshot -m output\")") { locked = true; } ]; }
{ _args = [ "SHIFT + PRINT" (lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"hyprshot -m region\")") ]; }
/*
{ _args = ["${mainMod} + 1" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + 2" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + 3" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + 4" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + 5" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + 6" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + 7" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + 8" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + 9" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + 0" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + SHIFT + 1" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + SHIFT + 2" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + SHIFT + 3" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + SHIFT + 4" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + SHIFT + 5" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + SHIFT + 6" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + SHIFT + 7" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + SHIFT + 8" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + SHIFT + 9" (lib.generators.mkLuaInline ) ]; }
{ _args = ["${mainMod} + SHIFT + 0" (lib.generators.mkLuaInline ) ]; }
*/
]; /* ++ (
builtins.concatLists (builtins.genList (i:
in [
{ _args = ["${mainMod} + ${toString i}" (lib.generators.mkLuaInline ) "hl.dsp.focus({ workspace = ${toString i} })"]; }
{ _args = ["${mainMod} + SHIFT + ${toString i}" (lib.generators.mkLuaInline ) "hl.dsp.window.move({ workspace = ${toString i} })"]; }
]
)
9)
); */
# WINDOW RULES #
window_rule = [
{ name = "suppress-maximize-events"; match = { class = ".*"; }; }
{
name = "fix-xwayland-drags";
match = {
class = "^$";
title = "^$";
xwayland = true;
float = true;
fullscreen = false;
pin = false;
};
}
];
};
};
}

View File

@ -0,0 +1,517 @@
{ isLaptop, ... }:
let
laptop_power =
''
{
type = "upower"
format = "{percentage}%"
}
'';
in
{
home.file.".config/ironbar/config.corn".text = ''
let {
$uwsm = "app2unit -- {app_name}"
} in {
monitors.${if isLaptop then "eDP-1" else "DP-3"} = {
position = "bottom"
height = 32
start = [
{
type = "menu"
label_icon = "distributor-logo-nixos"
label = ""
label_icon_size = 44
width = 512
launch_command = $uwsm
}
{
type = "launcher"
favorites = [ "firefox" "Dolphin" "kitty" "prismlauncher" "Sober" ]
show_names = false
show_icons = true
reversed = false
launch_command = $uwsm
}
{
type = "focused"
show_icon = false
show_title = true
icon_size = 24
truncate.mode = "end"
truncate.max_length = 25
}
]
center = [
{ type = "music" }
{
type = "clock" justify = "left"
format = " %H:%M:%S\n%d/%m/%Y"
format_popup = "Calendrier"
}
{
type = "sys_info"
interval.cpu = 1
format = [ " {cpu_percent@mean}% {cpu_frequency@max#M} MHz " ]
}
{ type = "volume" }
]
end = [
${if isLaptop then laptop_power else ""}
//{ type = "network_manager" icon_size = 32 }
{ type = "tray" icon_size = 32 }
]
}
icon_theme = "Papirus-Dark"
}
'';
home.file.".config/ironbar/style.css".text = ''
.container {
font-family: MesloLGSDZ Nerd Font;
/* font-family: CaskaydiaCove Nerd Font; */
/* font-weight: bold; */
font-size: 18px;
}
.cava {
padding: 0px 20px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 8px;
border-radius: 10px;
color: #7dcfff;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.background {
background-color: rgba(0, 0, 0, 0);
}
.wlogout {
padding: 0px 15px 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 8px;
border-radius: 10px;
color: #ff757f;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.wlogout:hover {
color: #7dcfff;
background: #1a1b26;
border-radius: 10px;
min-width: 30px;
transition: all 0.3s ease-in-out;
opacity: 0.8;
}
.airpod {
padding: 0px 15px 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 8px;
border-radius: 10px;
color: #ff757f;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.airpod:hover {
color: #7dcfff;
background: #1a1b26;
border-radius: 10px;
min-width: 30px;
transition: all 0.3s ease-in-out;
opacity: 0.8;
}
/* cpu */
.sysinfo .item:nth-child(1) {
padding: 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 0px;
border-radius: 10px;
color: #ff9e64;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
/* memory */
.sysinfo .item:nth-child(2) {
padding: 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 0px;
border-radius: 10px;
color: #7dcfff;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
/* temp */
.sysinfo .item:nth-child(3) {
padding: 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 0px;
border-radius: 10px;
color: #bb9af7;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
/* disk */
.sysinfo .item:nth-child(4) {
padding: 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 10px;
border-radius: 10px;
color: #9ece6a;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.pacman {
padding: 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 10px;
border-radius: 10px;
color: #c3e88d;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.zellij {
padding: 0px 7px 0px 9px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 8px;
border-radius: 10px;
color: #c3e88d;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.zellij:hover {
color: #7dcfff;
background: #1a1b26;
border-radius: 10px;
min-width: 30px;
transition: all 0.3s ease-in-out;
opacity: 0.8;
}
.volume {
padding: 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 10px;
border-radius: 10px;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
color: #9abdf5;
background: #1a1b26;
opacity: 0.8;
}
.popup-volume {
padding: 20px 20px 20px 20px;
border-radius: 5px;
color: #c0caf5;
/* background: #1a1b26; */
background-color: rgba(26, 27, 38, 0.8);
border: 2px solid #bb9af7;
}
.weather,
.kbdd {
padding: 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 8px;
border-radius: 10px;
color: #ff9e64;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.clock {
font-family: CaskaydiaCove Nerd Font;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 10px;
margin-left: 10px;
padding-right: 10px;
padding-left: 10px;
padding-bottom: 3px;
border-radius: 10px;
color: #7dcfff;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.clock_date {
color: rgb(94, 129, 172);
}
.popup-clock {
font-weight: bolder;
background-color: rgba(26, 27, 38, 0.8);
border-radius: 10px;
border: 2px solid #bb9af7;
}
.popup-clock .calendar-clock {
color: #c0caf5;
/* font-size: 2.5em; */
padding-bottom: 0.1em;
}
.popup-clock .calendar {
background-color: rgba(26, 27, 38, 0.8);
color: #c0caf5;
border-radius: 10px;
}
.popup-clock .calendar .header {
padding-top: 1em;
border-top: 1px solid #424242;
font-size: 1.5em;
}
.popup-clock .calendar:selected {
background-color: #3d59a1;
}
.launcher .item {
margin-top: 5px;
margin-bottom: 15px;
margin-right: 8px;
margin-left: 8px;
}
.focused {
padding: 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 8px;
margin-left: 8px;
border-radius: 10px;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
color: #c3e88d;
background: #1a1b26;
opacity: 0.8;
/* top right bottom left */
}
.clipboard {
padding: 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 8px;
border-radius: 10px;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
color: #9abdf5;
background: #1a1b26;
opacity: 0.8;
}
.popup-clipboard {
margin-left: 5px;
padding: 10px 10px 10px 10px;
border-radius: 5px;
color: #c0caf5;
background: #1a1b26;
background-color: rgba(26, 27, 38, 0.8);
border: 2px solid #bb9af7;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.work1,
.work2,
.work3,
.work4,
.work5,
.work6,
.work7,
.work8,
.work9 {
padding: 0px 5px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 3px;
border-radius: 10px;
color: #ff9e64;
opacity: 0.8;
background: #1a1b26;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.work2 {
padding: 0px 10px 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 3px;
border-radius: 10px;
color: #c3e88d;
opacity: 0.8;
background: #1a1b26;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.work1:hover,
.work2:hover,
.work3:hover,
.work4:hover,
.work5:hover,
.work6:hover,
.work7:hover,
.work8:hover,
.work9:hover {
color: #c3e88d;
background: #1a1b26;
border-radius: 10px;
min-width: 40px;
transition: all 0.3s ease-in-out;
opacity: 0.8;
}
.script {
padding: 0px 10px 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 8px;
margin-left: 8px;
border-radius: 10px;
color: #9abdf5;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.script:hover {
color: #7dcfff;
background: #1a1b26;
border-radius: 10px;
min-width: 30px;
transition: all 0.3s ease-in-out;
opacity: 0.8;
}
.zscroll {
border-radius: 10px;
padding: 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 7px;
margin-left: 10px;
color: #bb9af7;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.music {
border-radius: 10px;
padding: 0px 10px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 7px;
margin-left: 10px;
color: #bb9af7;
background: #1a1b26;
opacity: 0.8;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.popup-music {
margin-left: 5px;
padding: 10px 10px 10px 10px;
border-radius: 5px;
color: #c0caf5;
background: #1a1b26;
background-color: rgba(26, 27, 38, 0.8);
border: 2px solid #bb9af7;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.popup-music.volume {
}
.popup-music .volume .slider {
padding: 2px 2px 2px 2px;
margin-top: 5px;
margin-bottom: 5px;
margin-right: 5px;
margin-left: 5px;
}
.popup-music .volume .icon {
}
tooltip.background {
background-color: rgba(00, 00, 00, 0.5);
font-size: 18px;
border-radius: 10px;
color: #fdfdfd;
}
tooltip * {
padding: 4px;
background-color: transparent;
color: white;
}
.host tooltip {
background-color: rgba(255, 00, 00, 0.5);
}
.workspaces {
background: #1a1b26;
padding: 5px 5px;
margin-top: 5px;
margin-bottom: 15px;
margin-right: 10px;
margin-left: 10px;
border-radius: 10px;
font-weight: bold;
font-style: normal;
opacity: 0.8;
font-size: 16px;
color: #ffffff;
box-shadow: rgba(0, 0, 0, 0.288) 2px 2px 5px 2px;
}
.workspaces button {
padding: 1px 1px;
margin: 0px 1px;
border-radius: 19px;
border: 0px;
color: #c0caf5;
background-color: #3b4261;
transition: all 0.3s ease-in-out;
opacity: 0.7;
}
.workspaces .item.focused {
color: #ffffff;
background: #545c7e;
border-radius: 19px;
min-width: 50px;
transition: all 0.3s ease-in-out;
opacity: 1;
}
.workspaces button:hover {
color: #ffffff;
background: #545c7e;
border-radius: 15px;
min-width: 50px;
opacity: 0.7;
}
'';
}

View File

@ -0,0 +1,29 @@
{
home.file.".config/kitty/kitty.conf".text = ''
font_family Fira Code Regular
bold_font auto
italic_font auto
bold_italic_font auto
cursor_shape beam
disable_ligatures cursor
font_size 12
scrollback_lines 4096
enable_audio_bell no
copy_on_select clipboard
strip_trailing_spaces smart
sync_to_monitor no
background_opacity 0.75
initial_window_width 576
initial_window_height 512
remember_window_size no
window_padding_width 6
placement_strategy center
hide_window_decorations yes
shell_integration enabled
'';
}

48
home/doggo/mpv-config.nix Normal file
View File

@ -0,0 +1,48 @@
{ config, pkgs, nixtamal, ... }:
let
shaders = "${pkgs.anime4k}";
in
{
programs.mpv = {
enable = true;
config = {
glsl-shaders = "${shaders}/Anime4K_Clamp_Highlights.glsl:${shaders}/Anime4K_Restore_CNN_VL.glsl:${shaders}/Anime4K_Upscale_CNN_x2_VL.glsl:${shaders}/Anime4K_AutoDownscalePre_x2.glsl:${shaders}/Anime4K_AutoDownscalePre_x4.glsl:${shaders}/Anime4K_Upscale_CNN_x2_M.glsl";
vo = "gpu-next";
gpu-context = "waylandvk";
gpu-api = "vulkan";
hwdec = "vulkan";
deband = "yes";
# Stuff needed for ModernZ
watch-later-options-remove = "sub-pos";
};
package = (
pkgs.mpv.override {
mpv-unwrapped = (pkgs.mpv-unwrapped.override {
ffmpeg = pkgs.ffmpeg-full;
}).overrideAttrs (oldAttrs: {
src = nixtamal.mpv;
});
scripts = with pkgs.mpvScripts; [
modernz
];
}
);
};
xdg.configFile."mpv/input.conf".text = ''
# Optimized shaders for higher-end GPU:
CTRL+& no-osd change-list glsl-shaders set "${shaders}/Anime4K_Clamp_Highlights.glsl:${shaders}/Anime4K_Restore_CNN_VL.glsl:${shaders}/Anime4K_Upscale_CNN_x2_VL.glsl:${shaders}/Anime4K_AutoDownscalePre_x2.glsl:${shaders}/Anime4K_AutoDownscalePre_x4.glsl:${shaders}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)"
CTRL+é no-osd change-list glsl-shaders set "${shaders}/Anime4K_Clamp_Highlights.glsl:${shaders}/Anime4K_Restore_CNN_Soft_VL.glsl:${shaders}/Anime4K_Upscale_CNN_x2_VL.glsl:${shaders}/Anime4K_AutoDownscalePre_x2.glsl:${shaders}/Anime4K_AutoDownscalePre_x4.glsl:${shaders}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)"
CTRL+" no-osd change-list glsl-shaders set "${shaders}/Anime4K_Clamp_Highlights.glsl:${shaders}/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:${shaders}/Anime4K_AutoDownscalePre_x2.glsl:${shaders}/Anime4K_AutoDownscalePre_x4.glsl:${shaders}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)"
CTRL+' no-osd change-list glsl-shaders set "${shaders}/Anime4K_Clamp_Highlights.glsl:${shaders}/Anime4K_Restore_CNN_VL.glsl:${shaders}/Anime4K_Upscale_CNN_x2_VL.glsl:${shaders}/Anime4K_Restore_CNN_M.glsl:${shaders}/Anime4K_AutoDownscalePre_x2.glsl:${shaders}/Anime4K_AutoDownscalePre_x4.glsl:${shaders}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)"
CTRL+( no-osd change-list glsl-shaders set "${shaders}/Anime4K_Clamp_Highlights.glsl:${shaders}/Anime4K_Restore_CNN_Soft_VL.glsl:${shaders}/Anime4K_Upscale_CNN_x2_VL.glsl:${shaders}/Anime4K_AutoDownscalePre_x2.glsl:${shaders}/Anime4K_AutoDownscalePre_x4.glsl:${shaders}/Anime4K_Restore_CNN_Soft_M.glsl:${shaders}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)"
CTRL+- no-osd change-list glsl-shaders set "${shaders}/Anime4K_Clamp_Highlights.glsl:${shaders}/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:${shaders}/Anime4K_AutoDownscalePre_x2.glsl:${shaders}/Anime4K_AutoDownscalePre_x4.glsl:${shaders}/Anime4K_Restore_CNN_M.glsl:${shaders}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)"
CTRL+à no-osd change-list glsl-shaders clr ""; vf clr ""; show-text "GLSL shaders / vapoursynth cleared"
# CTRL+k no-osd change-list vf set "vapoursynth=${config.xdg.dataHome}/mpv_x2.py"; show-text "Vapoursynth: x2 FPS (720p downscale)"
'';
}

View File

@ -0,0 +1,23 @@
{
home.file.".config/rofi/config.rasi".text = ''
@import "catppuccin-mocha"
@import "catppuccin-default"
configuration {
modes: "run,ssh,drun";
font: "mono 12";
show-icons: true;
icon-theme: "Papirus Dark";
location: 0;
yoffset: 0;
xoffset: 0;
fixed-num-lines: true;
ml-row-down: "ScrollDown";
me-select-entry: "MousePrimary";
me-accept-entry: "MouseDPrimary";
me-accept-custom: "Control+MouseDPrimary";
}
'';
}

61
local.nix Normal file
View File

@ -0,0 +1,61 @@
{ config, lib, pkgs, ...}:
let
isLaptop = false;
in
{
_module.args.isLaptop = isLaptop;
home-manager.extraSpecialArgs = { inherit isLaptop; };
boot.extraModulePackages = with config.boot.kernelPackages; [
# Common modules
] ++ (if !isLaptop then [
# Desktop modules
nct6687d
] else [
# Laptop modules
]);
boot.kernelModules = [
# Common modules
] ++ (if !isLaptop then [
# Desktop modules
"nct6687" # d disappears in actual module name
] else [
# Laptop modules
]);
# CRU screen overclocking
hardware.firmware = lib.mkIf (!isLaptop) [
(pkgs.runCommandLocal "PHL-edid-77hz" {} ''
mkdir -p $out/lib/firmware/edid
cp ${/disk2/Bunker/CRU/PHL_243V5_OC_77MHZ.bin} $out/lib/firmware/edid/PHL_243V5_OC_77MHZ.bin
'')
];
boot.kernelParams = lib.mkIf (!isLaptop) [
"drm.edid_firmware=HDMI-A-4:edid/PHL_243V5_OC_77MHZ.bin"
];
programs.coolercontrol.enable = !isLaptop;
boot.loader.limine.extraEntries = lib.mkIf (!isLaptop) ''
/Windows
protocol: efi
path: uuid(F19E62C8-6ED1-4482-976A-6CCF5F561FDD):/EFI/Microsoft/Boot/bootmgfw.efi
'';
powerManagement.cpuFreqGovernor = if !isLaptop then "performance" else "schedutil";
services.auto-cpufreq = {
enable = isLaptop;
settings = {
charger.turbo = "auto";
battery.turbo = "never";
};
};
fileSystems."/".options = [ "noatime" ];
networking.hostName = if !isLaptop then "lizard" else "lizard-portable";
}

View File

@ -0,0 +1,47 @@
{
lib,
fetchFromGitHub,
rustPlatform,
pkg-config,
mpv,
wayland,
libxkbcommon,
libglvnd,
}:
rustPlatform.buildRustPackage {
pname = "murale";
version = "1.0.0";
src = fetchFromGitHub {
owner = "brenton-keller";
repo = "murale";
rev = "8461aace00fbda96fbf3e988b314e9dbef1e1a4d"; # There are no tags yet as of writing
hash = "sha256-UUHIboFU4aES1zQ2RwuG4dIFSiVpyhy3+WVgbbCEteo=";
};
cargoHash = "sha256-+jlkV+umcbHpPYbwdx0qrzuMkxA7RkSQ2BoYy0xEkck=";
strictDeps = true;
__structuredAttrs = true;
nativeBuildInputs = [
pkg-config
];
buildInputs = [
mpv
wayland
libxkbcommon
libglvnd
];
meta = {
description = "Lean, memory-safe video wallpaper player for Wayland compositors ";
homepage = "https://github.com/brenton-keller/murale";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
mainProgram = "murale";
maintainers = with lib.maintainers; [ Username404-59 ];
};
}

14
modules/fonts.nix Normal file
View File

@ -0,0 +1,14 @@
{ pkgs, ... }:
{
fonts.packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
noto-fonts-color-emoji
liberation_ttf
fira-code
fira-code-symbols
nerd-fonts.jetbrains-mono
font-awesome
];
}

46
modules/hyprland.nix Normal file
View File

@ -0,0 +1,46 @@
{ pkgs, ... }:
{
programs.hyprland = {
enable = true;
withUWSM = true;
xwayland.enable = true;
};
services.displayManager.sddm.wayland.enable = true;
services.displayManager.sddm.enable = true;
qt.enable = true;
environment.systemPackages = with pkgs; [
uwsm
app2unit
rofi
murale
awww
cliphist
wl-clipboard
hyprshot
nwg-look
hyprsunset
hyprpolkitagent
pwvucontrol
playerctl
ironbar
swaybg
libsForQt5.qtstyleplugin-kvantum
libsForQt5.qt5ct
papirus-icon-theme
(magnetic-catppuccin-gtk.override {
accent = [ "all" ];
size = "standard"; #"compact"
shade = "dark";
tweaks = [ /*black*/ ];
})
xeyes
networkmanagerapplet
];
xdg.portal = {
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
};
}

57
modules/kernel.nix Normal file
View File

@ -0,0 +1,57 @@
{ config, pkgs, isLaptop, ... }:
{
boot.kernelParams = [
"sysrq_always_enabled=1"
"mitigations=off"
"plymouth.use-simpledrm"
"zswap.enabled=1"
"zswap.compressor=zstd"
"zswap.zpool=zsmalloc"
"vm.swappiness=30"
"preempt=full"
"split_lock_detect=off"
"cpufreq.default_governor=schedutil"
"amd_pstate=active"
"transparent_hugepage=always"
"iommu=pt"
"amd_iommu=pt"
"amdgpu.ppfeaturemask=0xffffffff"
"amdgpu.exp_hw_support=1"
"i915.enable_guc=3"
"pci=assign-busses,hpbussize=0x33,realloc=on"
"kvm.enable_virt_at_load=0"
"amdgpu.dc=1"
"amdgpu.gpu_recovery=1"
"vfio-pci.disable_vga=1"
];
catppuccin.tty.enable = !isLaptop;
hardware = {
amdgpu.overdrive = {
enable = true;
ppfeaturemask="0xffffffff";
};
new-lg4ff.enable = true;
};
boot.kernelPackages = (
pkgs.linuxKernel.packagesFor(
pkgs.cachyosKernels.linux-cachyos-rc.override {
bbr3 = true;
cpusched = "bore";
lto = if isLaptop then "thin" else "full";
processorOpt = if isLaptop then "zen4" else "x86_64-v3";
tickrate = if isLaptop then "idle" else "full";
}
)
);
boot.kernel.sysctl = {
"vm.max_map_count" = 16777216;
"net.ipv4.tcp_congestion_control" = "bbr";
"net.core.default_qdisc" = "cake_mq";
};
}

48
modules/networking.nix Normal file
View File

@ -0,0 +1,48 @@
{ isLaptop, ... }:
{
# Enable networking
networking = {
networkmanager = {
enable = true;
wifi.backend = "iwd";
};
wireless.iwd.settings = {
General = {
AddressRandomization = "once";
};
Network = {
EnableIPv6 = true;
};
Settings = {
AutoConnect = true;
};
Rank = {
BandModifier2_4GHZ = 1.0;
BandModifier5GHZ = 1.1;
BandModifier6GHZ = 2.0;
};
};
firewall = {
allowedTCPPorts = [
57621 # Spotify discovery port
];
allowedUDPPorts = [
5353 # Spotify discovery port
];
};
# Configure network proxy if necessary
# proxy.default = "http://user:password@proxy:port/";
# proxy.noProxy = "127.0.0.1,localhost,internal.domain";
};
hardware.bluetooth = {
enable = isLaptop;
powerOnBoot = false;
};
services.blueman.enable = isLaptop;
}

View File

@ -0,0 +1,59 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
git
curl
wget
neovim
fastfetch
htop
killall
file
e2fsprogs
cpu-x
lact
steam-run
exfatprogs
nixtamal # Important
android-tools
kdePackages.kleopatra # Needed to add keys easily
nload
graalvmPackages.graalvm-ce # Java
clang gcc mold
cmake
sbctl # For secure boot with Limine
];
programs.steam = {
enable = true;
dedicatedServer.openFirewall = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
dw-proton-bin # From nix-citizen overlay
];
# Note: to make another disk visible to games add
# STEAM_COMPAT_MOUNTS=/disk2 %command%
# to commandline options
};
services.flatpak.enable = true;
services.lact.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-qt;
};
programs.partition-manager.enable = true;
environment.sessionVariables = rec {
NIXTAMAL_DIRECTORY = "tamal";
};
environment.shellAliases = {
nixtamal = "bash -c 'cd /etc/nixos && nixtamal \"$@\"' --";
};
}

181
tamal/default.nix Normal file
View File

@ -0,0 +1,181 @@
/*
SPDX-FileCopyrightText: 20252026 toastal
SPDX-FileCopyrightText: 2026 Nixtamal contributors
SPDX-License-Identifier: ISC
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice & this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED AS IS & ISC DISCLAIMS ALL WARRANTIES WITH REGARD
TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY &
FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,
OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
OF THIS SOFTWARE.
+
This file was generated by Nixtamal.
Do not edit as it will be overwritten.
*/
{
system ? builtins.currentSystem,
bootstrap-nixpkgs ? null,
bootstrap-nixpkgs-lock-name ? null,
}:
let lock = builtins.fromJSON (builtins.readFile ./lock.json); in
assert (lock.v == "1.2.0");
let
local-patches = {
"adios" = ./patches/adios.patch;
"kservice_fix" = ./patches/kservice_fix.patch;
};
hash-token = {
"0" = "sha256";
"1" = "sha512";
"2" = "blake3";
};
try-fetch = input-name: fetcher:
let
try-fetch' = failed-urls: url: urls:
let result = builtins.tryEval (fetcher url); in
if result.success then
result.value
else
let failed-urls' = [ url ] ++ failed-urls; in
if builtins.length urls <= 0 then
let fus = builtins.concatStringsSep " " failed-urls'; in
throw "Input ${input-name}fetchable @ [ ${fus} ]"
else
try-fetch' failed-urls' (builtins.head urls) (builtins.tail urls);
in
try-fetch' [ ];
builtin-fetch-url = {input-name, name, kind, hash}:
try-fetch input-name (url:
builtins.fetchurl ({
inherit url;
${hash-token.${builtins.toString hash.al}} = hash.vl;
}
// (if name != null then {inherit name;} else {}))
) kind.ur kind.ms;
builtin-fetch-tarball = {input-name, name, kind, hash}:
try-fetch input-name (url:
builtins.fetchTarball ({
inherit url;
${hash-token.${builtins.toString hash.al}} = hash.vl;
}
// (if name != null then {inherit name;} else {}))
) kind.ur kind.ms;
builtin-to-input = input-name: input:
let
name = input.sn;
hash = input.ha;
k = builtins.head input.kd;
in
if k == 0 then
builtin-fetch-url {
inherit name;
input-name = input-name;
kind = builtins.elemAt input.kd 1;
hash = input.ha;
}
else if k == 1 then
builtin-fetch-tarball {
inherit name;
input-name = input-name;
kind = builtins.elemAt input.kd 1;
hash = input.ha;
}
else
throw "Unsupported input kind ${builtins.toString k}.";
nixpkgs' =
if builtins.isNull bootstrap-nixpkgs then
builtin-to-input "nixpkgs-for-nixtamal" (
if builtins.isString bootstrap-nixpkgs-lock-name then
lock.i.${bootstrap-nixpkgs-lock-name}
else
lock.i.nixpkgs-nixtamal or lock.i.nixpkgs
)
else
bootstrap-nixpkgs;
pkgs = import nixpkgs' {inherit system;};
inherit (pkgs) lib;
fetch-url = {input-name, name, kind, hash}: pkgs.fetchurl ({
url = kind.ur;
hash = hash.vl;
}
// lib.optionalAttrs (name != null) {inherit name;}
// lib.optionalAttrs (builtins.length kind.ms > 0) {urls = kind.ms;});
fetch-zip = {input-name, name, kind, hash}: pkgs.fetchzip ({
url = kind.ur;
hash = hash.vl;
}
// lib.optionalAttrs (name != null) {inherit name;}
// lib.optionalAttrs (builtins.length kind.ms > 0) {urls = kind.ms;});
fetch-patch = patch-name: {ur, ha}:
pkgs.fetchpatch2 {
url = ur;
hash = ha.vl;
};
to-input = input-name: input:
let
name = input.sn;
hash = input.ha;
k = builtins.head input.kd;
raw-input =
if k == 0 then
let
kind = builtins.elemAt input.kd 1;
fetch_time = kind.ft;
in
if fetch_time == 0 then
fetch-url {inherit input-name name kind hash;}
else if fetch_time == 1 then
builtin-fetch-url {inherit input-name name kind hash;}
else
throw "Unsupported fetch time ${fetch_time}."
else if k == 1 then
let
kind = builtins.elemAt input.kd 1;
fetch_time = kind.ft;
in
if fetch_time == 0 then
fetch-zip {inherit input-name name kind hash;}
else if fetch_time == 1 then
builtin-fetch-tarball {inherit input-name name kind hash;}
else
throw "Unsupported fetch time ${fetch_time}."
else
throw "Unsupported input kind ${builtins.toString k}.";
in
if builtins.length input.ps == 0 then
raw-input
else
pkgs.applyPatches {
src = raw-input;
name = "${if name != null then name else "src"}-patched";
patches = map (p:
if local-patches ? "${p}" then
local-patches."${p}"
else
fetch-patch p lock.p."${p}"
) input.ps;
};
in
builtins.mapAttrs to-input lock.i

17
tamal/lock.json Normal file
View File

@ -0,0 +1,17 @@
{"v":"1.2.0"
,"i":{
"nixpkgs":{"sn":"nixpkgs-src","kd":[1,{"ft":0,"ur":"https://github.com/NixOS/nixpkgs/archive/3e41b24abd260e8f71dbe2f5737d24122f972158.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-BSTBNVIizq+HVWhxRQidoUSBhRS3DYrbbW3IOF4ZMqo="},"fv":"3e41b24abd260e8f71dbe2f5737d24122f972158","ps":[]}
,"ani-cli":{"sn":"ani-cli-src","kd":[1,{"ft":0,"ur":"https://github.com/pystardust/ani-cli/archive/b8032b72901721a1ce859ca2816e8e2c914bc616.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-vmoD/YCoSBHABOYyYNxqY5+W4YMSZ5yBoIRA6msHaHA="},"fv":"b8032b72901721a1ce859ca2816e8e2c914bc616","ps":[]}
,"catppuccin":{"sn":"catppuccin-src","kd":[1,{"ft":0,"ur":"https://github.com/catppuccin/nix/archive/8b943da8a0f8628f3446d2517ea39babcfaf27f3.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-Ok/y9/GHp/WOe3zR1DShlSBQMoa9WOM1Fk07HJ98c0o="},"fv":"8b943da8a0f8628f3446d2517ea39babcfaf27f3","ps":[]}
,"catppuccin-godot":{"sn":"catppuccin-godot-src","kd":[0,{"ft":0,"ur":"https://raw.githubusercontent.com/catppuccin/godot/d8b72b679078f0103a5e5c1ef793c1d698a563b1/themes/Catppuccin%20Mocha.tet","ms":[]}],"ha":{"al":2,"vl":"blake3-WVY58qsBKJlGvir08RYlS+RcjdhFvXz+7YHVfEr6tes="},"fv":"d8b72b679078f0103a5e5c1ef793c1d698a563b1","ps":[]}
,"dolphin-overlay":{"sn":"dolphin-overlay-src","kd":[1,{"ft":0,"ur":"https://github.com/rumboon/dolphin-overlay/archive/65dd612c8d72d4cf5cb0eb4d9188ed7a16a042dd.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-PCS3mMGsTYXadc/DDU/EQv2T/0YORMigwUP6NEeOJW4="},"fv":"65dd612c8d72d4cf5cb0eb4d9188ed7a16a042dd","ps":["kservice_fix"]}
,"home-manager":{"sn":"home-manager-src","kd":[1,{"ft":0,"ur":"https://github.com/nix-community/home-manager/archive/d1ccd0721ec599866622665f3651e19e6e2d4c6a.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-5OMdQbr6CYz61i1qGRI6uW/f2cSh0hFjKDdaVcHYq3Y="},"fv":"d1ccd0721ec599866622665f3651e19e6e2d4c6a","ps":[]}
,"mpv":{"sn":"mpv-src","kd":[1,{"ft":0,"ur":"https://github.com/mpv-player/mpv/archive/refs/tags/v0.41.0.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-4u9KCKKEvSoOSO/7oZGIpnuSGcFc2rVmcJfdpFzwc5w="},"fv":"e04638a4b4eac258e679673d2a4171bde3f6c41eacb7e3d860c9a435f07eb9da","ps":["mpv_buffers_fix"]}
,"nix-cachyos-kernel":{"sn":"nix-cachyos-kernel-src","kd":[1,{"ft":0,"ur":"https://github.com/xddxdd/nix-cachyos-kernel/archive/756ed060ca6adcdf3e65371e3725b89c58a1354d.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-Fe0eyieRpR2wg5mSTU+1rWBLuDMbAFlBaq2ZyRLDrLU="},"fv":"756ed060ca6adcdf3e65371e3725b89c58a1354d","ps":[]}
,"nix-cachyos-settings":{"sn":"nix-cachyos-settings-src","kd":[1,{"ft":0,"ur":"https://github.com/Daaboulex/cachyos-settings-nix/archive/b10930df067b3774ea2a1a79a4cc31480d8471ab.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-tz6jBM/WrxbxBnNB2v7P/jW1A066j0a+kMgallqOKtM="},"fv":"b10930df067b3774ea2a1a79a4cc31480d8471ab","ps":["adios"]}
,"nix-citizen":{"sn":"nix-citizen-src","kd":[1,{"ft":0,"ur":"https://github.com/LovingMelody/nix-citizen/archive/44a4711c00680d12e807344ad1488564ceab129f.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-BVV1kdZp1Jpxw84MGiDuY1p7i423LF7pXhHSO8UnQUQ="},"fv":"44a4711c00680d12e807344ad1488564ceab129f","ps":[]}
}
,"p":{
"mpv_buffers_fix":{"ur":"https://patch-diff.githubusercontent.com/raw/mpv-player/mpv/pull/17303.patch","ha":{"al":2,"vl":"blake3-/y4M5tEZmuhh6q5zvg1lbf/jjdnRulPEoycCBcZm/cQ="}}
}
}

110
tamal/manifest.kdl Normal file
View File

@ -0,0 +1,110 @@
version "1.2.0"
default-hash-algorithm BLAKE3
patches {
adios "./patches/adios.patch"
kservice_fix "./patches/kservice_fix.patch"
mpv_buffers_fix "https://patch-diff.githubusercontent.com/raw/mpv-player/mpv/pull/17303.patch" // TODO: Remove this and mpv from manifest when mpv 0.42 is released
}
inputs {
nixpkgs {
archive {
url "https://github.com/NixOS/nixpkgs/archive/{{fresh_value}}.tar.gz"
}
fresh-cmd {
$ git ls-remote --branches "https://github.com/NixOS/nixpkgs.git" --refs "refs/heads/nixpkgs-unstable"
| cut -f1
}
}
home-manager {
archive {
url "https://github.com/nix-community/home-manager/archive/{{fresh_value}}.tar.gz"
}
fresh-cmd {
$ git ls-remote --branches "https://github.com/nix-community/home-manager.git" --refs "refs/heads/master"
| cut -f1
}
}
catppuccin {
archive {
url "https://github.com/catppuccin/nix/archive/{{fresh_value}}.tar.gz"
}
fresh-cmd {
$ git ls-remote --branches "https://github.com/catppuccin/nix.git" --refs "refs/heads/main"
| cut -f1
}
}
nix-cachyos-kernel {
archive {
url "https://github.com/xddxdd/nix-cachyos-kernel/archive/{{fresh_value}}.tar.gz"
}
fresh-cmd {
$ git ls-remote --branches "https://github.com/xddxdd/nix-cachyos-kernel.git" --refs "refs/heads/release"
| cut -f1
}
}
nix-cachyos-settings {
archive {
url "https://github.com/Daaboulex/cachyos-settings-nix/archive/{{fresh_value}}.tar.gz"
}
patches adios
fresh-cmd {
$ git ls-remote --branches "https://github.com/Daaboulex/cachyos-settings-nix.git" --refs "refs/heads/main"
| cut -f1
}
}
dolphin-overlay {
archive {
url "https://github.com/rumboon/dolphin-overlay/archive/{{fresh_value}}.tar.gz"
}
patches kservice_fix
fresh-cmd {
$ git ls-remote --branches "https://github.com/rumboon/dolphin-overlay.git" --refs "refs/heads/main"
| cut -f1
}
}
nix-citizen {
archive {
url "https://github.com/LovingMelody/nix-citizen/archive/{{fresh_value}}.tar.gz"
}
fresh-cmd {
$ git ls-remote --branches "https://github.com/LovingMelody/nix-citizen.git" --refs "refs/heads/main"
| cut -f1
}
}
// Packages
ani-cli {
archive {
url "https://github.com/pystardust/ani-cli/archive/{{fresh_value}}.tar.gz"
}
fresh-cmd {
$ git ls-remote --branches "https://github.com/pystardust/ani-cli.git" --refs "refs/heads/master"
| cut -f1
}
}
mpv {
archive {
url "https://github.com/mpv-player/mpv/archive/refs/tags/v0.41.0.tar.gz"
}
patches mpv_buffers_fix
}
// Others
catppuccin-godot {
file {
url "https://raw.githubusercontent.com/catppuccin/godot/{{fresh_value}}/themes/Catppuccin Mocha.tet"
}
fresh-cmd {
$ git ls-remote --branches "https://github.com/catppuccin/godot.git" --refs "refs/heads/main"
| cut -f1
}
}
}

15
tamal/patches/adios.patch Normal file
View File

@ -0,0 +1,15 @@
diff --git a/module.nix b/module.nix
index c78661e..0f03ec3 100644
--- a/module.nix
+++ b/module.nix
@@ -220,8 +220,8 @@ in
ACTION=="add|change", KERNEL=="sd[a-z]*", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"
# SSD: mq-deadline
ACTION=="add|change", KERNEL=="sd[a-z]*|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"
- # NVMe: kyber (upstream CachyOS#220)
- ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="kyber"
+ # NVMe: adios (because I said so)
+ ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="adios"
'';
})

View File

@ -0,0 +1,15 @@
diff --git a/default.nix b/default.nix
index 5719e2f..5e90925 100644
--- a/default.nix
+++ b/default.nix
@@ -18,8 +18,8 @@ final: prev: {
postBuild = ''
rm $out/bin/dolphin
makeWrapper ${kprev.dolphin}/bin/dolphin $out/bin/dolphin \
- --set XDG_CONFIG_DIRS "${prev.libsForQt5.kservice}/etc/xdg:$XDG_CONFIG_DIRS" \
- --run "${kprev.kservice}/bin/kbuildsycoca6 --noincremental ${prev.libsForQt5.kservice}/etc/xdg/menus/applications.menu"
+ --set XDG_CONFIG_DIRS "${prev.libsForQt5.__internalKF5.kservice}/etc/xdg:$XDG_CONFIG_DIRS" \
+ --run "${kprev.kservice}/bin/kbuildsycoca6 --noincremental ${prev.libsForQt5.__internalKF5.kservice}/etc/xdg/menus/applications.menu"
'';
passthru = (kprev.dolphin.passthru or {}) // { dev = kprev.dolphin.dev; };
};