sesbian lex

This commit is contained in:
lucy 2026-03-03 20:15:06 +01:00
commit bcc4e549cf
15 changed files with 1632 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
hardware-configuration.nix

175
configuration.nix Executable file
View File

@ -0,0 +1,175 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{
config,
pkgs,
...
}:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
./stylix.nix
];
fonts = {
packages = with pkgs; [
noto-fonts-cjk-sans
noto-fonts
nerd-fonts._0xproto
];
};
services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true;
boot = {
plymouth = {
enable = true;
};
# Enable "Silent boot"
consoleLogLevel = 3;
initrd.verbose = false;
kernelParams = [
"quiet"
"splash"
"boot.shell_on_fail"
"udev.log_priority=3"
"rd.systemd.show_status=auto"
];
# Hide the OS choice for bootloaders.
# It's still possible to open the bootloader list by pressing any key
# It will just not appear on screen unless a key is pressed
loader.timeout = 0;
};
hardware.graphics.enable = true;
nix = {
extraOptions = "experimental-features = nix-command flakes";
optimise.automatic = true;
optimise.dates = [ "12:00" ];
gc = {
automatic = true;
};
};
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
security.sudo.enable = true;
# Use latest kernel.
boot.kernelPackages = pkgs.linuxPackages_latest;
services.power-profiles-daemon.enable = false;
services.upower.enable = true;
services.tlp.enable = true;
services.auto-cpufreq.enable = true;
networking.hostName = "wired"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Sound
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
};
# Enable networking
networking.networkmanager.enable = true;
# Home manager angy grrr
# Set your time zone.
time.timeZone = "Europe/Berlin";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
};
# Configure console keymap
console.keyMap = "us";
# Define a user account. Don't forget to set a password with passwd.
programs.direnv.enable = true;
programs.zsh.enable = true;
users.users.lucy = {
isNormalUser = true;
description = "lucy";
shell = pkgs.zsh;
extraGroups = [
"networkmanager"
"wheel"
];
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.pathsToLink = [
"/share/applications"
"/share/xdg-desktop-portal"
];
environment.systemPackages = with pkgs; [
openssl
fastfetch
gnomeExtensions.blur-my-shell
gnomeExtensions.appindicator
];
programs.steam = {
enable = true;
extraCompatPackages = with pkgs; [ proton-ge-bin ];
};
programs.git.enable = true;
systemd.user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
};
};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or 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 = "25.05"; # Did you read the comment?
}

493
flake.lock generated Normal file
View File

@ -0,0 +1,493 @@
{
"nodes": {
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1755819240,
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1765809053,
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1760703920,
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1732806396,
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1764873433,
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1769996383,
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1767609335,
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1731966426,
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"host": "gitlab.gnome.org",
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "gitlab"
},
"original": {
"host": "gitlab.gnome.org",
"owner": "GNOME",
"ref": "gnome-49",
"repo": "gnome-shell",
"type": "gitlab"
}
},
"home-manager": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1772516620,
"narHash": "sha256-2r4cKdqCVlQkvcTcLUMxmsmAYZZxCMd//w/PnDnukTE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "2b9504d5a0169d4940a312abe2df2c5658db8de9",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1770841267,
"narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1772433332,
"narHash": "sha256-izhTDFKsg6KeVBxJS9EblGeQ8y+O8eCa6RcW874vxEc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "cf59864ef8aa2e178cccedbe2c178185b0365705",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1770380644,
"narHash": "sha256-P7dWMHRUWG5m4G+06jDyThXO7kwSk46C1kgjEWcybkE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ae67888ff7ef9dff69b3cf0cc0fbfbcd3a722abe",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1772198003,
"narHash": "sha256-UCaQQ8zmHUocQIgCl+53Jj6NuwqrVKtmv7obE9r6wnw=",
"rev": "dd9b079222d43e1943b6ebd802f04fd959dc8e61",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre955442.dd9b079222d4/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1767767207,
"narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5912c1772a44e31bf1c63c0390b90501e5026886",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_3",
"systems": "systems"
},
"locked": {
"lastModified": 1772402258,
"narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
"stylix",
"flake-parts"
],
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1767810917,
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
"owner": "nix-community",
"repo": "NUR",
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs_2",
"nixvim": "nixvim",
"spicetify-nix": "spicetify-nix",
"stylix": "stylix"
}
},
"spicetify-nix": {
"inputs": {
"nixpkgs": "nixpkgs_4",
"systems": "systems_2"
},
"locked": {
"lastModified": 1772494187,
"narHash": "sha256-6ksgNAFXVK+Cg/6ww7bB2nJUPZlnS75UwZC7G+L03EE=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
"rev": "915ab06b046d05613041780c575c62a32fe67cea",
"type": "github"
},
"original": {
"owner": "Gerg-L",
"repo": "spicetify-nix",
"type": "github"
}
},
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_2",
"gnome-shell": "gnome-shell",
"nixpkgs": "nixpkgs_5",
"nur": "nur",
"systems": "systems_3",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1772296853,
"narHash": "sha256-pAtzPsgHRKw/2Kv8HgAjSJg450FDldHPWsP3AKG/Xj0=",
"owner": "danth",
"repo": "stylix",
"rev": "c4b8e80a1020e09a1f081ad0f98ce804a6e85acf",
"type": "github"
},
"original": {
"owner": "danth",
"repo": "stylix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1735730497,
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1767710407,
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1767489635,
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1767488740,
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

59
flake.nix Executable file
View File

@ -0,0 +1,59 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
stylix.url = "github:danth/stylix";
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
nixvim.url = "github:nix-community/nixvim";
home-manager.url = "github:nix-community/home-manager";
};
outputs =
{
nixpkgs,
stylix,
spicetify-nix,
nixvim,
home-manager,
...
}:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
in
{
nixosConfigurations.wired = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
stylix.nixosModules.stylix
home-manager.nixosModules.home-manager
./configuration.nix
{
home-manager.useUserPackages = true;
home-manager.useGlobalPkgs = true;
home-manager.users.lucy = {
imports = [
nixvim.homeModules.nixvim
spicetify-nix.homeManagerModules.spicetify
./home/home.nix
];
};
}
];
};
homeConfigurations.lucy = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
stylix.homeModules.stylix
nixvim.homeModules.nixvim
./home/home.nix
./home/programs.nix
];
};
};
}

45
home/home.nix Executable file
View File

@ -0,0 +1,45 @@
{ config, pkgs, ... }:
{
imports = [
./hyprland.nix
./programs.nix
./waybar.nix
./nixvim/nixvim.nix
./stylix.nix
];
home.username = "lucy";
home.homeDirectory = "/home/lucy";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
nsr = "sudo nixos-rebuild switch";
ncb = "sudo nix-collect-garbage -d";
};
oh-my-zsh = {
enable = true;
plugins = [
"git"
];
theme = "gentoo";
};
};
home.stateVersion = "24.05"; # Please read the comment before changing.
home.shell.enableShellIntegration = true;
home.shellAliases = {
nrs = "sudo nixos-rebuild switch --flake /home/lucy/nixos-conf/";
};
}

136
home/hyprland.nix Executable file
View File

@ -0,0 +1,136 @@
{ config, ... }:
{
wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.settings = {
"$mod" = "SUPER";
"monitor" = ",preferred,auto,1";
general = {
border_size = 2;
gaps_in = 5;
gaps_out = 10;
layout = "dwindle";
};
decoration = {
rounding = 15;
blur = {
enabled = true;
size = 3;
passes = 2;
ignore_opacity = 0;
};
shadow = {
enabled = false;
};
};
animations = {
enabled = true;
bezier = [
"smoothIn, 0.25, 1, 0.5, 1"
"smoothOut, 0.25, 1, 0.5, 1"
"overshot, 0.4, 0.8, 0.5, 1"
"candy, 0.68, -0.6, 0.32, 1.5"
];
animation = [
"fade, 1, 10, overshot"
"fadeIn, 1, 5, overshot"
"fadeOut, 1, 5, overshot"
"fadeDim, 1, 5, overshot"
"windows, 1, 1, smoothIn, popin"
"border, 1, 10, default"
"workspaces, 1, 6, overshot, slide"
"specialWorkspace, 1, 8, smoothOut, slidevert"
];
};
input = {
kb_layout = "de";
kb_options = "nodeadkeys";
sensitivity = 0.3;
accel_profile = "flat";
natural_scroll = true;
};
exec-once = [
"swww-daemon"
"dunst"
];
"bind" = [
"$mod, Return, exec, foot"
"$mod, space, exec, fuzzel"
"$mod, Q, killactive"
"$mod, v, togglefloating"
"$mod, w, exec, waypaper"
"$mod SHIFT, Q, exit"
"$mod, J, togglesplit"
"$mod, minus, togglespecialworkspace, magic"
"$mod SHIFT, minus, movetoworkspace, special:magic"
"$mod, B, exec, pkill -SIGUSR1 waybar"
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod, 5, workspace, 5"
"$mod, 6, workspace, 6"
"$mod, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod, 0, workspace, 10"
"$mod SHIFT, 1, movetoworkspace, 1"
"$mod SHIFT, 2, movetoworkspace, 2"
"$mod SHIFT, 3, movetoworkspace, 3"
"$mod SHIFT, 4, movetoworkspace, 4"
"$mod SHIFT, 5, movetoworkspace, 5"
"$mod SHIFT, 6, movetoworkspace, 6"
"$mod SHIFT, 7, movetoworkspace, 7"
"$mod SHIFT, 8, movetoworkspace, 8"
"$mod SHIFT, 9, movetoworkspace, 9"
"$mod SHIFT, 0, movetoworkspace, 10"
# Screenshots
"Alt, S, exec, hyprshot -m output -m active --clipboard-only --freeze"
"$mod SHIFT, S, exec, hyprshot -m region --clipboard-only --freeze"
"Control_L&Alt, S, exec, hyprshot -m window --clipboard-only --freeze"
"$mod, left, movefocus, l"
"$mod, right, movefocus, r"
"$mod, up, movefocus, u"
"$mod, down, movefocus, d"
"$mod SHIFT, left, movewindow, l"
"$mod SHIFT, right, movewindow, r"
"$mod SHIFT, up, movewindow, u"
"$mod SHIFT, down, movewindow, d"
"$mod, P, exec, /home/lucy/.local/bin/powermenu"
];
binde = [
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioNext, exec, playerctl next"
", XF86AudioPause, exec, playerctl play-pause"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPrev, exec, playerctl previous"
", XF86MonBrightnessDown, exec, brightnessctl s 10%-"
", XF86MonBrightnessUp, exec, brightnessctl s 10%+"
];
bindm = [
"$mod, mouse:272, movewindow"
"alt, mouse:272, resizewindow"
];
layerrule = [
"noanim, walker"
];
windowrule = [
"float, class:^(waypaper)"
"float, class:^(Ryujinx)"
"suppressevent maximize, class:.*"
"nofocus, class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
];
};
}

50
home/nixvim/coding.nix Executable file
View File

@ -0,0 +1,50 @@
{ pkgs, ... }:
{
programs.nixvim = {
diagnostic.settings = {
virtual_text = true;
};
plugins = {
lsp = {
enable = true;
inlayHints = true;
servers = {
bashls.enable = true;
qmlls.enable = true;
qmlls.package = null;
qmlls.cmd = [
"qmlls"
"-E"
];
clangd.package = null;
clangd.enable = true;
clangd.cmd = [
"clangd"
"--background-index"
"--query-driver=${pkgs.clang}/bin/clang++"
"--query-driver=${pkgs.clang}/bin/clang"
];
nixd.enable = true;
};
};
conform-nvim = {
enable = true;
settings = {
formatters_by_ft = {
lua = [ "stylua" ];
nix = [ "nixfmt" ];
c = [ "clang-format" ];
cpp = [ "clang-format" ];
};
};
};
blink-cmp = {
enable = true;
};
};
};
}

95
home/nixvim/keymaps.nix Executable file
View File

@ -0,0 +1,95 @@
{
programs.nixvim.keymaps = [
{
key = "<ESC>";
mode = "t";
action = ''<C-\><C-n>'';
options.silent = true;
}
{
key = "<A-1>";
mode = "n";
action = ":BufferLineGoToBuffer 1<CR>";
}
{
key = "<A-2>";
mode = "n";
action = ":BufferLineGoToBuffer 2<CR>";
}
{
key = "<A-3>";
mode = "n";
action = ":BufferLineGoToBuffer 3<CR>";
}
{
key = "<A-4>";
mode = "n";
action = ":BufferLineGoToBuffer 4<CR>";
}
{
key = "<A-5>";
mode = "n";
action = ":BufferLineGoToBuffer 5<CR>";
}
{
key = "<A-6>";
mode = "n";
action = ":BufferLineGoToBuffer 6<CR>";
}
{
key = "<A-7>";
mode = "n";
action = ":BufferLineGoToBuffer 7<CR>";
}
{
key = "<A-8>";
mode = "n";
action = ":BufferLineGoToBuffer 8<CR>";
}
{
key = "<A-9>";
mode = "n";
action = ":BufferLineGoToBuffer 9<CR>";
}
{
key = "<A-0>";
mode = "n";
action = ":BufferLineGoToBuffer last<CR>";
}
{
key = "<leader>w";
mode = "n";
action = "<cmd>bdelete!<cr>";
}
{
key = "<A-S-e>";
mode = "n";
action = ":NvimTreeFocus<CR>";
}
{
key = "<A-e>";
mode = "n";
action = ":NvimTreeToggle<CR>";
}
{
key = "<C-F>";
mode = "n";
action = "<cmd>lua require('conform').format({ async = true, lsp_fallback = true }) <cr>";
}
{
key = "<leader>t";
mode = "n";
action = "<cmd>terminal<cr>";
}
{
key = "<leader>ff";
mode = "n";
action = ":lua Snacks.picker.files() <cr>";
}
{
key = "<leader>lg";
mode = "n";
action = ":lua Snacks.picker.grep() <cr>";
}
];
}

32
home/nixvim/nixvim.nix Executable file
View File

@ -0,0 +1,32 @@
{
config,
pkgs,
lib,
...
}:
{
imports = [
./plugins.nix
./keymaps.nix
./coding.nix
];
programs.nixvim = {
enable = true;
extraPackages = with pkgs; [
nixd
nixpkgs-fmt
stylua
];
globals.mapleader = " ";
defaultEditor = true;
wrapRc = true;
opts = {
number = true;
relativenumber = true;
shiftwidth = 4;
termguicolors = true;
cursorline = true;
laststatus = 0;
};
};
}

138
home/nixvim/plugins.nix Executable file
View File

@ -0,0 +1,138 @@
let
button = shortcut: text: action: {
type = "button";
val = text;
on_press.__raw = "function() vim.cmd([[${action}]]) end";
opts = {
keymap = [
"n"
shortcut
action
{
noremap = true;
silent = true;
}
];
shortcut = shortcut;
position = "center";
width = 30;
align_shortcut = "right";
hl_shortcut = "Keyword";
};
};
in
{
programs.nixvim.plugins = {
neocord.enable = true;
colorizer.enable = true;
nvim-autopairs.enable = true;
treesitter = {
enable = true;
settings = {
highlighting.enable = true;
auto_install = true;
ignore_install = [ "ipkg" ];
};
};
nvim-tree.enable = true;
alpha = {
enable = true;
settings.layout = [
{
type = "padding";
val = 2;
}
{
type = "text";
val = [
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
];
opts = {
position = "center";
hl = "Type";
};
}
{
type = "padding";
val = 2;
}
{
type = "group";
opts = {
position = "center";
};
val = [
(button "f" " Find File" "<cmd>lua Snacks.picker.files()<cr>")
(button "g" " Find Text" "<cmd>lua Snacks.picker.grep()<cr>")
(button "r" " Recent Files" "<cmd>lua Snacks.dashboard.pick('oldfiles')<cr>")
(button "q" " Quit" "<cmd>qa<cr>")
];
}
];
};
snacks = {
enable = true;
settings = {
notifier.enabled = true;
picker.enabled = true;
indent.enabled = true;
};
};
lualine = {
enable = true;
settings = {
options = {
globalstatus = true;
section_separators = {
left = "";
right = "";
};
component_separators = {
left = "";
right = "";
}; # Fixed: Added missing braces
};
sections = {
lualine_a = [ "mode" ];
lualine_b = [ "diagnostics" ];
lualine_c = [
"filename"
"branch"
"navic"
];
lualine_x = [
"filetype"
"lsp_status"
];
lualine_y = [ "progress" ];
lualine_z = [ "location" ];
};
};
};
bufferline.enable = true;
web-devicons.enable = true;
};
}

185
home/programs.nix Executable file
View File

@ -0,0 +1,185 @@
{
config,
pkgs,
...
}:
{
home.packages = with pkgs; [
nixfmt
google-chrome
swww
waypaper
nemo
cava
pavucontrol
brightnessctl
hyprshot
evince
dconf
fd
ripgrep
ani-cli
cinny-desktop
(discord.override {
withOpenASAR = true; # can do this here too
withVencord = true;
})
];
programs.git = {
enable = true;
settings = {
user.name = "lucy";
user.email = "lucykaufmann@protonmail.com";
};
};
programs.spicetify.enable = true;
programs.fastfetch = {
enable = true;
settings = {
logo = {
source = "~/.config/fastfetch/logo.txt";
};
display = {
separator = " ";
};
modules = [
{
type = "title";
key = "User";
}
{
type = "custom";
text = "";
}
{
type = "os";
key = "OS";
}
{
type = "custom";
text = "";
}
{
type = "kernel";
key = "Kernel";
}
{
type = "custom";
text = "";
}
{
type = "packages";
key = "Packages";
}
{
type = "custom";
text = "";
}
{
type = "cpu";
key = "CPU";
}
{
type = "custom";
text = "";
}
{
type = "gpu";
key = "GPU";
}
{
type = "custom";
text = "";
}
{
type = "memory";
key = "Memory";
}
{
type = "custom";
text = "";
}
{
type = "disk";
key = "Disk";
}
{
type = "custom";
text = "";
}
{
type = "display";
key = "Resolution";
}
{
type = "custom";
text = "";
}
{
type = "shell";
key = "Shell";
}
];
};
};
programs.foot = {
enable = true;
settings = {
cursor = {
style = "underline";
};
main = {
pad = "14x14";
initial-window-size-pixels = "800x600";
};
};
};
programs.fuzzel = {
enable = true;
settings = {
main = {
lines = 10;
horizontal-pad = 30;
vertical-pad = 15;
};
border = {
width = 2;
radius = 0;
};
};
};
programs.vesktop = {
enable = true;
settings = {
staticTitle = true;
arRPC = true;
customTitleBar = false;
};
vencord.settings.plugins = {
MessageLogger.enabled = true;
MessageClickActions.enabled = true;
};
};
services.dunst = {
enable = true;
settings = {
global = {
offset = "10x32";
corner_radius = config.wayland.windowManager.hyprland.settings.decoration.rounding;
frame_width = config.wayland.windowManager.hyprland.settings.general.border_size;
};
};
};
}

12
home/stylix.nix Executable file
View File

@ -0,0 +1,12 @@
{
stylix = {
image = ./wallpaper.png;
targets = {
waybar.enable = true;
waybar.addCss = false;
hyprland.enable = true;
hyprland.hyprpaper.enable = false;
gnome.image.enable = false;
};
};
}

BIN
home/wallpaper.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

153
home/waybar.nix Executable file
View File

@ -0,0 +1,153 @@
{ config, lib, ... }:
{
programs.waybar = {
enable = true;
systemd.enable = true;
style = ''
* {
font-size: 14px;
font-weight: 600;
}
window#waybar {
background-color: transparent;
border-radius: ${builtins.toString config.wayland.windowManager.hyprland.settings.decoration.rounding};
}
#workspaces button {
all: unset;
padding: 1px 6px;
margin: 2px;
color: alpha(@base05, 0.5);
border-radius: 1em;
}
#workspaces button.active {
color: @base05;
}
#workspaces {
margin: 0px;
padding: 2px;
background-color: @base00;
border-radius: 1em;
}
#mpris,
#backlight,
#tray,
#pulseaudio,
#window,
#upower,
#clock,
#power-profiles-daemon {
padding: 2px 10px;
background-color: @base00;
color: @base05;
border-radius: ${builtins.toString config.wayland.windowManager.hyprland.settings.decoration.rounding};
}
#tray {
padding: 0px 8px;
}
window#waybar.empty #window {
background: none;
}
#custom-sep {
color: alpha(@base05, 0.5);
}
'';
settings = {
mainBar = {
margin-top = config.wayland.windowManager.hyprland.settings.general.gaps_out;
margin-left = config.wayland.windowManager.hyprland.settings.general.gaps_out;
margin-right = config.wayland.windowManager.hyprland.settings.general.gaps_out;
layer = "top";
position = "top";
spacing = 4;
modules-left = [
"hyprland/workspaces"
"hyprland/window"
"mpris"
];
modules-right = [
"backlight"
"pulseaudio"
"upower"
"power-profiles-daemon"
"clock"
"tray"
];
"custom/sep" = {
format = " | ";
};
"mpris" = {
player = "spotify";
format = "{title} - {artist}";
};
"hyprland/window" = {
format = "{}";
max-length = 40;
};
"tray" = {
icon-size = 14;
};
"hyprland/workspaces" = {
format = "{name}";
};
"upower" = {
format = "{percentage}";
format-alt = "{time}";
icon-size = 12;
hide-if-empty = true;
tooltip = false;
tooltip-spacing = 20;
};
"power-profiles-daemon" = {
format = "{profile}";
format-tooltip = "Power profile: {profile}\nDriver: {driver}";
};
"backlight" = {
format = "{icon} {percent}%";
format-icons = [
""
""
""
""
""
""
""
""
""
];
};
"pulseaudio" = {
format = "{icon} {volume}%";
format-muted = "󰝟 {volume}%";
on-click = "pavucontrol";
format-icons = [
"󰕿"
"󰖀"
"󰕾"
];
};
"clock" = {
interval = 1;
format = "{:%H:%M | %d.%m.%Y}";
format-alt = "{:%H:%M | %d.%m.%Y}";
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
};
};
};
};
}

58
stylix.nix Executable file
View File

@ -0,0 +1,58 @@
{
config,
lib,
pkgs,
...
}:
{
stylix.opacity = {
terminal = 0.8;
desktop = 1.0;
popups = 1.0;
};
stylix.cursor = {
name = "macOS";
package = pkgs.apple-cursor;
size = 24;
};
stylix.icons = {
enable = true;
dark = "Papirus-Dark";
light = "Papirus-Light";
package = pkgs.papirus-icon-theme;
};
stylix = {
enable = true;
autoEnable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
polarity = "dark";
image = ./home/wallpaper.png;
targets = {
qt.platform = lib.mkForce "qtct";
};
fonts = {
sizes = {
terminal = 10;
popups = 10;
desktop = 10;
};
serif = {
package = config.stylix.fonts.monospace.package;
name = config.stylix.fonts.monospace.name;
};
sansSerif = {
package = config.stylix.fonts.monospace.package;
name = config.stylix.fonts.monospace.name;
};
monospace = {
package = pkgs.maple-mono.NF;
name = "Maple Mono NF";
};
emoji = {
package = pkgs.noto-fonts-color-emoji;
name = "Noto Color Emoji";
};
};
};
}