commit 74d15b4c6a3cb728fded96cde92c2609f042cc84 Author: benstrb Date: Mon Nov 10 19:57:23 2025 +0100 1st commit diff --git a/assets/bocchi/bocchi.txt b/assets/bocchi/bocchi.txt new file mode 100755 index 0000000..4219581 --- /dev/null +++ b/assets/bocchi/bocchi.txt @@ -0,0 +1,15 @@ +     β–„β–„β–€β–€β–€β–€β–€β–€β–€β–€β–€β–„β–„           +   β–„β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–„     + β–„β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–„  +β–„β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€ +β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€ β–€β–€ +  β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€     +  β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€     +  β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–„    +   β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€    +    β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€    +    β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€    +    β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€     +     β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€      +       β–€β–€β–€β–€β–€β–€β–€β–€β–€             +      β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€            diff --git a/assets/bocchi/bocchi_pfp.webp b/assets/bocchi/bocchi_pfp.webp new file mode 100644 index 0000000..f705ea0 Binary files /dev/null and b/assets/bocchi/bocchi_pfp.webp differ diff --git a/assets/wallpaper/bocchi-band-not-playing.png b/assets/wallpaper/bocchi-band-not-playing.png new file mode 100755 index 0000000..b9c8595 Binary files /dev/null and b/assets/wallpaper/bocchi-band-not-playing.png differ diff --git a/assets/wallpaper/bocchi-blue-guitar-solo.png b/assets/wallpaper/bocchi-blue-guitar-solo.png new file mode 100755 index 0000000..c338667 Binary files /dev/null and b/assets/wallpaper/bocchi-blue-guitar-solo.png differ diff --git a/assets/wallpaper/bocchi-green-ish.png b/assets/wallpaper/bocchi-green-ish.png new file mode 100755 index 0000000..a2f1775 Binary files /dev/null and b/assets/wallpaper/bocchi-green-ish.png differ diff --git a/assets/wallpaper/bocchi-light-guitar.png b/assets/wallpaper/bocchi-light-guitar.png new file mode 100755 index 0000000..effd3a4 Binary files /dev/null and b/assets/wallpaper/bocchi-light-guitar.png differ diff --git a/assets/wallpaper/bocchi-lockscreen.png b/assets/wallpaper/bocchi-lockscreen.png new file mode 100644 index 0000000..735d5db Binary files /dev/null and b/assets/wallpaper/bocchi-lockscreen.png differ diff --git a/configuration/configuration.nix b/configuration/configuration.nix new file mode 100755 index 0000000..2b4da5f --- /dev/null +++ b/configuration/configuration.nix @@ -0,0 +1,177 @@ +# 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, + inputs, + ... +}: { + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ./disk.nix + ./sddm.nix + inputs.home-manager.nixosModules.default + ]; + + hardware.graphics = { + enable = true; + }; + + nix.settings.experimental-features = ["nix-command" "flakes"]; + + # Nvidia set-up + services.xserver.videoDrivers = ["nvidia"]; + + hardware.nvidia = { + modesetting.enable = true; + powerManagement.enable = false; + powerManagement.finegrained = false; + open = false; + nvidiaSettings = true; + package = config.boot.kernelPackages.nvidiaPackages.legacy_470; + }; + + # Enable the X11 + services.xserver.enable = true; + xdg.portal = { + enable = true; + extraPortals = [pkgs.xdg-desktop-portal-gtk]; + configPackages = with pkgs; [ + xdg-desktop-portal-gtk + ]; + }; + + # Bootloader. + boot = { + kernelPackages = pkgs.linuxPackages_6_6; + + loader.grub = { + enable = true; + device = "/dev/sda"; + useOSProber = true; + milk-theme.enable = true; + gfxmodeBios = "1680x1050"; + gfxpayloadBios = "keep"; + }; + }; + + networking = { + hostName = "benag"; + networkmanager.enable = true; + }; + + time.timeZone = "Europe/Prague"; + + i18n = { + defaultLocale = "en_US.UTF-8"; + + extraLocaleSettings = { + LC_ADDRESS = "cs_CZ.UTF-8"; + LC_IDENTIFICATION = "cs_CZ.UTF-8"; + LC_MEASUREMENT = "cs_CZ.UTF-8"; + LC_MONETARY = "cs_CZ.UTF-8"; + LC_NAME = "cs_CZ.UTF-8"; + LC_NUMERIC = "cs_CZ.UTF-8"; + LC_PAPER = "cs_CZ.UTF-8"; + LC_TELEPHONE = "cs_CZ.UTF-8"; + LC_TIME = "cs_CZ.UTF-8"; + }; + }; + + services = { + printing.enable = true; + printing.browsing = true; + printing.defaultShared = true; + printing.drivers = [pkgs.hplip pkgs.gutenprint]; + pulseaudio.enable = false; + + avahi = { + enable = true; + nssmdns4 = true; + openFirewall = true; + }; + + pipewire = { + enable = true; + pulse.enable = true; + + alsa = { + enable = true; + support32Bit = true; + }; + }; + + xserver = { + windowManager.bspwm.enable = true; + + xkb = { + layout = "cz"; + variant = ""; + options = "caps:escape"; + }; + }; + }; + + console.keyMap = "cz-lat2"; + + security.rtkit.enable = true; + + users.defaultUserShell = pkgs.zsh; + programs.zsh.enable = true; + + users.users.benag = { + isNormalUser = true; + description = "Ben Ag"; + extraGroups = ["networkmanager" "wheel"]; + }; + + home-manager = { + extraSpecialArgs = {inherit inputs;}; + }; + + programs.firefox.enable = true; + programs.dconf.enable = true; + programs.steam.enable = true; + programs.nix-ld.enable = true; + + nixpkgs.config.allowUnfree = true; + nixpkgs.config.nvidia.acceptLicense = true; + + environment.systemPackages = with pkgs; [ + bspwm + feh + mumble + sxhkd + polybar + kitty + home-manager + git + go + kdePackages.dolphin + openfortivpn + man-pages + man-pages-posix + ]; + + fonts.packages = with pkgs; [ + nerd-fonts.fira-code + ]; + + # 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; + # }; + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + system.activationScripts.cleanBackups = '' + echo "Removing.backup_nix files..." + find /home/benag -type f -name "*.backup_nix" -delete + ''; + system.stateVersion = "25.05"; +} diff --git a/configuration/disk.nix b/configuration/disk.nix new file mode 100644 index 0000000..df68de6 --- /dev/null +++ b/configuration/disk.nix @@ -0,0 +1,12 @@ +{ + fileSystems."/mnt/removable" = { + device = "/dev/disk/by-uuid/1a899f03-4c6a-460a-9635-c4b208b29fba"; + fsType = "ext4"; + options = [ + "nofail" + "users" + "rw" + "exec" + ]; + }; +} diff --git a/configuration/hardware-configuration.nix b/configuration/hardware-configuration.nix new file mode 100644 index 0000000..a65c199 --- /dev/null +++ b/configuration/hardware-configuration.nix @@ -0,0 +1,35 @@ +# Do not modify this file! It was generated by β€˜nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "ata_generic" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/484ccde0-f6a7-4217-a9ad-98d975cddbc9"; + fsType = "ext4"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/3f695248-688d-4d1b-90ff-352252af7bce"; } + ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.eno1.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp0s26u1u1.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/configuration/sddm.nix b/configuration/sddm.nix new file mode 100644 index 0000000..919f74a --- /dev/null +++ b/configuration/sddm.nix @@ -0,0 +1,48 @@ +/* +{pkgs, ...}: let + image = ../assets/wallpaper/bocchi-lockscreen.png; +in + pkgs.stdenv.mkDerivation { + name = "sddm"; + src = pkgs.fetchFromGitHub { + owner = "rototrash"; + repo = "tokyo-night-sddm"; + rev = "320c8e74ade1e94f640708eee0b9a75a395697c6"; + sha256 = "sha256-JRVVzyefqR2L3UrEK2iWyhUKfPMUNUnfRZmwdz05wL0="; + }; + installPhase = '' + mkdir -p $out + cp -R ./* $out/ + cd $out/ + [ -f Backgrounds/win11.png ] && rm Backgrounds/win11.png + cp -r ${image} $out/Backgrounds/win11.png + ''; + } +*/ +{pkgs, ...}: let + sddm-astronaut = pkgs.sddm-astronaut.override { + embeddedTheme = "pixel_sakura_static"; + }; +in { + services.displayManager = { + sddm = { + package = pkgs.kdePackages.sddm; + extraPackages = with pkgs.kdePackages; [ + # sddm-astronaut + qtsvg + qtmultimedia + qtvirtualkeyboard + ]; + enable = true; + wayland.enable = false; + autoNumlock = true; + enableHidpi = false; + theme = "sddm-astronaut-theme"; + }; + }; + environment.systemPackages = [sddm-astronaut]; + # Prevent getting stuck at shutdown + systemd.settings.Manager = { + DefaultTimeoutStopSec = "10s"; + }; +} diff --git a/flake.lock b/flake.lock new file mode 100755 index 0000000..41adb2f --- /dev/null +++ b/flake.lock @@ -0,0 +1,496 @@ +{ + "nodes": { + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1746562888, + "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1622559957, + "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1752979451, + "narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "27cf1e66e50abc622fb76a3019012dc07c678fac", + "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": 1748383148, + "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1751685974, + "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", + "ref": "refs/heads/main", + "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", + "revCount": 92, + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + }, + "original": { + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nvf", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1754487366, + "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1751413152, + "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", + "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": { + "lastModified": 1748186689, + "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0", + "type": "github" + }, + "original": { + "owner": "GNOME", + "ref": "48.2", + "repo": "gnome-shell", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1754886238, + "narHash": "sha256-LTQomWOwG70lZR+78ZYSZ9sYELWNq3HJ7/tdHzfif/s=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "0d492b89d1993579e63b9dbdaed17fd7824834da", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "milk-grub-theme": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1750807146, + "narHash": "sha256-5Fv5IFm32HxyP77pY6VkuD+NPE3A0RS7OMTM0HtGK38=", + "owner": "gemakfy", + "repo": "MilkGrub", + "rev": "d455a655a0058ce0962d40f9c0160c934246745a", + "type": "github" + }, + "original": { + "owner": "gemakfy", + "repo": "MilkGrub", + "type": "github" + } + }, + "mnw": { + "locked": { + "lastModified": 1748710831, + "narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=", + "owner": "Gerg-L", + "repo": "mnw", + "rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "mnw", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1750605355, + "narHash": "sha256-xT8cPLTxlktxI9vSdoBlAVK7dXgd8IK59j7ZwzkkhnI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3078b9a9e75f1790e6d6ef9955fdc6a2d1740cc6", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1754725699, + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1754800730, + "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "641d909c4a7538f1539da9240dedb1755c907e40", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1751792365, + "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nur": { + "inputs": { + "flake-parts": [ + "stylix", + "flake-parts" + ], + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1751906969, + "narHash": "sha256-BSQAOdPnzdpOuCdAGSJmefSDlqmStFNScEnrWzSqKPw=", + "owner": "nix-community", + "repo": "NUR", + "rev": "ddb679f4131e819efe3bbc6457ba19d7ad116f25", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "nvf": { + "inputs": { + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "mnw": "mnw", + "nixpkgs": "nixpkgs_3", + "systems": "systems" + }, + "locked": { + "lastModified": 1754832356, + "narHash": "sha256-CHWUy7FY1icSQnvTNv+9ty6VFjBNDyb3gD8hHhVEZ9Y=", + "owner": "notashelf", + "repo": "nvf", + "rev": "1681ad703470e784156ce3461d92d18492c5baef", + "type": "github" + }, + "original": { + "owner": "notashelf", + "repo": "nvf", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "milk-grub-theme": "milk-grub-theme", + "nixpkgs": "nixpkgs_2", + "nvf": "nvf", + "stylix": "stylix" + } + }, + "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_4", + "nur": "nur", + "systems": "systems_2", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1754851076, + "narHash": "sha256-k3+/24lN6E9BFRhryHocm7314t0Wtku0hgIdEWi15XI=", + "owner": "danth", + "repo": "stylix", + "rev": "afcfed6fd2a51615cd63aa7fa7608d670e7b61e5", + "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" + } + }, + "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": 1750770351, + "narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "5a775c6ffd6e6125947b393872cde95867d85a2a", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1751159871, + "narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "bded5e24407cec9d01bd47a317d15b9223a1546c", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1751158968, + "narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "86a470d94204f7652b906ab0d378e4231a5b3384", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100755 index 0000000..02a8d79 --- /dev/null +++ b/flake.nix @@ -0,0 +1,50 @@ +{ + description = "Nixos config flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + home-manager.url = "github:nix-community/home-manager"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + + nvf.url = "github:notashelf/nvf"; + stylix.url = "github:danth/stylix"; + + milk-grub-theme.url = "github:gemakfy/MilkGrub"; + }; + + outputs = inputs @ { + self, + nixpkgs, + ... + }: { + nixosConfigurations = { + benag = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = {inherit inputs;}; + modules = [ + ./configuration/configuration.nix + inputs.stylix.nixosModules.stylix + + { + home-manager.sharedModules = [ + inputs.stylix.homeModules.stylix + ]; + } + + inputs.home-manager.nixosModules.default + + inputs.milk-grub-theme.nixosModule + + { + home-manager = { + backupFileExtension = "backup_nix"; + useUserPackages = true; + useGlobalPkgs = true; + users.benag = ./home/home.nix; + }; + } + ]; + }; + }; + }; +} diff --git a/home/home.nix b/home/home.nix new file mode 100755 index 0000000..3a47dfd --- /dev/null +++ b/home/home.nix @@ -0,0 +1,46 @@ +{pkgs, ...}: { + home.username = "benag"; + home.homeDirectory = "/home/benag"; + + imports = [ + ./modules/nvf.nix + ./modules/zellij.nix + ./modules/rofi.nix + ./modules/picom.nix + ./modules/kitty.nix + ./modules/git.nix + ./modules/zsh.nix + ./modules/stylix.nix + ./modules/fastfetch.nix + ./modules/bspwm.nix + ./modules/sxhkd.nix + ]; + + home.stateVersion = "25.05"; + + home.packages = [ + pkgs.htop + pkgs.fortune + pkgs.bat + pkgs.brave + pkgs.discord + pkgs.heroic + pkgs.pavucontrol + pkgs.superfile + pkgs.libresprite + pkgs.scrot + pkgs.gcc + pkgs.gnumake + pkgs.prismlauncher + ]; + + programs.home-manager.enable = true; + + xsession = { + enable = true; + initExtra = '' + xrandr --output DVI-D-0 --mode 1920x1080 --pos 0x0 --primary + xrandr --output HDMI-0 --mode 1680x1050 --pos 1920x0 + ''; + }; +} diff --git a/home/modules/bspwm.nix b/home/modules/bspwm.nix new file mode 100755 index 0000000..931b30f --- /dev/null +++ b/home/modules/bspwm.nix @@ -0,0 +1,20 @@ +{ + xsession.windowManager.bspwm = { + enable = true; + + settings = { + focus_follows_pointer = true; + pointer_follows_focus = true; + pointer_follows_monitor = true; + }; + + startupPrograms = [ + "sxhkd" + "polybar" + ]; + + extraConfig = '' + feh --bg-fill "/home/benag/.nix-config/assets/wallpaper/bocchi-light-guitar.png" + ''; + }; +} diff --git a/home/modules/fastfetch.nix b/home/modules/fastfetch.nix new file mode 100755 index 0000000..9fb8f4c --- /dev/null +++ b/home/modules/fastfetch.nix @@ -0,0 +1,112 @@ +{pkgs, ...}: { + home.packages = [pkgs.fastfetch]; + + programs.fastfetch = { + enable = true; + + settings = { + logo = { + source = "/home/benag/.nix-config/assets/bocchi/bocchi.txt"; + padding = { + top = 1; + left = 1; + }; + }; + + display = { + separator = " -> "; + }; + + modules = [ + "break" + { + type = "custom"; + format = "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€Hardware──────────────────────┐"; + } + { + type = "title"; + key = " PC"; + keyColor = "green"; + } + { + type = "disk"; + key = "β”‚ β”œο’‰"; + device = "/dev/sdb"; + keyColor = "green"; + } + + { + type = "cpu"; + key = "β”‚ β”œο’Ό"; + keyColor = "green"; + } + { + type = "gpu"; + key = "β”‚ β”œσ°›"; + keyColor = "green"; + } + { + type = "memory"; + key = "β”” └󰍛"; + keyColor = "green"; + } + { + type = "custom"; + format = "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜"; + } + "break" + { + type = "custom"; + format = "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€Software──────────────────────┐"; + } + { + type = "os"; + key = "󰻀 OS"; + keyColor = "yellow"; + } + { + type = "kernel"; + key = "β”‚ β”œο€“"; + keyColor = "yellow"; + } + { + type = "packages"; + key = "β”‚ β”œσ°–"; + keyColor = "yellow"; + } + { + type = "shell"; + key = "β”” β””ο’‰"; + keyColor = "yellow"; + } + + { + type = "custom"; + format = "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜"; + } + /* + "break" + { + type = "custom"; + format = "β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€Age / DT──────────────────────┐"; + } + { + type = "command"; + key = " OS Age "; + keyColor = "magenta"; + text = "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days"; + } + { + type = "datetime"; + key = " DateTime "; + keyColor = "magenta"; + } + { + type = "custom"; + format = "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜"; + } + */ + ]; + }; + }; +} diff --git a/home/modules/git.nix b/home/modules/git.nix new file mode 100644 index 0000000..f0d3b76 --- /dev/null +++ b/home/modules/git.nix @@ -0,0 +1,13 @@ +{pkgs, ...}: { + programs.git = { + enable = true; + package = pkgs.gitFull; + userName = "benstrb"; + userEmail = "ben.stribrny@gmail.com"; + extraConfig = { + init.defaultBranch = "main"; + github.user = "benstrb"; + credential.helper = "store"; + }; + }; +} diff --git a/home/modules/kitty.nix b/home/modules/kitty.nix new file mode 100755 index 0000000..d80d9a4 --- /dev/null +++ b/home/modules/kitty.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: { + home.packages = [pkgs.rofi]; + + programs.kitty = { + enable = true; + themeFile = "Dracula"; + extraConfig = '' + font_family FiraCode Nerd Font Mono + font_size 8 + ''; + }; +} diff --git a/home/modules/nvf.nix b/home/modules/nvf.nix new file mode 100755 index 0000000..98a896a --- /dev/null +++ b/home/modules/nvf.nix @@ -0,0 +1,129 @@ +{ + pkgs, + inputs, + ... +}: { + imports = [inputs.nvf.homeManagerModules.default]; + + programs.nvf = { + enable = true; + + settings.vim = { + lsp = { + enable = true; + + formatOnSave = false; + lspkind.enable = true; + lspsaga.enable = false; + trouble.enable = true; + }; + + debugger = { + nvim-dap = { + enable = true; + ui.enable = true; + }; + }; + + options = { + tabstop = 2; + autoindent = true; + shiftwidth = 2; + }; + + clipboard = { + enable = true; + registers = "unnamedplus"; + providers = { + wl-copy = { + enable = true; + package = pkgs.wl-clipboard; + }; + }; + }; + + languages = { + enableFormat = true; + enableTreesitter = true; + enableExtraDiagnostics = true; + + nix.enable = true; + markdown.enable = true; + + go.enable = true; + css.enable = true; + html.enable = true; + sql.enable = true; + ts.enable = true; + zig.enable = true; + csharp.enable = true; + clang.enable = true; + rust = { + enable = true; + crates.enable = true; + }; + }; + + visuals = { + nvim-web-devicons.enable = true; + nvim-cursorline.enable = true; + cinnamon-nvim.enable = true; + fidget-nvim.enable = true; + + highlight-undo.enable = true; + indent-blankline.enable = true; + }; + + statusline = { + lualine = { + enable = true; + }; + }; + + autopairs.nvim-autopairs.enable = true; + + autocomplete = { + nvim-cmp.enable = false; + blink-cmp.enable = true; + }; + + snippets.luasnip.enable = true; + + telescope.enable = true; + + git = { + enable = true; + gitsigns.enable = true; + gitsigns.codeActions.enable = false; + }; + + dashboard.alpha.enable = true; + + notify.nvim-notify.enable = true; + + projects.project-nvim.enable = true; + + utility = { + ccc.enable = true; + diffview-nvim.enable = true; + icon-picker.enable = true; + surround.enable = true; + + motion = { + hop.enable = true; + leap.enable = true; + }; + }; + + comments.comment-nvim.enable = true; + + ui = { + noice.enable = true; + colorizer.enable = true; + illuminate.enable = true; + + fastaction.enable = true; + }; + }; + }; +} diff --git a/home/modules/picom.nix b/home/modules/picom.nix new file mode 100755 index 0000000..1ead438 --- /dev/null +++ b/home/modules/picom.nix @@ -0,0 +1,8 @@ +{ + services.picom = { + enable = true; + fade = true; + shadow = true; + opacityRules = ["95:class_g = 'kitty'"]; + }; +} diff --git a/home/modules/rofi.nix b/home/modules/rofi.nix new file mode 100755 index 0000000..1571fd5 --- /dev/null +++ b/home/modules/rofi.nix @@ -0,0 +1,7 @@ +{pkgs, ...}: { + home.packages = [pkgs.rofi]; + + programs.rofi = { + enable = true; + }; +} diff --git a/home/modules/stylix.nix b/home/modules/stylix.nix new file mode 100755 index 0000000..c7108d4 --- /dev/null +++ b/home/modules/stylix.nix @@ -0,0 +1,77 @@ +{pkgs, ...}: { + stylix = { + enable = true; + + #base16Scheme = "${pkgs.base16-schemes}/share/themes/pinky.yaml"; + + base16Scheme = { + #base00 = "171517"; #171517 default background + #base01 = "1b181b"; #1b181b lighter background (status bar) + #base02 = "aaaaaa"; #aaaaaa selection background + #base03 = "383338"; #383338 comments, line highlighting + #base04 = "e7dbdb"; #e7dbdb dark foreground + #base05 = "f5f5f5"; #f5f5f5 default foreground, caret, delimiters, operators + #base06 = "ffffff"; #ffffff light foreground + #base07 = "f7f3f7"; #f7f3f7 light background + #base08 = "ffa600"; #ffa600 variables + #base09 = "00ff66"; #00ff66 ints, bools, constants + #base0A = "20df6c"; #20df6c classes, search text background + #base0B = "ff0066"; #ff0066 strings + #base0C = "6600ff"; #6600ff regex, escape chars + #base0D = "00ffff"; #00ffff functions, methods, headings + #base0E = "007fff"; #007fff keywords, storage, selector + #base0F = "df206c"; #df206c Opening/Closing embedded language tags + + base00 = "#1a1b26"; + base01 = "#232433"; + base02 = "#2e2f40"; + base03 = "#44475a"; + base04 = "#c3aed6"; + base05 = "#f5c2e7"; + base06 = "#f8bdc9"; + base07 = "#ffffff"; + base08 = "#f28fad"; # Red + base09 = "#f8a488"; # Orange + base0A = "#f9e2af"; # Yellow + base0B = "#a6e3a1"; # Green + base0C = "#94e2d5"; # Cyan + base0D = "#89b4fa"; # Blue + base0E = "#b4befe"; # Purple + base0F = "#f38ba8"; # Additional pink-red (optional) + }; + + cursor = { + package = pkgs.bibata-cursors; + name = "Bibata-Modern-Ice"; + size = 14; + }; + + fonts = { + sizes = { + applications = 10; + desktop = 10; + terminal = 9; + popups = 8; + }; + + monospace = { + package = pkgs.nerd-fonts.jetbrains-mono; + name = "JetBrainsMono Nerd Font Mono"; + }; + + sansSerif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Sans"; + }; + + serif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Serif"; + }; + }; + + polarity = "dark"; + + image = ../../assets/wallpaper/bocchi-light-guitar.png; + }; +} diff --git a/home/modules/sxhkd.nix b/home/modules/sxhkd.nix new file mode 100755 index 0000000..43cde33 --- /dev/null +++ b/home/modules/sxhkd.nix @@ -0,0 +1,21 @@ +{ + services.sxhkd = { + enable = true; + + keybindings = { + "super + Return" = "kitty"; + "super + e" = "dolphin"; + "super + b" = "brave"; + "super + a" = "rofi -show drun"; + "super + q" = "bspc node -c"; + "super + d" = "discord"; + "super + f" = "bspc node -t fullscreen"; + "super + p" = "bspc node -t pseudo_tiled"; + "super + t" = "bspc node -t tiled"; + "super + r" = "bspc node @parent -R 90"; + "super + shift + f" = "bspc node -t floating"; + "super + {h,j,k,l}" = "bspc node -s {west,south,north,east}"; + "alt + {h,j,k,l}" = "bspc node -f {west,south,north,east}"; + }; + }; +} diff --git a/home/modules/zellij.nix b/home/modules/zellij.nix new file mode 100755 index 0000000..6a0415d --- /dev/null +++ b/home/modules/zellij.nix @@ -0,0 +1,16 @@ +{pkgs, ...}: { + home.packages = [pkgs.zellij]; + + programs.zellij = { + enable = true; + exitShellOnExit = true; + enableZshIntegration = true; + + settings = { + simplified_ui = true; + pane_frames = false; + default_layout = "compact"; + show_startup_tips = false; + }; + }; +} diff --git a/home/modules/zsh.nix b/home/modules/zsh.nix new file mode 100755 index 0000000..5306f0c --- /dev/null +++ b/home/modules/zsh.nix @@ -0,0 +1,34 @@ +{pkgs, ...}: { + home.packages = [pkgs.zsh]; + + programs.zsh = { + enable = true; + enableCompletion = true; + autosuggestion.enable = true; + syntaxHighlighting.enable = true; + + shellAliases = { + home = "nvim /home/benag/.nix-config/home/home.nix"; + config = "nvim /home/benag/.nix-config/configuration/configuration.nix"; + fl = "nvim /home/benag/.nix-config/flake.nix"; + rebuild = "sudo nixos-rebuild switch --flake /home/benag/.nix-config#benag"; + cat = "bat -p -P"; + c = "clear;fastfetch"; + + ssh = "TERM=xterm-256color ssh"; + }; + + history = { + size = 10000; + ignoreAllDups = true; + path = "$HOME/.zsh_history"; + }; + + initContent = '' + fastfetch + + bindkey "^[[1;5C" forward-word + bindkey "^[[1;5D" backward-word + ''; + }; +}