├── hyprland.png ├── home ├── profiles │ ├── wsl │ │ └── default.nix │ └── bojo │ │ └── default.nix ├── programs │ ├── streamdeck.nix │ ├── work.nix │ └── desktop.nix ├── wayland │ ├── ags.nix │ ├── qt.nix │ ├── dunst.nix │ ├── hyprland │ │ ├── default.nix │ │ ├── rules.nix │ │ ├── binds.nix │ │ └── settings.nix │ ├── gtk.nix │ ├── default.nix │ ├── wofi.nix │ └── waybar.nix ├── shells │ ├── git.nix │ ├── fish.nix │ ├── starship.nix │ ├── default.nix │ └── fastfetch.nix ├── default.nix ├── terminals │ ├── kitty.nix │ └── wezterm.nix ├── services │ └── easyeffects.nix └── editors │ └── helix.nix ├── README.md ├── modules ├── udev.nix ├── streamdeck.nix ├── wine.nix ├── kernel.nix ├── plex.nix ├── virtualization │ ├── virtualbox.nix │ ├── docker.nix │ └── general.nix ├── xdg.nix ├── steam.nix ├── sound.nix ├── user.nix ├── greet.nix ├── system.nix └── openrgb.nix ├── hosts ├── wsl │ └── default.nix └── bruh │ ├── default.nix │ └── hardware-configuration.nix ├── data └── 50-zsa.rules ├── flake.nix └── flake.lock /hyprland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boj/nixos-config/HEAD/hyprland.png -------------------------------------------------------------------------------- /home/profiles/wsl/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | imports = [ 3 | ../.. 4 | ]; 5 | } 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NixOS Flakes Hyprland 2 | 3 | ![screenshot of hyprland setup](/hyprland.png) 4 | -------------------------------------------------------------------------------- /modules/udev.nix: -------------------------------------------------------------------------------- 1 | { 2 | services.udev.extraRules = builtins.readFile ../data/50-zsa.rules; 3 | } 4 | -------------------------------------------------------------------------------- /home/programs/streamdeck.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | home.packages = with pkgs; [ 3 | deckmaster 4 | xdotool 5 | ]; 6 | } 7 | -------------------------------------------------------------------------------- /home/wayland/ags.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | home.packages = with pkgs; [ 3 | ags 4 | bun 5 | hyprpanel 6 | ]; 7 | } 8 | -------------------------------------------------------------------------------- /modules/streamdeck.nix: -------------------------------------------------------------------------------- 1 | { 2 | #programs.streamdeck-ui = { 3 | # enable = true; 4 | # autoStart = true; 5 | #}; 6 | } 7 | -------------------------------------------------------------------------------- /home/programs/work.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | home.packages = with pkgs; [ 3 | openfortivpn 4 | microsoft-edge 5 | ]; 6 | } 7 | -------------------------------------------------------------------------------- /modules/wine.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = with pkgs; [ 3 | wineWowPackages.stable 4 | wine 5 | ]; 6 | } 7 | -------------------------------------------------------------------------------- /home/wayland/qt.nix: -------------------------------------------------------------------------------- 1 | { 2 | qt = { 3 | enable = true; 4 | platformTheme.name = "adwaita"; 5 | style.name = "adwaita-dark"; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /modules/kernel.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | boot.kernelPackages = pkgs.linuxPackages_latest; 3 | # boot.kernelParams = ["kvm.enable_virt_at_load=0"]; 4 | } 5 | -------------------------------------------------------------------------------- /modules/plex.nix: -------------------------------------------------------------------------------- 1 | {username, ...}: { 2 | services.plex = { 3 | enable = true; 4 | openFirewall = true; 5 | user = "${username}"; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /home/wayland/dunst.nix: -------------------------------------------------------------------------------- 1 | { 2 | services.dunst = { 3 | enable = true; 4 | settings = { 5 | global = { 6 | monitor = 1; 7 | }; 8 | }; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /modules/virtualization/virtualbox.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | username, 4 | ... 5 | }: { 6 | virtualisation.virtualbox.host.enable = true; 7 | users.extraGroups.vboxusers.members = ["${username}"]; 8 | } 9 | -------------------------------------------------------------------------------- /home/shells/git.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | home.packages = with pkgs; [ 3 | git 4 | ]; 5 | 6 | programs.git = { 7 | enable = true; 8 | userName = "Brian Jones"; 9 | userEmail = "bojo@bojo.wtf"; 10 | extraConfig.init.defaultBranch = "main"; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /modules/xdg.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | xdg.portal = { 3 | enable = true; 4 | xdgOpenUsePortal = true; 5 | extraPortals = with pkgs; [ 6 | xdg-desktop-portal-gtk 7 | kdePackages.xdg-desktop-portal-kde 8 | ]; 9 | wlr.enable = true; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /home/profiles/bojo/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | imports = [ 3 | ../.. 4 | ../../services/easyeffects.nix 5 | ../../programs/desktop.nix 6 | ../../programs/streamdeck.nix 7 | ../../programs/work.nix 8 | ../../terminals/kitty.nix 9 | ../../terminals/wezterm.nix 10 | ../../wayland 11 | ../../wayland/hyprland 12 | ]; 13 | } 14 | -------------------------------------------------------------------------------- /modules/steam.nix: -------------------------------------------------------------------------------- 1 | {lib, ...}: { 2 | nixpkgs.config.allowUnfreePredicate = pkg: 3 | builtins.elem (lib.getName pkg) [ 4 | "steam" 5 | "steam-original" 6 | "steam-run" 7 | "steam-runtime" 8 | ]; 9 | 10 | programs.steam = { 11 | enable = true; 12 | remotePlay.openFirewall = true; 13 | dedicatedServer.openFirewall = true; 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /hosts/wsl/default.nix: -------------------------------------------------------------------------------- 1 | {username, ...}: { 2 | imports = [ 3 | ../../modules/system.nix 4 | ../../modules/user.nix 5 | ../../modules/virtualization/docker.nix 6 | 7 | # ./hardware-configuration.nix 8 | ]; 9 | 10 | wsl.enable = true; 11 | wsl.defaultUser = "${username}"; 12 | 13 | networking.hostName = "mta-wsl"; 14 | 15 | system.stateVersion = "23.11"; 16 | } 17 | -------------------------------------------------------------------------------- /modules/virtualization/docker.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | username, 4 | ... 5 | }: { 6 | virtualisation.docker = { 7 | enable = true; 8 | rootless = { 9 | enable = true; 10 | setSocketVariable = true; 11 | }; 12 | }; 13 | environment.systemPackages = with pkgs; [ 14 | docker-compose 15 | ]; 16 | users.extraGroups.docker.members = ["${username}"]; 17 | } 18 | -------------------------------------------------------------------------------- /home/default.nix: -------------------------------------------------------------------------------- 1 | {username, ...}: { 2 | imports = [ 3 | ./editors/helix.nix 4 | ./shells 5 | ]; 6 | 7 | home.username = "${username}"; 8 | home.homeDirectory = "/home/${username}"; 9 | 10 | home.sessionPath = [ 11 | "$HOME/.local/bin" 12 | "$HOME/.cargo/bin" 13 | ]; 14 | 15 | home.stateVersion = "23.11"; 16 | 17 | programs.home-manager.enable = true; 18 | } 19 | -------------------------------------------------------------------------------- /home/shells/fish.nix: -------------------------------------------------------------------------------- 1 | { 2 | programs.fish = { 3 | enable = true; 4 | interactiveShellInit = '' 5 | set fish_greeting 6 | fastfetch 7 | ''; 8 | shellAliases = { 9 | ls = "eza"; 10 | }; 11 | #loginShellInit = '' 12 | # if test -z $DISPLAY; and test (tty) = "/dev/tty1" 13 | # dbus-run-session Hyprland 14 | # end 15 | #''; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /modules/sound.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | hardware.enableAllFirmware = true; 3 | services.pulseaudio.enable = false; 4 | #sound.enable = false; 5 | security.rtkit.enable = true; 6 | services.pipewire = { 7 | enable = true; 8 | alsa.enable = true; 9 | alsa.support32Bit = true; 10 | pulse.enable = true; 11 | wireplumber.enable = true; 12 | }; 13 | 14 | environment.systemPackages = with pkgs; [ 15 | pipewire 16 | pulseaudio 17 | ]; 18 | } 19 | -------------------------------------------------------------------------------- /modules/user.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | username, 4 | ... 5 | }: { 6 | programs.fish.enable = true; 7 | 8 | users.users."${username}" = { 9 | isNormalUser = true; 10 | extraGroups = [ 11 | "audio" 12 | "docker" 13 | "input" 14 | "libvirtd" 15 | "plugdev" 16 | "sound" 17 | "tty" 18 | "video" 19 | "wheel" 20 | ]; 21 | shell = pkgs.fish; 22 | }; 23 | 24 | nix.settings.trusted-users = ["${username}"]; 25 | } 26 | -------------------------------------------------------------------------------- /home/wayland/hyprland/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | inputs, 4 | ... 5 | }: { 6 | imports = [ 7 | ./binds.nix 8 | ./rules.nix 9 | ./settings.nix 10 | ]; 11 | 12 | home.packages = with pkgs; [ 13 | hyprpaper 14 | hyprpicker 15 | inputs.hyprland-contrib.packages.${pkgs.system}.grimblast 16 | ]; 17 | 18 | wayland.windowManager.hyprland = { 19 | enable = true; 20 | }; 21 | 22 | home.sessionVariables = { 23 | XDG_CURRENT_DESKTOP = "Hyprland"; 24 | XDG_SESSION_DESKTOP = "Hyprland"; 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /home/wayland/gtk.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | home.pointerCursor = { 3 | gtk.enable = true; 4 | package = pkgs.bibata-cursors; 5 | name = "Bibata-Modern-Classic"; 6 | size = 16; 7 | }; 8 | 9 | gtk = { 10 | enable = true; 11 | theme = { 12 | package = pkgs.flat-remix-gtk; 13 | name = "Flat-Remix-GKT-Grey-Darkest"; 14 | }; 15 | 16 | iconTheme = { 17 | package = pkgs.adwaita-icon-theme; 18 | name = "Adwaita"; 19 | }; 20 | 21 | font = { 22 | name = "Sans"; 23 | size = 11; 24 | }; 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /home/wayland/hyprland/rules.nix: -------------------------------------------------------------------------------- 1 | { 2 | wayland.windowManager.hyprland.settings = { 3 | workspace = [ 4 | "w[tv1], gapsout:10, gapsin:10" 5 | "f[1], gapsout:10, gapsin:10" 6 | "bordersize 10, floating:10, onworkspace:w[tv1]" 7 | "rounding 10, floating:10, onworkspace:w[tv1]" 8 | "bordersize 10, floating:10, onworkspace:f[1]" 9 | "rounding 10, floating:10, onworkspace:f[1]" 10 | ]; 11 | windowrulev2 = [ 12 | "workspace 6 silent,title:^(.*Discord)$" 13 | # "stayfocused,class:(steam),title:(^$)" 14 | ]; 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /home/terminals/kitty.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | home.packages = with pkgs; [ 3 | kitty 4 | ]; 5 | 6 | programs.kitty = { 7 | enable = true; 8 | font = { 9 | name = "JetBrainsMono Nerd Font"; 10 | size = 11; 11 | }; 12 | settings = { 13 | confirm_os_window_close = 0; 14 | dynamic_background_opacity = true; 15 | enable_audio_bell = false; 16 | mouse_hide_wait = "-1.0"; 17 | window_padding_width = 10; 18 | background_opacity = "0.5"; 19 | background_blur = 5; 20 | }; 21 | themeFile = "Catppuccin-Mocha"; 22 | }; 23 | } 24 | -------------------------------------------------------------------------------- /home/shells/starship.nix: -------------------------------------------------------------------------------- 1 | {config, ...}: { 2 | home.sessionVariables.STARSHIP_CACHE = "${config.xdg.cacheHome}/starship"; 3 | 4 | programs.starship = { 5 | enable = true; 6 | settings = { 7 | character = { 8 | success_symbol = "[›](bold green)"; 9 | error_symbol = "[›](bold red)"; 10 | }; 11 | 12 | git_status = { 13 | deleted = "✗"; 14 | modified = "✶"; 15 | staged = "✓"; 16 | stashed = "≡"; 17 | }; 18 | 19 | nix_shell = { 20 | symbol = " "; 21 | heuristic = true; 22 | }; 23 | }; 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /modules/greet.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | username, 4 | ... 5 | }: let 6 | tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet"; 7 | session = "${pkgs.hyprland}/bin/Hyprland"; 8 | in { 9 | services.greetd = { 10 | enable = true; 11 | settings = { 12 | initial_session = { 13 | command = "${session}"; 14 | user = "${username}"; 15 | }; 16 | default_session = { 17 | command = "${tuigreet} --greeting 'Welcome to NixOS!' --asterisks --remember --remember-user-session --time -cmd dbus-run-session ${session}"; 18 | user = "${username}"; 19 | }; 20 | }; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /home/services/easyeffects.nix: -------------------------------------------------------------------------------- 1 | { 2 | services.easyeffects = { 3 | enable = true; 4 | preset = '' 5 | { 6 | "input": { 7 | "blocklist": [], 8 | "plugins_order": [ 9 | "rnnoise#0" 10 | ], 11 | "rnnoise#0": { 12 | "bypass": false, 13 | "enable-vad": true, 14 | "input-gain": 0.0, 15 | "model-path": "", 16 | "output-gain": 0.0, 17 | "release": 20.0, 18 | "vad-thres": 30.0, 19 | "wet": 0.0 20 | } 21 | } 22 | } 23 | ''; 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /home/programs/desktop.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | home.packages = with pkgs; [ 3 | # utils 4 | # cava 5 | feh 6 | openrgb 7 | pavucontrol 8 | 9 | # browse 10 | firefox 11 | 12 | # comms 13 | (discord.override {nss = pkgs.nss_latest;}) 14 | signal-desktop 15 | 16 | # sound 17 | easyeffects 18 | 19 | # video 20 | # obs-studio 21 | 22 | # misc 23 | obsidian 24 | qbittorrent 25 | 26 | # art / dev 27 | blender 28 | godot_4 29 | unityhub 30 | 31 | # 3d printing 32 | bambu-studio 33 | ]; 34 | 35 | home.sessionVariables = { 36 | BROWSER = "firefox"; 37 | QT_QPA_PLATFORM = "xcb"; # obs studio 38 | }; 39 | } 40 | -------------------------------------------------------------------------------- /modules/system.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | lib, 4 | ... 5 | }: { 6 | nixpkgs.config.allowUnfree = lib.mkDefault true; 7 | nixpkgs.config.permittedInsecurePackages = [ 8 | "libsoup-2.74.3" 9 | ]; 10 | 11 | nix.settings.experimental-features = ["nix-command" "flakes"]; 12 | 13 | i18n.defaultLocale = "en_US.UTF-8"; 14 | time.timeZone = "America/Anchorage"; 15 | 16 | # Allow for quick ephemeral edits 17 | environment.etc.hosts.mode = "0644"; 18 | 19 | nix.gc = { 20 | automatic = lib.mkDefault true; 21 | dates = lib.mkDefault "weekly"; 22 | options = lib.mkDefault "--delete-older-than 7d"; 23 | }; 24 | 25 | environment.systemPackages = with pkgs; [ 26 | cachix 27 | curl 28 | git 29 | wget 30 | ]; 31 | 32 | environment.localBinInPath = true; 33 | } 34 | -------------------------------------------------------------------------------- /home/terminals/wezterm.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | home.packages = with pkgs; [ 3 | wezterm 4 | ]; 5 | 6 | programs.wezterm = { 7 | enable = true; 8 | extraConfig = '' 9 | local wezterm = require 'wezterm' 10 | local config = {} 11 | 12 | if wezterm.config_builder then 13 | config = wezterm.config_builder() 14 | end 15 | 16 | config.color_scheme = 'nord' 17 | config.enable_tab_bar = false 18 | config.font_size = 10.5 19 | config.text_background_opacity = 0.5 20 | config.window_background_opacity = 0.5 21 | config.window_padding = { 22 | left = 30, 23 | right = 30, 24 | top = 20, 25 | bottom = 20, 26 | } 27 | 28 | config.enable_wayland = true 29 | 30 | return config 31 | ''; 32 | }; 33 | } 34 | -------------------------------------------------------------------------------- /home/wayland/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | nix-colors, 4 | ... 5 | }: { 6 | imports = [ 7 | # ./ags.nix 8 | ./dunst.nix 9 | ./waybar.nix 10 | ./wofi.nix 11 | ./gtk.nix 12 | ./qt.nix 13 | nix-colors.homeManagerModules.default 14 | ]; 15 | 16 | colorScheme = nix-colors.colorSchemes.catppuccin-mocha; 17 | 18 | home.packages = with pkgs; [ 19 | # wayland 20 | grim 21 | libnotify 22 | mpvpaper 23 | slurp 24 | swww 25 | swayidle 26 | waybar 27 | waypaper 28 | wl-clipboard 29 | wofi 30 | ydotool 31 | ]; 32 | 33 | home.sessionVariables = { 34 | # SDL_VIDEODRIVER = "wayland"; 35 | WLR_RENDERER = "vulkan"; 36 | XDG_SESSION_TYPE = "wayland"; 37 | GTK_USE_PORTAL = "1"; 38 | NIXOS_XDG_OPEN_USE_PORTAL = "1"; 39 | }; 40 | } 41 | -------------------------------------------------------------------------------- /modules/openrgb.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: let 2 | no-rgb = pkgs.writeScriptBin "no-rgb" '' 3 | #!/bin/sh 4 | NUM_DEVICES=$(${pkgs.openrgb}/bin/openrgb --noautoconnect --list-devices | grep -E '^[0-9]+: ' | wc -l) 5 | 6 | for i in $(seq 0 $(($NUM_DEVICES - 1))); do 7 | ${pkgs.openrgb}/bin/openrgb --noautoconnect --device $i --mode static --color 000000 8 | done 9 | ''; 10 | in { 11 | config = { 12 | services.udev.packages = [pkgs.openrgb]; 13 | #boot.kernelModules = [ "i2c-dev" "i2c-piix4" ]; 14 | hardware.i2c.enable = true; 15 | 16 | systemd.services.no-rgb = { 17 | description = "no-rgb"; 18 | serviceConfig = { 19 | ExecStart = "${no-rgb}/bin/no-rgb"; 20 | Type = "oneshot"; 21 | }; 22 | wantedBy = ["multi-user.target"]; 23 | }; 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /modules/virtualization/general.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = with pkgs; [ 3 | qemu 4 | # quickemu 5 | spice 6 | spice-gtk 7 | virt-manager 8 | virt-viewer 9 | win-virtio 10 | win-spice 11 | 12 | edk2 13 | swtpm 14 | ]; 15 | 16 | virtualisation.libvirtd = { 17 | enable = true; 18 | onBoot = "ignore"; 19 | onShutdown = "shutdown"; 20 | 21 | qemu = { 22 | ovmf = { 23 | enable = true; 24 | packages = [ 25 | (pkgs.OVMFFull.override 26 | { 27 | secureBoot = true; 28 | tpmSupport = true; 29 | }) 30 | .fd 31 | ]; 32 | }; 33 | swtpm.enable = true; 34 | runAsRoot = false; 35 | }; 36 | }; 37 | programs.virt-manager.enable = true; 38 | } 39 | -------------------------------------------------------------------------------- /home/shells/default.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | imports = [ 3 | ./fastfetch.nix 4 | ./fish.nix 5 | ./git.nix 6 | ./starship.nix 7 | ]; 8 | 9 | home.packages = with pkgs; [ 10 | # compression 11 | unzip 12 | zip 13 | 14 | # dev 15 | devenv 16 | 17 | # utils 18 | alsa-utils 19 | duf 20 | fd 21 | fzf 22 | jq 23 | mplayer 24 | ripgrep 25 | socat 26 | usbutils 27 | xdg-utils 28 | 29 | # cli 30 | bat 31 | btop 32 | eza 33 | 34 | # fonts 35 | fira-code 36 | fira-code-symbols 37 | font-awesome 38 | iosevka 39 | nerd-fonts.droid-sans-mono 40 | noto-fonts 41 | noto-fonts-emoji 42 | powerline-fonts 43 | powerline-symbols 44 | ]; 45 | 46 | home.sessionVariables = { 47 | FZF_DEFAULT_COMMAND = "rg --files --hidden"; 48 | }; 49 | } 50 | -------------------------------------------------------------------------------- /hosts/bruh/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | imports = [ 3 | ../../modules/greet.nix 4 | ../../modules/kernel.nix 5 | #../../modules/openrgb.nix 6 | ../../modules/plex.nix 7 | ../../modules/sound.nix 8 | ../../modules/steam.nix 9 | ../../modules/streamdeck.nix 10 | ../../modules/system.nix 11 | ../../modules/udev.nix 12 | ../../modules/user.nix 13 | #../../modules/virtualization/docker.nix 14 | ../../modules/virtualization/general.nix 15 | #../../modules/virtualization/virtualbox.nix 16 | ../../modules/wine.nix 17 | ../../modules/xdg.nix 18 | 19 | ./hardware-configuration.nix 20 | ]; 21 | 22 | boot.loader.systemd-boot.enable = true; 23 | boot.loader.efi.canTouchEfiVariables = true; 24 | boot.kernelModules = ["i2c-dev" "i2c-piix4"]; 25 | 26 | networking.hostName = "bruh"; 27 | 28 | fileSystems."/mnt/data0" = { 29 | device = "192.168.1.96:/mnt/data0"; 30 | fsType = "nfs"; 31 | options = ["x-systemd.automount" "noauto"]; 32 | }; 33 | 34 | programs.dconf.enable = true; 35 | 36 | system.stateVersion = "23.11"; 37 | } 38 | -------------------------------------------------------------------------------- /home/wayland/wofi.nix: -------------------------------------------------------------------------------- 1 | {config, ...}: { 2 | programs.wofi = { 3 | enable = true; 4 | style = '' 5 | window { 6 | margin: 0px; 7 | border: 1px solid #${config.colorScheme.palette.base07}; 8 | background-color: #${config.colorScheme.palette.base03}; 9 | } 10 | 11 | #input { 12 | margin: 5px; 13 | border: none; 14 | color: #${config.colorScheme.palette.base04}; 15 | background-color: #${config.colorScheme.palette.base00}; 16 | } 17 | 18 | #inner-box { 19 | margin: 5px; 20 | border: none; 21 | background-color: #${config.colorScheme.palette.base01}; 22 | } 23 | 24 | #outer-box { 25 | margin: 5px; 26 | border: none; 27 | background-color: #${config.colorScheme.palette.base02}; 28 | } 29 | 30 | #scroll { 31 | margin: 0px; 32 | border: none; 33 | } 34 | 35 | #text { 36 | margin: 5px; 37 | border: none; 38 | color: #${config.colorScheme.palette.base06}; 39 | } 40 | 41 | #entry:selected { 42 | color: #${config.colorScheme.palette.base0F}; 43 | background-color: #${config.colorScheme.palette.base0D}; 44 | } 45 | ''; 46 | }; 47 | } 48 | -------------------------------------------------------------------------------- /home/editors/helix.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | inputs, 4 | ... 5 | }: { 6 | home.packages = with pkgs; [ 7 | alejandra 8 | nil 9 | zig 10 | zls 11 | ]; 12 | 13 | programs.helix = { 14 | enable = true; 15 | package = inputs.helix.packages.${pkgs.system}.helix; 16 | defaultEditor = true; 17 | settings = { 18 | theme = "ao-trans"; 19 | }; 20 | themes = { 21 | nord-trans = { 22 | inherits = "nord"; 23 | "ui.background" = "none"; 24 | }; 25 | ao-trans = { 26 | inherits = "ao"; 27 | "ui.background" = "none"; 28 | }; 29 | }; 30 | languages = { 31 | language = [ 32 | { 33 | name = "nix"; 34 | auto-format = true; 35 | formatter = { 36 | command = "${pkgs.alejandra}/bin/alejandra"; 37 | }; 38 | } 39 | { 40 | name = "markdown"; 41 | soft-wrap.enable = true; 42 | } 43 | ]; 44 | language-server.fsharp = { 45 | command = "${pkgs.fsautocomplete}/bin/fsautocomplete"; 46 | }; 47 | language-server.zig = { 48 | command = "${pkgs.zls}/bin/zls"; 49 | }; 50 | }; 51 | }; 52 | 53 | home.sessionVariables = { 54 | VISUAL = "hx"; 55 | }; 56 | } 57 | -------------------------------------------------------------------------------- /data/50-zsa.rules: -------------------------------------------------------------------------------- 1 | # Rules for Oryx web flashing and live training 2 | KERNEL=="hidraw*", ATTRS{idVendor}=="16c0", MODE="0664", GROUP="plugdev" 3 | KERNEL=="hidraw*", ATTRS{idVendor}=="3297", MODE="0664", GROUP="plugdev" 4 | 5 | # Legacy rules for live training over webusb (Not needed for firmware v21+) 6 | # Rule for all ZSA keyboards 7 | SUBSYSTEM=="usb", ATTR{idVendor}=="3297", GROUP="plugdev" 8 | # Rule for the Moonlander 9 | SUBSYSTEM=="usb", ATTR{idVendor}=="3297", ATTR{idProduct}=="1969", GROUP="plugdev" 10 | # Rule for the Ergodox EZ 11 | SUBSYSTEM=="usb", ATTR{idVendor}=="feed", ATTR{idProduct}=="1307", GROUP="plugdev" 12 | # Rule for the Planck EZ 13 | SUBSYSTEM=="usb", ATTR{idVendor}=="feed", ATTR{idProduct}=="6060", GROUP="plugdev" 14 | 15 | # Wally Flashing rules for the Ergodox EZ 16 | ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", ENV{ID_MM_DEVICE_IGNORE}="1" 17 | ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789A]?", ENV{MTP_NO_PROBE}="1" 18 | SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789ABCD]?", MODE:="0666" 19 | KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", MODE:="0666" 20 | 21 | # Keymapp / Wally Flashing rules for the Moonlander and Planck EZ 22 | SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666", SYMLINK+="stm32_dfu" 23 | # Keymapp Flashing rules for the Voyager 24 | SUBSYSTEMS=="usb", ATTRS{idVendor}=="3297", MODE:="0666", SYMLINK+="ignition_dfu" 25 | -------------------------------------------------------------------------------- /hosts/bruh/hardware-configuration.nix: -------------------------------------------------------------------------------- 1 | # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 | # and may be overwritten by future invocations. Please make changes 3 | # to /etc/nixos/configuration.nix instead. 4 | { config, lib, pkgs, modulesPath, ... }: 5 | 6 | { 7 | imports = 8 | [ (modulesPath + "/installer/scan/not-detected.nix") 9 | ]; 10 | 11 | boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; 12 | boot.initrd.kernelModules = [ ]; 13 | boot.kernelModules = [ "kvm-amd" ]; 14 | boot.extraModulePackages = [ ]; 15 | 16 | fileSystems."/" = 17 | { device = "/dev/disk/by-uuid/9f8684cb-5a6c-4ab8-a9c3-f1401e63e4bc"; 18 | fsType = "ext4"; 19 | }; 20 | 21 | fileSystems."/boot" = 22 | { device = "/dev/disk/by-uuid/4C15-5AC1"; 23 | fsType = "vfat"; 24 | options = [ "fmask=0077" "dmask=0077" ]; 25 | }; 26 | 27 | swapDevices = 28 | [ { device = "/dev/disk/by-uuid/de8b5811-524f-45cf-8abf-92ba7429e780"; } 29 | ]; 30 | 31 | # Enables DHCP on each ethernet and wireless interface. In case of scripted networking 32 | # (the default) this is the recommended approach. When using systemd-networkd it's 33 | # still possible to use this option, but it's recommended to use it in conjunction 34 | # with explicit per-interface declarations with `networking.interfaces..useDHCP`. 35 | networking.useDHCP = lib.mkDefault true; 36 | # networking.interfaces.enp4s0.useDHCP = lib.mkDefault true; 37 | # networking.interfaces.enp5s0.useDHCP = lib.mkDefault true; 38 | # networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true; 39 | 40 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 41 | hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 42 | } 43 | -------------------------------------------------------------------------------- /home/wayland/hyprland/binds.nix: -------------------------------------------------------------------------------- 1 | let 2 | workspaces = builtins.concatLists (builtins.genList ( 3 | x: let 4 | ws = let 5 | c = (x + 1) / 10; 6 | in 7 | builtins.toString (x + 1 - (c * 10)); 8 | in [ 9 | "$mod, F${ws}, workspace, ${toString (x + 1)}" 10 | "$mod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}" 11 | ] 12 | ) 13 | 10); 14 | in { 15 | wayland.windowManager.hyprland.settings = { 16 | bindm = [ 17 | "$mod, mouse:272, movewindow" 18 | "$mod, mouse:273, resizewindow" 19 | ]; 20 | 21 | bind = 22 | [ 23 | "$mod, RETURN, exec, kitty" 24 | # "$mod, D, exec, wofi -f --show run --lines=5 --prompt=\"\"" 25 | "$mod, D, exec, wofi -f --show=drun --lines=5 --prompt=\"\"" 26 | "$mod SHIFT, D, exec, grimblast copy area" 27 | "$mod SHIFT, F, exec, grimblast copysave output ~/.screenshots/$(date +'%s_hypr.png')" 28 | "$mod SHIFT, G, exec, grimblast copy active" 29 | "$mod CTRL, P, exec, swayidle timeout 2 'sleep 1; hyprctl dispatcher dpms off' resume 'hyprctl dispatcher dpms on & pkill swayidle'" 30 | 31 | "$mod SHIFT, Q, killactive," 32 | "$mod CTRL, E, exit," 33 | "$mod, SPACE, togglesplit," 34 | "$mod, F, fullscreen" 35 | "$mod, V, togglefloating," 36 | "$mod, P, pseudo," 37 | 38 | "$mod, H, movefocus, l" 39 | "$mod, L, movefocus, r" 40 | "$mod, K, movefocus, u" 41 | "$mod, J, movefocus, d" 42 | 43 | "$mod SHIFT, H, movewindow, l" 44 | "$mod SHIFT, L, movewindow, r" 45 | "$mod SHIFT, K, movewindow, u" 46 | "$mod SHIFT, J, movewindow, d" 47 | 48 | "$mod ALT, H, resizeactive, -10 0" 49 | "$mod ALT, L, resizeactive, 10 0" 50 | "$mod ALT, K, resizeactive, 0 -10" 51 | "$mod ALT, J, resizeactive, 0 10" 52 | 53 | "$mod, E, togglegroup" 54 | "$mod SHIFT, E, lockactivegroup, toggle" 55 | "$mod, TAB, changegroupactive, f" 56 | "$mod SHIFT, TAB, changegroupactive, b" 57 | "$mod CTRL, L, moveoutofgroup, r" 58 | "$mod CTRL, H, moveoutofgroup, l" 59 | 60 | "$mod, Prior, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" 61 | "$mod, Next, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" 62 | ] 63 | ++ workspaces; 64 | }; 65 | } 66 | -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- 1 | { 2 | description = "bojo's NixOS Flake"; 3 | 4 | inputs = { 5 | nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 6 | nixos-wsl = { 7 | url = "github:nix-community/NixOS-WSL"; 8 | inputs.nixpkgs.follows = "nixpkgs"; 9 | }; 10 | 11 | ags = { 12 | url = "github:Aylur/ags"; 13 | }; 14 | helix = { 15 | url = "github:helix-editor/helix"; 16 | inputs.nixpkgs.follows = "nixpkgs"; 17 | }; 18 | home-manager = { 19 | url = "github:nix-community/home-manager"; 20 | inputs.nixpkgs.follows = "nixpkgs"; 21 | }; 22 | hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; 23 | hyprpaper.url = "github:hyprwm/hyprpaper"; 24 | hyprland-contrib.url = "github:hyprwm/contrib"; 25 | rust-overlay = { 26 | url = "github:oxalica/rust-overlay"; 27 | inputs.nixpkgs.follows = "nixpkgs"; 28 | }; 29 | 30 | nix-colors.url = "github:misterio77/nix-colors"; 31 | }; 32 | 33 | outputs = inputs @ { 34 | self, 35 | nixpkgs, 36 | nixos-wsl, 37 | nix-colors, 38 | home-manager, 39 | hyprland, 40 | hyprpaper, 41 | hyprland-contrib, 42 | ... 43 | }: let 44 | system = "x86_64-linux"; 45 | username = "bojo"; 46 | in { 47 | nixosConfigurations = { 48 | "bruh" = nixpkgs.lib.nixosSystem { 49 | inherit system; 50 | specialArgs = { 51 | inherit inputs; 52 | inherit username; 53 | }; 54 | modules = [ 55 | ./hosts/bruh 56 | home-manager.nixosModules.home-manager 57 | { 58 | home-manager.useGlobalPkgs = true; 59 | home-manager.useUserPackages = true; 60 | home-manager.users."${username}" = import ./home/profiles/bojo; 61 | home-manager.extraSpecialArgs = { 62 | inherit inputs; 63 | inherit nix-colors; 64 | inherit username; 65 | }; 66 | } 67 | hyprland.nixosModules.default 68 | { 69 | programs.hyprland.enable = true; 70 | } 71 | ]; 72 | }; 73 | "wsl" = nixpkgs.lib.nixosSystem { 74 | inherit system; 75 | specialArgs = { 76 | inherit inputs; 77 | inherit username; 78 | }; 79 | modules = [ 80 | ./hosts/wsl 81 | nixos-wsl.nixosModules.wsl 82 | home-manager.nixosModules.home-manager 83 | { 84 | home-manager.useGlobalPkgs = true; 85 | home-manager.useUserPackages = true; 86 | home-manager.users."${username}" = import ./home/profiles/wsl; 87 | home-manager.extraSpecialArgs = { 88 | inherit inputs; 89 | inherit username; 90 | }; 91 | } 92 | ]; 93 | }; 94 | }; 95 | }; 96 | } 97 | -------------------------------------------------------------------------------- /home/shells/fastfetch.nix: -------------------------------------------------------------------------------- 1 | { 2 | programs.fastfetch = { 3 | enable = true; 4 | settings = { 5 | logo = { 6 | type = "kitty-direct"; 7 | source = "~/.config/fastfetch/eldritch.png"; 8 | padding = { 9 | right = 10; 10 | top = 6; 11 | }; 12 | }; 13 | general = { 14 | multithreading = true; 15 | }; 16 | display = { 17 | separator = "➜ "; 18 | }; 19 | modules = [ 20 | { 21 | type = "title"; 22 | format = " {6}{7}{8}"; 23 | } 24 | { 25 | type = "custom"; 26 | format = "┌──────────────────────────────────────────────────────────────────────────────┐"; 27 | } 28 | { 29 | key = "  OS "; 30 | keyColor = "green"; 31 | type = "os"; 32 | } 33 | { 34 | key = " 󰌢 Machine "; 35 | keyColor = "cyan"; 36 | type = "host"; 37 | } 38 | { 39 | key = "  Kernel "; 40 | keyColor = "blue"; 41 | type = "kernel"; 42 | } 43 | { 44 | key = " 󰅐 Uptime "; 45 | keyColor = "green"; 46 | type = "uptime"; 47 | } 48 | { 49 | key = "  Packages "; 50 | keyColor = "cyan"; 51 | type = "packages"; 52 | } 53 | { 54 | key = "  WM "; 55 | keyColor = "blue"; 56 | type = "wm"; 57 | } 58 | { 59 | key = "  Shell "; 60 | keyColor = "green"; 61 | type = "shell"; 62 | } 63 | { 64 | key = "  Terminal "; 65 | keyColor = "cyan"; 66 | type = "terminal"; 67 | } 68 | { 69 | key = "  Font "; 70 | keyColor = "blue"; 71 | type = "terminalfont"; 72 | } 73 | { 74 | key = " 󰻠 CPU "; 75 | keyColor = "green"; 76 | type = "cpu"; 77 | } 78 | { 79 | key = " 󰍛 GPU "; 80 | keyColor = "cyan"; 81 | type = "gpu"; 82 | } 83 | { 84 | key = " 󰑭 Memory "; 85 | keyColor = "blue"; 86 | type = "memory"; 87 | } 88 | { 89 | key = "  Wifi "; 90 | keyColor = "green"; 91 | type = "wifi"; 92 | } 93 | { 94 | key = " 󰩟 Local IP "; 95 | keyColor = "cyan"; 96 | type = "localip"; 97 | compact = true; 98 | } 99 | { 100 | type = "custom"; 101 | format = "└──────────────────────────────────────────────────────────────────────────────┘"; 102 | } 103 | { 104 | type = "colors"; 105 | paddingLeft = 34; 106 | symbol = "circle"; 107 | block = { 108 | width = 10; 109 | }; 110 | } 111 | ]; 112 | }; 113 | }; 114 | } 115 | -------------------------------------------------------------------------------- /home/wayland/hyprland/settings.nix: -------------------------------------------------------------------------------- 1 | {config, ...}: { 2 | wayland.windowManager.hyprland.settings = { 3 | "$mod" = "SUPER"; 4 | 5 | monitor = [ 6 | "DP-1,1920x1080@240,0x0,1" 7 | "DP-3,1920x1080@240,1920x0,1" 8 | ]; 9 | 10 | workspace = [ 11 | "1,monitor:DP-1,default:true" 12 | "2,monitor:DP-1" 13 | "3,monitor:DP-1" 14 | "4,monitor:DP-1" 15 | "5,monitor:DP-1" 16 | 17 | "6,monitor:DP-3,default:true" 18 | "7,monitor:DP-3" 19 | "8,monitor:DP-3" 20 | "9,monitor:DP-3" 21 | "10,monitor:DP-3" 22 | ]; 23 | 24 | exec-once = [ 25 | "dunst" 26 | "waybar" 27 | "hyprpaper" 28 | 29 | "[workspace 1 silent] firefox" 30 | "[workspace 6 silent] discord" 31 | "[workspace 6 silent] kitty btop" 32 | "[workspace 10 silent] qbittorrent" 33 | 34 | "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" 35 | ]; 36 | 37 | input = { 38 | kb_layout = "us"; 39 | follow_mouse = 1; 40 | touchpad = { 41 | natural_scroll = false; 42 | }; 43 | sensitivity = -0.5; 44 | repeat_delay = 200; 45 | repeat_rate = 50; 46 | }; 47 | 48 | misc = { 49 | key_press_enables_dpms = true; 50 | disable_hyprland_logo = true; 51 | disable_splash_rendering = true; 52 | background_color = "rgb(${config.colorScheme.palette.base01})"; 53 | }; 54 | 55 | general = { 56 | gaps_in = 5; 57 | gaps_out = 20; 58 | border_size = 2; 59 | "col.active_border" = "rgba(${config.colorScheme.palette.base08}ee) rgba(${config.colorScheme.palette.base0A}ee) 45deg"; 60 | "col.inactive_border" = "rgba(${config.colorScheme.palette.base03}aa)"; 61 | layout = "dwindle"; 62 | }; 63 | 64 | #cursor = { 65 | # inactive_timeout = 2; 66 | # no_warps = true; 67 | #}; 68 | 69 | group = { 70 | "col.border_active" = "rgba(${config.colorScheme.palette.base07}ee) rgba(${config.colorScheme.palette.base0F}ee) 45deg"; 71 | "col.border_inactive" = "rgba(${config.colorScheme.palette.base0E}aa)"; 72 | groupbar = { 73 | height = 2; 74 | render_titles = false; 75 | "col.active" = "rgba(${config.colorScheme.palette.base0F}ee) rgba(${config.colorScheme.palette.base07}ee) 45deg"; 76 | "col.inactive" = "rgba(aaaaaaee)"; 77 | }; 78 | }; 79 | 80 | decoration = { 81 | rounding = 10; 82 | blur = { 83 | enabled = true; 84 | brightness = 0.5; 85 | contrast = 1.0; 86 | noise = 0.2; 87 | size = 5; 88 | passes = 3; 89 | }; 90 | shadow = { 91 | enabled = true; 92 | ignore_window = true; 93 | offset = "0 2"; 94 | range = 10; 95 | render_power = 2; 96 | # "col.shadow" = "rgba(${config.colorScheme.palette.base0D}dd)"; 97 | }; 98 | }; 99 | 100 | animations = { 101 | enabled = true; 102 | }; 103 | 104 | dwindle = { 105 | pseudotile = true; 106 | preserve_split = true; 107 | force_split = 2; 108 | }; 109 | 110 | master = { 111 | mfact = 0.3; 112 | }; 113 | 114 | gestures = { 115 | workspace_swipe = false; 116 | }; 117 | 118 | ecosystem = { 119 | no_update_news = true; 120 | no_donation_nag = true; 121 | }; 122 | }; 123 | } 124 | -------------------------------------------------------------------------------- /home/wayland/waybar.nix: -------------------------------------------------------------------------------- 1 | {config, ...}: { 2 | programs.waybar = { 3 | enable = true; 4 | settings = { 5 | mainBar = { 6 | layer = "top"; 7 | position = "left"; 8 | margin-top = 8; 9 | margin-bottom = 8; 10 | margin-left = 8; 11 | reload_style_on_change = true; 12 | modules-left = ["hyprland/workspaces"]; 13 | modules-center = ["clock#date" "clock#time"]; 14 | modules-right = ["pulseaudio/slider" "pulseaudio#percentage"]; 15 | "hyprland/workspaces" = { 16 | on-click = "activate"; 17 | format = "{icon}"; 18 | format-icons = { 19 | "1" = "1"; 20 | "2" = "2"; 21 | "3" = "3"; 22 | "4" = "4"; 23 | "5" = "5"; 24 | "6" = "6"; 25 | "7" = "7"; 26 | "8" = "8"; 27 | "9" = "9"; 28 | "10" = "0"; 29 | }; 30 | persistent-workspaces = { 31 | "*" = 5; 32 | }; 33 | }; 34 | "clock#date" = { 35 | format = "{:%a %B %d}"; 36 | tooltip-format = "{:%Y %B}\n{calendar}"; 37 | rotate = 270; 38 | }; 39 | "clock#time" = { 40 | format = "{:%I:%M}"; 41 | }; 42 | "pulseaudio" = { 43 | format = "{icon}"; 44 | format-bluetooth = "{icon}"; 45 | format-muted = ""; 46 | format-icons = { 47 | headphones = ""; 48 | default = [""]; 49 | }; 50 | scroll-step = 1; 51 | on-click = "pavucontrol"; 52 | }; 53 | "pulseaudio#percentage" = { 54 | on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle"; 55 | format = "{volume}%"; 56 | }; 57 | "pulseaudio/slider" = { 58 | min = 0; 59 | max = 100; 60 | orientation = "vertical"; 61 | }; 62 | }; 63 | }; 64 | style = '' 65 | @define-color mainbg #${config.colorScheme.palette.base00}; 66 | @define-color modulesbg #${config.colorScheme.palette.base01}; 67 | @define-color text #${config.colorScheme.palette.base05}; 68 | @define-color alttext1 #${config.colorScheme.palette.base0C}; 69 | @define-color alttext2 #${config.colorScheme.palette.base05}; 70 | @define-color border #${config.colorScheme.palette.base0E}; 71 | @define-color empty #${config.colorScheme.palette.base02}; 72 | @define-color persistent #${config.colorScheme.palette.base04}; 73 | @define-color hover #${config.colorScheme.palette.base09}; 74 | @define-color white #${config.colorScheme.palette.base05}; 75 | @define-color red #${config.colorScheme.palette.base08}; 76 | @define-color orange #${config.colorScheme.palette.base09}; 77 | @define-color yellow #${config.colorScheme.palette.base0A}; 78 | @define-color green #${config.colorScheme.palette.base0B}; 79 | 80 | * { 81 | all: initial; 82 | font-family:'JetBrainsMono Nerd Font'; 83 | padding-left: 1px; 84 | padding-right: 1px; 85 | } 86 | 87 | window#waybar { 88 | background: @mainbg; 89 | border: 1px solid @border; 90 | border-radius: 5px; 91 | } 92 | 93 | tooltip { 94 | background: #${config.colorScheme.palette.base03}; 95 | border: 2px solid #${config.colorScheme.palette.base0C}; 96 | border-radius: 5px; 97 | font-size: 12pt; 98 | } 99 | 100 | tooltip label { 101 | padding: 10px; 102 | } 103 | 104 | #workspaces { 105 | margin: 10px 0px; 106 | background: @modulesbg; 107 | font-size: 12pt; 108 | padding: 20px 0px; 109 | border-top:3px solid @border; 110 | border-top-left-radius: 50px; 111 | border-top-right-radius: 5px; 112 | border-bottom: 3px solid @border; 113 | border-bottom-right-radius: 50px; 114 | border-bottom-left-radius: 5px; 115 | } 116 | 117 | #workspaces button { 118 | font-size: 18pt; 119 | padding: 2px; 120 | margin: 5px 6px; 121 | border-radius: 10px; 122 | } 123 | 124 | #workspaces button.persistent { 125 | background-color: @persistent; 126 | } 127 | 128 | #workspaces button.empty { 129 | background-color: @empty; 130 | } 131 | 132 | #workspaces button.visible { 133 | background-color: @empty; 134 | } 135 | 136 | #workspaces button.active { 137 | background-color: @green; 138 | } 139 | 140 | #workspaces button.urgent { 141 | background-color: @red; 142 | } 143 | 144 | #workspaces button:hover { 145 | background-color: @hover; 146 | } 147 | 148 | #pulseaudio, #clock, #clock.date, #clock.time { 149 | background: @modulesbg; 150 | } 151 | 152 | #pulseaudio { 153 | padding: 1px 5px 1px 5px; 154 | color: @text; 155 | font-size: 16px; 156 | } 157 | 158 | #clock.date { 159 | padding: 30px 5px 10px 5px; 160 | font-size: 14px; 161 | color: @alttext2; 162 | border-top:3px solid @border; 163 | border-top-left-radius: 50px; 164 | border-top-right-radius: 5px; 165 | } 166 | 167 | #clock.time { 168 | padding: 10px 5px 30px 5px; 169 | font-size: 14px; 170 | color: @alttext1; 171 | border-bottom: 3px solid @border; 172 | border-bottom-left-radius: 5px; 173 | border-bottom-right-radius: 50px; 174 | } 175 | 176 | #pulseaudio-slider, #pulseaudio.percentage { 177 | background-color: @modulesbg; 178 | } 179 | 180 | #pulseaudio-slider { 181 | padding: 15px 0px 5px 0px; 182 | border-top: 3px solid @border; 183 | border-top-left-radius: 50px; 184 | border-top-right-radius: 5px; 185 | } 186 | #pulseaudio-slider slider { 187 | min-height: 0px; 188 | min-width: 1px; 189 | opacity: 0; 190 | background-image: none; 191 | border: none; 192 | box-shadow: none; 193 | } 194 | #pulseaudio-slider trough { 195 | min-height: 70px; 196 | min-width: 0px; 197 | border-radius: 5px; 198 | background-color: @border; 199 | } 200 | #pulseaudio-slider highlight { 201 | min-width: 10px; 202 | border-radius: 5px; 203 | background-color: @white; 204 | } 205 | 206 | #pulseaudio.percentage { 207 | font-size: 12px; 208 | margin: 0px 0px; 209 | padding: 2px 5px; 210 | color: @text; 211 | } 212 | ''; 213 | }; 214 | } 215 | -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- 1 | { 2 | "nodes": { 3 | "ags": { 4 | "inputs": { 5 | "astal": "astal", 6 | "gnim": "gnim", 7 | "nixpkgs": "nixpkgs" 8 | }, 9 | "locked": { 10 | "lastModified": 1752328525, 11 | "narHash": "sha256-0aaVFLQxY1dKIS5jzwhbO847yIdr3U0o2heUzC5iat4=", 12 | "owner": "Aylur", 13 | "repo": "ags", 14 | "rev": "2eb3ea54311b0f7ba9d333d661d12cda1ed5507e", 15 | "type": "github" 16 | }, 17 | "original": { 18 | "owner": "Aylur", 19 | "repo": "ags", 20 | "type": "github" 21 | } 22 | }, 23 | "aquamarine": { 24 | "inputs": { 25 | "hyprutils": [ 26 | "hyprland", 27 | "hyprutils" 28 | ], 29 | "hyprwayland-scanner": [ 30 | "hyprland", 31 | "hyprwayland-scanner" 32 | ], 33 | "nixpkgs": [ 34 | "hyprland", 35 | "nixpkgs" 36 | ], 37 | "systems": [ 38 | "hyprland", 39 | "systems" 40 | ] 41 | }, 42 | "locked": { 43 | "lastModified": 1752743471, 44 | "narHash": "sha256-4izhj1j7J4mE8LgljCXSIUDculqOsxxhdoC81VhqizM=", 45 | "owner": "hyprwm", 46 | "repo": "aquamarine", 47 | "rev": "e31b575d19e7cf8a8f4398e2f9cffe27a1332506", 48 | "type": "github" 49 | }, 50 | "original": { 51 | "owner": "hyprwm", 52 | "repo": "aquamarine", 53 | "type": "github" 54 | } 55 | }, 56 | "astal": { 57 | "inputs": { 58 | "nixpkgs": [ 59 | "ags", 60 | "nixpkgs" 61 | ] 62 | }, 63 | "locked": { 64 | "lastModified": 1751126708, 65 | "narHash": "sha256-AodIKw7TmI7rHVcOfEsO82stupMYIMVQeLAUQfVxnkU=", 66 | "owner": "aylur", 67 | "repo": "astal", 68 | "rev": "ac90f09385a2295da9fdc108aaba4a317aaeacc7", 69 | "type": "github" 70 | }, 71 | "original": { 72 | "owner": "aylur", 73 | "repo": "astal", 74 | "type": "github" 75 | } 76 | }, 77 | "base16-schemes": { 78 | "flake": false, 79 | "locked": { 80 | "lastModified": 1696158499, 81 | "narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=", 82 | "owner": "tinted-theming", 83 | "repo": "base16-schemes", 84 | "rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a", 85 | "type": "github" 86 | }, 87 | "original": { 88 | "owner": "tinted-theming", 89 | "repo": "base16-schemes", 90 | "type": "github" 91 | } 92 | }, 93 | "flake-compat": { 94 | "flake": false, 95 | "locked": { 96 | "lastModified": 1696426674, 97 | "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 98 | "owner": "edolstra", 99 | "repo": "flake-compat", 100 | "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 101 | "type": "github" 102 | }, 103 | "original": { 104 | "owner": "edolstra", 105 | "repo": "flake-compat", 106 | "type": "github" 107 | } 108 | }, 109 | "flake-compat_2": { 110 | "flake": false, 111 | "locked": { 112 | "lastModified": 1747046372, 113 | "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", 114 | "owner": "edolstra", 115 | "repo": "flake-compat", 116 | "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", 117 | "type": "github" 118 | }, 119 | "original": { 120 | "owner": "edolstra", 121 | "repo": "flake-compat", 122 | "type": "github" 123 | } 124 | }, 125 | "gitignore": { 126 | "inputs": { 127 | "nixpkgs": [ 128 | "hyprland", 129 | "pre-commit-hooks", 130 | "nixpkgs" 131 | ] 132 | }, 133 | "locked": { 134 | "lastModified": 1709087332, 135 | "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", 136 | "owner": "hercules-ci", 137 | "repo": "gitignore.nix", 138 | "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", 139 | "type": "github" 140 | }, 141 | "original": { 142 | "owner": "hercules-ci", 143 | "repo": "gitignore.nix", 144 | "type": "github" 145 | } 146 | }, 147 | "gnim": { 148 | "flake": false, 149 | "locked": { 150 | "lastModified": 1751928958, 151 | "narHash": "sha256-vQY2L+Hnp6F1MHFa3UbMft1goGw3iODI5M+96Z7P+9Q=", 152 | "owner": "aylur", 153 | "repo": "gnim", 154 | "rev": "9bffa83f52f711b13e3c139454623a9aea4f5552", 155 | "type": "github" 156 | }, 157 | "original": { 158 | "owner": "aylur", 159 | "repo": "gnim", 160 | "type": "github" 161 | } 162 | }, 163 | "helix": { 164 | "inputs": { 165 | "nixpkgs": [ 166 | "nixpkgs" 167 | ], 168 | "rust-overlay": "rust-overlay" 169 | }, 170 | "locked": { 171 | "lastModified": 1753800056, 172 | "narHash": "sha256-m3Me2ksbMPsC5HBmetqTpix3tLgJlwMdcMi+XiRpcxo=", 173 | "owner": "helix-editor", 174 | "repo": "helix", 175 | "rev": "f0be627dcb5b9f780a4bfa6ae012370d7c41d3be", 176 | "type": "github" 177 | }, 178 | "original": { 179 | "owner": "helix-editor", 180 | "repo": "helix", 181 | "type": "github" 182 | } 183 | }, 184 | "home-manager": { 185 | "inputs": { 186 | "nixpkgs": [ 187 | "nixpkgs" 188 | ] 189 | }, 190 | "locked": { 191 | "lastModified": 1753825287, 192 | "narHash": "sha256-axdksEaJBRj6PReTwpOILL6sgvvCsOPGPy32FnFFSMo=", 193 | "owner": "nix-community", 194 | "repo": "home-manager", 195 | "rev": "4bf124678be14242e916f4dec2596158900780d4", 196 | "type": "github" 197 | }, 198 | "original": { 199 | "owner": "nix-community", 200 | "repo": "home-manager", 201 | "type": "github" 202 | } 203 | }, 204 | "hyprcursor": { 205 | "inputs": { 206 | "hyprlang": [ 207 | "hyprland", 208 | "hyprlang" 209 | ], 210 | "nixpkgs": [ 211 | "hyprland", 212 | "nixpkgs" 213 | ], 214 | "systems": [ 215 | "hyprland", 216 | "systems" 217 | ] 218 | }, 219 | "locked": { 220 | "lastModified": 1749155331, 221 | "narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=", 222 | "owner": "hyprwm", 223 | "repo": "hyprcursor", 224 | "rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80", 225 | "type": "github" 226 | }, 227 | "original": { 228 | "owner": "hyprwm", 229 | "repo": "hyprcursor", 230 | "type": "github" 231 | } 232 | }, 233 | "hyprgraphics": { 234 | "inputs": { 235 | "hyprutils": [ 236 | "hyprland", 237 | "hyprutils" 238 | ], 239 | "nixpkgs": [ 240 | "hyprland", 241 | "nixpkgs" 242 | ], 243 | "systems": [ 244 | "hyprland", 245 | "systems" 246 | ] 247 | }, 248 | "locked": { 249 | "lastModified": 1752149140, 250 | "narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=", 251 | "owner": "hyprwm", 252 | "repo": "hyprgraphics", 253 | "rev": "340494a38b5ec453dfc542c6226481f736cc8a9a", 254 | "type": "github" 255 | }, 256 | "original": { 257 | "owner": "hyprwm", 258 | "repo": "hyprgraphics", 259 | "type": "github" 260 | } 261 | }, 262 | "hyprgraphics_2": { 263 | "inputs": { 264 | "hyprutils": [ 265 | "hyprpaper", 266 | "hyprutils" 267 | ], 268 | "nixpkgs": [ 269 | "hyprpaper", 270 | "nixpkgs" 271 | ], 272 | "systems": [ 273 | "hyprpaper", 274 | "systems" 275 | ] 276 | }, 277 | "locked": { 278 | "lastModified": 1750621377, 279 | "narHash": "sha256-8u6b5oAdX0rCuoR8wFenajBRmI+mzbpNig6hSCuWUzE=", 280 | "owner": "hyprwm", 281 | "repo": "hyprgraphics", 282 | "rev": "b3d628d01693fb9bb0a6690cd4e7b80abda04310", 283 | "type": "github" 284 | }, 285 | "original": { 286 | "owner": "hyprwm", 287 | "repo": "hyprgraphics", 288 | "type": "github" 289 | } 290 | }, 291 | "hyprland": { 292 | "inputs": { 293 | "aquamarine": "aquamarine", 294 | "hyprcursor": "hyprcursor", 295 | "hyprgraphics": "hyprgraphics", 296 | "hyprland-protocols": "hyprland-protocols", 297 | "hyprland-qtutils": "hyprland-qtutils", 298 | "hyprlang": "hyprlang", 299 | "hyprutils": "hyprutils", 300 | "hyprwayland-scanner": "hyprwayland-scanner", 301 | "nixpkgs": "nixpkgs_2", 302 | "pre-commit-hooks": "pre-commit-hooks", 303 | "systems": "systems", 304 | "xdph": "xdph" 305 | }, 306 | "locked": { 307 | "lastModified": 1753819175, 308 | "narHash": "sha256-vRutdaXC7ByH9Tol5ozE2NwoXoGZSEG7oTVyx4aEHsQ=", 309 | "ref": "refs/heads/main", 310 | "rev": "43966cc787c4a8844ac1e7affaadeedde8f4cc60", 311 | "revCount": 6322, 312 | "submodules": true, 313 | "type": "git", 314 | "url": "https://github.com/hyprwm/Hyprland" 315 | }, 316 | "original": { 317 | "submodules": true, 318 | "type": "git", 319 | "url": "https://github.com/hyprwm/Hyprland" 320 | } 321 | }, 322 | "hyprland-contrib": { 323 | "inputs": { 324 | "nixpkgs": "nixpkgs_3" 325 | }, 326 | "locked": { 327 | "lastModified": 1753252360, 328 | "narHash": "sha256-PFAJoEqQWMlo1J+yZb+4HixmhbRVmmNl58e/AkLYDDI=", 329 | "owner": "hyprwm", 330 | "repo": "contrib", 331 | "rev": "6839b23345b71db17cd408373de4f5605bf589b8", 332 | "type": "github" 333 | }, 334 | "original": { 335 | "owner": "hyprwm", 336 | "repo": "contrib", 337 | "type": "github" 338 | } 339 | }, 340 | "hyprland-protocols": { 341 | "inputs": { 342 | "nixpkgs": [ 343 | "hyprland", 344 | "nixpkgs" 345 | ], 346 | "systems": [ 347 | "hyprland", 348 | "systems" 349 | ] 350 | }, 351 | "locked": { 352 | "lastModified": 1749046714, 353 | "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", 354 | "owner": "hyprwm", 355 | "repo": "hyprland-protocols", 356 | "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", 357 | "type": "github" 358 | }, 359 | "original": { 360 | "owner": "hyprwm", 361 | "repo": "hyprland-protocols", 362 | "type": "github" 363 | } 364 | }, 365 | "hyprland-qt-support": { 366 | "inputs": { 367 | "hyprlang": [ 368 | "hyprland", 369 | "hyprland-qtutils", 370 | "hyprlang" 371 | ], 372 | "nixpkgs": [ 373 | "hyprland", 374 | "hyprland-qtutils", 375 | "nixpkgs" 376 | ], 377 | "systems": [ 378 | "hyprland", 379 | "hyprland-qtutils", 380 | "systems" 381 | ] 382 | }, 383 | "locked": { 384 | "lastModified": 1749154592, 385 | "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", 386 | "owner": "hyprwm", 387 | "repo": "hyprland-qt-support", 388 | "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", 389 | "type": "github" 390 | }, 391 | "original": { 392 | "owner": "hyprwm", 393 | "repo": "hyprland-qt-support", 394 | "type": "github" 395 | } 396 | }, 397 | "hyprland-qtutils": { 398 | "inputs": { 399 | "hyprland-qt-support": "hyprland-qt-support", 400 | "hyprlang": [ 401 | "hyprland", 402 | "hyprlang" 403 | ], 404 | "hyprutils": [ 405 | "hyprland", 406 | "hyprland-qtutils", 407 | "hyprlang", 408 | "hyprutils" 409 | ], 410 | "nixpkgs": [ 411 | "hyprland", 412 | "nixpkgs" 413 | ], 414 | "systems": [ 415 | "hyprland", 416 | "systems" 417 | ] 418 | }, 419 | "locked": { 420 | "lastModified": 1750371812, 421 | "narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=", 422 | "owner": "hyprwm", 423 | "repo": "hyprland-qtutils", 424 | "rev": "b13c7481e37856f322177010bdf75fccacd1adc8", 425 | "type": "github" 426 | }, 427 | "original": { 428 | "owner": "hyprwm", 429 | "repo": "hyprland-qtutils", 430 | "type": "github" 431 | } 432 | }, 433 | "hyprlang": { 434 | "inputs": { 435 | "hyprutils": [ 436 | "hyprland", 437 | "hyprutils" 438 | ], 439 | "nixpkgs": [ 440 | "hyprland", 441 | "nixpkgs" 442 | ], 443 | "systems": [ 444 | "hyprland", 445 | "systems" 446 | ] 447 | }, 448 | "locked": { 449 | "lastModified": 1750371198, 450 | "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=", 451 | "owner": "hyprwm", 452 | "repo": "hyprlang", 453 | "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b", 454 | "type": "github" 455 | }, 456 | "original": { 457 | "owner": "hyprwm", 458 | "repo": "hyprlang", 459 | "type": "github" 460 | } 461 | }, 462 | "hyprlang_2": { 463 | "inputs": { 464 | "hyprutils": [ 465 | "hyprpaper", 466 | "hyprutils" 467 | ], 468 | "nixpkgs": [ 469 | "hyprpaper", 470 | "nixpkgs" 471 | ], 472 | "systems": [ 473 | "hyprpaper", 474 | "systems" 475 | ] 476 | }, 477 | "locked": { 478 | "lastModified": 1750371198, 479 | "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=", 480 | "owner": "hyprwm", 481 | "repo": "hyprlang", 482 | "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b", 483 | "type": "github" 484 | }, 485 | "original": { 486 | "owner": "hyprwm", 487 | "repo": "hyprlang", 488 | "type": "github" 489 | } 490 | }, 491 | "hyprpaper": { 492 | "inputs": { 493 | "hyprgraphics": "hyprgraphics_2", 494 | "hyprlang": "hyprlang_2", 495 | "hyprutils": "hyprutils_2", 496 | "hyprwayland-scanner": "hyprwayland-scanner_2", 497 | "nixpkgs": "nixpkgs_4", 498 | "systems": "systems_2" 499 | }, 500 | "locked": { 501 | "lastModified": 1753650307, 502 | "narHash": "sha256-RWoyEsZubtOVIkavip2T2KHTMATYS6nNXmaEqScjNjU=", 503 | "owner": "hyprwm", 504 | "repo": "hyprpaper", 505 | "rev": "86f6217029c6b9c6dfba306ffeb59a817508387e", 506 | "type": "github" 507 | }, 508 | "original": { 509 | "owner": "hyprwm", 510 | "repo": "hyprpaper", 511 | "type": "github" 512 | } 513 | }, 514 | "hyprutils": { 515 | "inputs": { 516 | "nixpkgs": [ 517 | "hyprland", 518 | "nixpkgs" 519 | ], 520 | "systems": [ 521 | "hyprland", 522 | "systems" 523 | ] 524 | }, 525 | "locked": { 526 | "lastModified": 1752252310, 527 | "narHash": "sha256-06i1pIh6wb+sDeDmWlzuPwIdaFMxLlj1J9I5B9XqSeo=", 528 | "owner": "hyprwm", 529 | "repo": "hyprutils", 530 | "rev": "bcabcbada90ed2aacb435dc09b91001819a6dc82", 531 | "type": "github" 532 | }, 533 | "original": { 534 | "owner": "hyprwm", 535 | "repo": "hyprutils", 536 | "type": "github" 537 | } 538 | }, 539 | "hyprutils_2": { 540 | "inputs": { 541 | "nixpkgs": [ 542 | "hyprpaper", 543 | "nixpkgs" 544 | ], 545 | "systems": [ 546 | "hyprpaper", 547 | "systems" 548 | ] 549 | }, 550 | "locked": { 551 | "lastModified": 1750371096, 552 | "narHash": "sha256-JB1IeJ41y7kWc/dPGV6RMcCUM0Xj2NEK26A2Ap7EM9c=", 553 | "owner": "hyprwm", 554 | "repo": "hyprutils", 555 | "rev": "38f3a211657ce82a1123bf19402199b67a410f08", 556 | "type": "github" 557 | }, 558 | "original": { 559 | "owner": "hyprwm", 560 | "repo": "hyprutils", 561 | "type": "github" 562 | } 563 | }, 564 | "hyprwayland-scanner": { 565 | "inputs": { 566 | "nixpkgs": [ 567 | "hyprland", 568 | "nixpkgs" 569 | ], 570 | "systems": [ 571 | "hyprland", 572 | "systems" 573 | ] 574 | }, 575 | "locked": { 576 | "lastModified": 1751897909, 577 | "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=", 578 | "owner": "hyprwm", 579 | "repo": "hyprwayland-scanner", 580 | "rev": "fcca0c61f988a9d092cbb33e906775014c61579d", 581 | "type": "github" 582 | }, 583 | "original": { 584 | "owner": "hyprwm", 585 | "repo": "hyprwayland-scanner", 586 | "type": "github" 587 | } 588 | }, 589 | "hyprwayland-scanner_2": { 590 | "inputs": { 591 | "nixpkgs": [ 592 | "hyprpaper", 593 | "nixpkgs" 594 | ], 595 | "systems": [ 596 | "hyprpaper", 597 | "systems" 598 | ] 599 | }, 600 | "locked": { 601 | "lastModified": 1750371869, 602 | "narHash": "sha256-lGk4gLjgZQ/rndUkzmPYcgbHr8gKU5u71vyrjnwfpB4=", 603 | "owner": "hyprwm", 604 | "repo": "hyprwayland-scanner", 605 | "rev": "aa38edd6e3e277ae6a97ea83a69261a5c3aab9fd", 606 | "type": "github" 607 | }, 608 | "original": { 609 | "owner": "hyprwm", 610 | "repo": "hyprwayland-scanner", 611 | "type": "github" 612 | } 613 | }, 614 | "nix-colors": { 615 | "inputs": { 616 | "base16-schemes": "base16-schemes", 617 | "nixpkgs-lib": "nixpkgs-lib" 618 | }, 619 | "locked": { 620 | "lastModified": 1707825078, 621 | "narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=", 622 | "owner": "misterio77", 623 | "repo": "nix-colors", 624 | "rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1", 625 | "type": "github" 626 | }, 627 | "original": { 628 | "owner": "misterio77", 629 | "repo": "nix-colors", 630 | "type": "github" 631 | } 632 | }, 633 | "nixos-wsl": { 634 | "inputs": { 635 | "flake-compat": "flake-compat_2", 636 | "nixpkgs": [ 637 | "nixpkgs" 638 | ] 639 | }, 640 | "locked": { 641 | "lastModified": 1753704990, 642 | "narHash": "sha256-5E14xuNWy2Un1nFR55k68hgbnD8U2x/rE5DXJtYKusw=", 643 | "owner": "nix-community", 644 | "repo": "NixOS-WSL", 645 | "rev": "58c814cc6d4a789191f9c12e18277107144b0c91", 646 | "type": "github" 647 | }, 648 | "original": { 649 | "owner": "nix-community", 650 | "repo": "NixOS-WSL", 651 | "type": "github" 652 | } 653 | }, 654 | "nixpkgs": { 655 | "locked": { 656 | "lastModified": 1751792365, 657 | "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", 658 | "owner": "nixos", 659 | "repo": "nixpkgs", 660 | "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", 661 | "type": "github" 662 | }, 663 | "original": { 664 | "owner": "nixos", 665 | "ref": "nixos-unstable", 666 | "repo": "nixpkgs", 667 | "type": "github" 668 | } 669 | }, 670 | "nixpkgs-lib": { 671 | "locked": { 672 | "lastModified": 1697935651, 673 | "narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=", 674 | "owner": "nix-community", 675 | "repo": "nixpkgs.lib", 676 | "rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902", 677 | "type": "github" 678 | }, 679 | "original": { 680 | "owner": "nix-community", 681 | "repo": "nixpkgs.lib", 682 | "type": "github" 683 | } 684 | }, 685 | "nixpkgs_2": { 686 | "locked": { 687 | "lastModified": 1752687322, 688 | "narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=", 689 | "owner": "NixOS", 690 | "repo": "nixpkgs", 691 | "rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251", 692 | "type": "github" 693 | }, 694 | "original": { 695 | "owner": "NixOS", 696 | "ref": "nixos-unstable", 697 | "repo": "nixpkgs", 698 | "type": "github" 699 | } 700 | }, 701 | "nixpkgs_3": { 702 | "locked": { 703 | "lastModified": 1712163089, 704 | "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", 705 | "owner": "NixOS", 706 | "repo": "nixpkgs", 707 | "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", 708 | "type": "github" 709 | }, 710 | "original": { 711 | "owner": "NixOS", 712 | "ref": "nixos-unstable", 713 | "repo": "nixpkgs", 714 | "type": "github" 715 | } 716 | }, 717 | "nixpkgs_4": { 718 | "locked": { 719 | "lastModified": 1750365781, 720 | "narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=", 721 | "owner": "NixOS", 722 | "repo": "nixpkgs", 723 | "rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54", 724 | "type": "github" 725 | }, 726 | "original": { 727 | "owner": "NixOS", 728 | "ref": "nixos-unstable", 729 | "repo": "nixpkgs", 730 | "type": "github" 731 | } 732 | }, 733 | "nixpkgs_5": { 734 | "locked": { 735 | "lastModified": 1753694789, 736 | "narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=", 737 | "owner": "NixOS", 738 | "repo": "nixpkgs", 739 | "rev": "dc9637876d0dcc8c9e5e22986b857632effeb727", 740 | "type": "github" 741 | }, 742 | "original": { 743 | "owner": "NixOS", 744 | "ref": "nixos-unstable", 745 | "repo": "nixpkgs", 746 | "type": "github" 747 | } 748 | }, 749 | "pre-commit-hooks": { 750 | "inputs": { 751 | "flake-compat": "flake-compat", 752 | "gitignore": "gitignore", 753 | "nixpkgs": [ 754 | "hyprland", 755 | "nixpkgs" 756 | ] 757 | }, 758 | "locked": { 759 | "lastModified": 1750779888, 760 | "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", 761 | "owner": "cachix", 762 | "repo": "git-hooks.nix", 763 | "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", 764 | "type": "github" 765 | }, 766 | "original": { 767 | "owner": "cachix", 768 | "repo": "git-hooks.nix", 769 | "type": "github" 770 | } 771 | }, 772 | "root": { 773 | "inputs": { 774 | "ags": "ags", 775 | "helix": "helix", 776 | "home-manager": "home-manager", 777 | "hyprland": "hyprland", 778 | "hyprland-contrib": "hyprland-contrib", 779 | "hyprpaper": "hyprpaper", 780 | "nix-colors": "nix-colors", 781 | "nixos-wsl": "nixos-wsl", 782 | "nixpkgs": "nixpkgs_5", 783 | "rust-overlay": "rust-overlay_2" 784 | } 785 | }, 786 | "rust-overlay": { 787 | "inputs": { 788 | "nixpkgs": [ 789 | "helix", 790 | "nixpkgs" 791 | ] 792 | }, 793 | "locked": { 794 | "lastModified": 1740623427, 795 | "narHash": "sha256-3SdPQrZoa4odlScFDUHd4CUPQ/R1gtH4Mq9u8CBiK8M=", 796 | "owner": "oxalica", 797 | "repo": "rust-overlay", 798 | "rev": "d342e8b5fd88421ff982f383c853f0fc78a847ab", 799 | "type": "github" 800 | }, 801 | "original": { 802 | "owner": "oxalica", 803 | "repo": "rust-overlay", 804 | "type": "github" 805 | } 806 | }, 807 | "rust-overlay_2": { 808 | "inputs": { 809 | "nixpkgs": [ 810 | "nixpkgs" 811 | ] 812 | }, 813 | "locked": { 814 | "lastModified": 1753757591, 815 | "narHash": "sha256-3okLvry8fRWZhJZP75pPC9P6U1dcu84VOCPhPLXYozI=", 816 | "owner": "oxalica", 817 | "repo": "rust-overlay", 818 | "rev": "b372cf71b4125d420d7648cbd898ab8f5c355be2", 819 | "type": "github" 820 | }, 821 | "original": { 822 | "owner": "oxalica", 823 | "repo": "rust-overlay", 824 | "type": "github" 825 | } 826 | }, 827 | "systems": { 828 | "locked": { 829 | "lastModified": 1689347949, 830 | "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", 831 | "owner": "nix-systems", 832 | "repo": "default-linux", 833 | "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", 834 | "type": "github" 835 | }, 836 | "original": { 837 | "owner": "nix-systems", 838 | "repo": "default-linux", 839 | "type": "github" 840 | } 841 | }, 842 | "systems_2": { 843 | "locked": { 844 | "lastModified": 1689347949, 845 | "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", 846 | "owner": "nix-systems", 847 | "repo": "default-linux", 848 | "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", 849 | "type": "github" 850 | }, 851 | "original": { 852 | "owner": "nix-systems", 853 | "repo": "default-linux", 854 | "type": "github" 855 | } 856 | }, 857 | "xdph": { 858 | "inputs": { 859 | "hyprland-protocols": [ 860 | "hyprland", 861 | "hyprland-protocols" 862 | ], 863 | "hyprlang": [ 864 | "hyprland", 865 | "hyprlang" 866 | ], 867 | "hyprutils": [ 868 | "hyprland", 869 | "hyprutils" 870 | ], 871 | "hyprwayland-scanner": [ 872 | "hyprland", 873 | "hyprwayland-scanner" 874 | ], 875 | "nixpkgs": [ 876 | "hyprland", 877 | "nixpkgs" 878 | ], 879 | "systems": [ 880 | "hyprland", 881 | "systems" 882 | ] 883 | }, 884 | "locked": { 885 | "lastModified": 1751300244, 886 | "narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=", 887 | "owner": "hyprwm", 888 | "repo": "xdg-desktop-portal-hyprland", 889 | "rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a", 890 | "type": "github" 891 | }, 892 | "original": { 893 | "owner": "hyprwm", 894 | "repo": "xdg-desktop-portal-hyprland", 895 | "type": "github" 896 | } 897 | } 898 | }, 899 | "root": "root", 900 | "version": 7 901 | } 902 | --------------------------------------------------------------------------------