mirror of
https://github.com/Username404-59/Dotfiles-NixOS.git
synced 2026-07-03 12:58:07 +02:00
Add files
This commit is contained in:
parent
232770418f
commit
3240615eea
9
README.md
Normal file
9
README.md
Normal 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
45
bootloader.nix
Normal 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
144
configuration.nix
Normal 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. It‘s 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?
|
||||||
|
}
|
||||||
BIN
home/doggo/backgrounds/ubuntu_budgie_wallpaper1.jpg
Normal file
BIN
home/doggo/backgrounds/ubuntu_budgie_wallpaper1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
39
home/doggo/catppuccin-config.nix
Normal file
39
home/doggo/catppuccin-config.nix
Normal 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
|
||||||
|
}
|
||||||
3
home/doggo/discord-config.nix
Normal file
3
home/doggo/discord-config.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
home.file.".config/Equicord/themes/quickCss.css".source = ./discord_css/myClearVisionV7.css;
|
||||||
|
}
|
||||||
89
home/doggo/discord_css/myClearVisionV7.css
Normal file
89
home/doggo/discord_css/myClearVisionV7.css
Normal 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
133
home/doggo/doggo.nix
Normal 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";
|
||||||
|
}
|
||||||
53
home/doggo/firefox-config.nix
Normal file
53
home/doggo/firefox-config.nix
Normal 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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
70
home/doggo/firefox_css/userChrome.css
Normal file
70
home/doggo/firefox_css/userChrome.css
Normal 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;}
|
||||||
1
home/doggo/firefox_css/userContent.css
Normal file
1
home/doggo/firefox_css/userContent.css
Normal file
@ -0,0 +1 @@
|
|||||||
|
@-moz-document url(about:newtab), url("about:home") { html{ --newtab-background-color: transparent !important; --newtab-background-color-secondary: transparent !important; } }
|
||||||
290
home/doggo/hyprland-config.nix
Normal file
290
home/doggo/hyprland-config.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
517
home/doggo/ironbar-config.nix
Normal file
517
home/doggo/ironbar-config.nix
Normal 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;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
||||||
29
home/doggo/kitty-config.nix
Normal file
29
home/doggo/kitty-config.nix
Normal 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
48
home/doggo/mpv-config.nix
Normal 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)"
|
||||||
|
'';
|
||||||
|
}
|
||||||
23
home/doggo/rofi-config.nix
Normal file
23
home/doggo/rofi-config.nix
Normal 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
61
local.nix
Normal 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";
|
||||||
|
}
|
||||||
47
local_packages/murale/package.nix
Normal file
47
local_packages/murale/package.nix
Normal 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
14
modules/fonts.nix
Normal 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
46
modules/hyprland.nix
Normal 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
57
modules/kernel.nix
Normal 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
48
modules/networking.nix
Normal 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;
|
||||||
|
}
|
||||||
59
modules/system-packages.nix
Normal file
59
modules/system-packages.nix
Normal 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
181
tamal/default.nix
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
/*
|
||||||
|
SPDX-FileCopyrightText: 2025–2026 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
17
tamal/lock.json
Normal 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
110
tamal/manifest.kdl
Normal 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
15
tamal/patches/adios.patch
Normal 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"
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
|
||||||
15
tamal/patches/kservice_fix.patch
Normal file
15
tamal/patches/kservice_fix.patch
Normal 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; };
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue
Block a user