commit 84bc5de2093938f16096a2f3df01ba6f388043c8 Author: max_ag Date: Wed Jul 16 17:21:23 2025 +0200 Shadow config v1.0 diff --git a/assets/oh-my-posh-shadow-backup.toml b/assets/oh-my-posh-shadow-backup.toml new file mode 100644 index 0000000..942a8e2 --- /dev/null +++ b/assets/oh-my-posh-shadow-backup.toml @@ -0,0 +1,165 @@ +console_title_template = '{{ .Shell }} in {{ .Folder }}' +version = 3 +final_space = true + +[palette] + black = '#262B44' + blue = '#4B95E9' + green = '#59C9A5' + orange = '#303C68' + red = '#D81E5B' + white = '#E0DEF4' + yellow = '#92D4FE' + +[secondary_prompt] + template = '<,p:yellow> >  ' + foreground = 'p:black' + background = 'transparent' + +[transient_prompt] + template = '<,p:yellow> {{ .Folder }}  ' + foreground = 'p:black' + background = 'transparent' + +[upgrade] + source = 'cdn' + interval = '168h' + auto = false + notice = false + +[[tooltips]] + leading_diamond = '' + trailing_diamond = '' + template = '  {{ .Profile }}{{ if .Region }}@{{ .Region }}{{ end }} ' + foreground = 'p:white' + background = 'p:orange' + type = 'aws' + style = 'diamond' + tips = ['aws'] + + [tooltips.properties] + display_default = true + +[[tooltips]] + leading_diamond = '' + trailing_diamond = '' + template = '  {{ .Name }} ' + foreground = 'p:white' + background = 'p:blue' + type = 'az' + style = 'diamond' + tips = ['az'] + + [tooltips.properties] + display_default = true + +[[blocks]] + type = 'prompt' + alignment = 'left' + + [[blocks.segments]] + leading_diamond = '' + trailing_diamond = '' + template = ' {{ if .SSHSession }} {{ end }}{{ .UserName }} ' + foreground = 'p:black' + background = 'p:yellow' + type = 'session' + style = 'diamond' + + [[blocks.segments]] + template = '  {{ path .Path .Location }} ' + foreground = 'p:white' + powerline_symbol = '' + background = 'p:orange' + type = 'path' + style = 'powerline' + + [blocks.segments.properties] + style = 'folder' + + [[blocks.segments]] + template = ' {{ if .UpstreamURL }}{{ url .UpstreamIcon .UpstreamURL }} {{ end }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }}  {{ .Working.String }}{{ end }}{{ if .Staging.Changed }}  {{ .Staging.String }}{{ end }} ' + foreground = 'p:black' + powerline_symbol = '' + background = 'p:green' + type = 'git' + style = 'powerline' + foreground_templates = ['{{ if or (.Working.Changed) (.Staging.Changed) }}p:black{{ end }}', '{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:white{{ end }}', '{{ if gt .Ahead 0 }}p:white{{ end }}'] + background_templates = ['{{ if or (.Working.Changed) (.Staging.Changed) }}p:yellow{{ end }}', '{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:red{{ end }}', '{{ if gt .Ahead 0 }}#49416D{{ end }}', '{{ if gt .Behind 0 }}#7A306C{{ end }}'] + + [blocks.segments.properties] + branch_template = '{{ trunc 25 .Branch }}' + fetch_status = true + fetch_upstream_icon = true + + [[blocks.segments]] + template = '  ' + foreground = 'p:white' + powerline_symbol = '' + background = 'p:yellow' + type = 'root' + style = 'powerline' + + [[blocks.segments]] + leading_diamond = '' + trailing_diamond = '' + template = ' {{ if gt .Code 0 }}{{ else }}{{ end }} ' + foreground = 'p:white' + background = 'p:blue' + type = 'status' + style = 'diamond' + background_templates = ['{{ if gt .Code 0 }}p:red{{ end }}'] + + [blocks.segments.properties] + always_enabled = true + +[[blocks]] + type = 'rprompt' + + [[blocks.segments]] + template = ' ' + foreground = 'p:green' + background = 'transparent' + type = 'node' + style = 'plain' + + [blocks.segments.properties] + display_mode = 'files' + fetch_package_manager = false + home_enabled = false + + [[blocks.segments]] + template = ' ' + foreground = 'p:blue' + background = 'transparent' + type = 'go' + style = 'plain' + + [blocks.segments.properties] + fetch_version = false + + [[blocks.segments]] + template = ' ' + foreground = 'p:yellow' + background = 'transparent' + type = 'python' + style = 'plain' + + [blocks.segments.properties] + display_mode = 'files' + fetch_version = false + fetch_virtual_env = false + + [[blocks.segments]] + template = 'in {{ .Name }} ' + foreground = 'p:white' + background = 'transparent' + type = 'shell' + style = 'plain' + + [[blocks.segments]] + template = 'at {{ .CurrentDate | date "15:04:05" }}' + foreground = 'p:white' + background = 'transparent' + type = 'time' + style = 'plain' diff --git a/assets/oh-my-posh-shadow.toml b/assets/oh-my-posh-shadow.toml new file mode 100644 index 0000000..c24d028 --- /dev/null +++ b/assets/oh-my-posh-shadow.toml @@ -0,0 +1,73 @@ +console_title_template = '{{ .Shell }} in {{ .Folder }}' +version = 3 +final_space = true + +[palette] + nix-shell = '#D81E5B' + #nix-shell = '#6B33A0' + shell = '#92D4FE' + path = '#303C68' + +[transient_prompt] + template = '~> ' + foreground = 'p:shell' + background = 'transparent' + foreground_templates = [ + '{{ if .Env.IN_NIX_SHELL }}p:nix-shell{{ end }}' + ] + +[[blocks]] +type = 'prompt' +alignment = 'left' +force = true + +[[blocks]] +newline = true +type = 'prompt' +alignment = 'left' + + [[blocks.segments]] + type = 'shell' + style = 'powerline' + powerline_symbol = '' + foreground = 'black' + background = 'p:shell' + template = '{{if .Env.IN_NIX_SHELL}} nix-shell {{else}} {{.Shell}} {{end}}' + background_templates = [ + '{{ if .Env.IN_NIX_SHELL }}p:nix-shell{{ end }}' + ] + foreground_templates = [ + '{{ if .Env.IN_NIX_SHELL }}white{{ end }}' + ] + + [[blocks.segments]] + type = 'text' + template = ' . ' + style = 'plain' + foreground = 'transparent' + background = 'transparent' + + [[blocks.segments]] + type = 'path' + template = '  {{ path .Path .Location }} ' + style = 'powerline' + powerline_symbol = '' + foreground = 'white' + background = 'p:path' + + [blocks.segments.properties] + style = 'folder' + +[[blocks]] +type = 'prompt' +alignment = 'left' +newline = true + + [[blocks.segments]] + type = 'text' + style = 'plain' + foreground = 'p:shell' + foreground_templates = [ + '{{if .Env.IN_NIX_SHELL}}p:nix-shell{{ end }}' + ] + template = '~>' diff --git a/assets/reeee.toml b/assets/reeee.toml new file mode 100644 index 0000000..7edb6f0 --- /dev/null +++ b/assets/reeee.toml @@ -0,0 +1,74 @@ +#:schema https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json + +version = 2 +final_space = true +console_title_template = '{{ .Shell }} in {{ .Folder }}' + +[[blocks]] + type = 'prompt' + alignment = 'left' + newline = true + + [[blocks.segments]] + type = 'path' + style = 'plain' + background = 'transparent' + foreground = 'blue' + template = '{{ .Path }}' + + [blocks.segments.properties] + style = 'full' + + [[blocks.segments]] + type = 'git' + style = 'plain' + foreground = 'p:grey' + background = 'transparent' + template = ' {{ .HEAD }}{{ if or (.Working.Changed) (.Staging.Changed) }}*{{ end }} {{ if gt .Behind 0 }}⇣{{ end }}{{ if gt .Ahead 0 }}⇡{{ end }}' + + [blocks.segments.properties] + branch_icon = '' + commit_icon = '@' + fetch_status = true + +[[blocks]] + type = 'rprompt' + overflow = 'hidden' + + [[blocks.segments]] + type = 'executiontime' + style = 'plain' + foreground = 'yellow' + background = 'transparent' + template = '{{ .FormattedMs }}' + + [blocks.segments.properties] + threshold = 5000 + +[[blocks]] + type = 'prompt' + alignment = 'left' + newline = true + + [[blocks.segments]] + type = 'text' + style = 'plain' + foreground_templates = [ + "{{if gt .Code 0}}red{{end}}", + "{{if eq .Code 0}}magenta{{end}}", + ] + background = 'transparent' + template = '❯' + +[transient_prompt] + foreground_templates = [ + "{{if gt .Code 0}}red{{end}}", + "{{if eq .Code 0}}magenta{{end}}", + ] + background = 'transparent' + template = '❯ ' + +[secondary_prompt] + foreground = 'magenta' + background = 'transparent' + template = '❯❯ ' diff --git a/assets/sddm-wallpaper.png b/assets/sddm-wallpaper.png new file mode 100644 index 0000000..826d018 Binary files /dev/null and b/assets/sddm-wallpaper.png differ diff --git a/assets/shadow-cli.png b/assets/shadow-cli.png new file mode 100644 index 0000000..e3ecc9e Binary files /dev/null and b/assets/shadow-cli.png differ diff --git a/assets/shadow-cli.txt b/assets/shadow-cli.txt new file mode 100644 index 0000000..1e796ef --- /dev/null +++ b/assets/shadow-cli.txt @@ -0,0 +1,14 @@ +      ▄▀▀▀▀▀▀▀▀▄▄       +    ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄     +   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀    +  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄  + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄   +▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ +    ▄▀▀▀▀▀▀▀▀▀▀▀▀▄      +  ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄    +   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄   + ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  +  ▀ ▀ ▀▀▀▀ ▀▀▀▀▀ ▀▀     +            ▀▀         \ No newline at end of file diff --git a/assets/shadow_dark.png b/assets/shadow_dark.png new file mode 100644 index 0000000..eff998e Binary files /dev/null and b/assets/shadow_dark.png differ diff --git a/configuration/configuration.nix b/configuration/configuration.nix new file mode 100644 index 0000000..9fbab68 --- /dev/null +++ b/configuration/configuration.nix @@ -0,0 +1,154 @@ +{ + pkgs, + inputs, + ... +}: { + imports = [ + ./verbatim.nix + ]; + + nix.settings.experimental-features = ["nix-command" "flakes"]; + + nixpkgs = { + config.allowUnfree = true; + + overlays = [ + inputs.rust-overlay.overlays.default + inputs.dolphin-overlay.overlays.default + ]; + }; + + environment.systemPackages = with pkgs; [ + nushell + wl-clipboard + gvfs + libsForQt5.qt5.qtquickcontrols2 + libsForQt5.qt5.qtgraphicaleffects + ]; + + hardware.graphics = { + enable = true; + enable32Bit = true; + }; + + xdg = { + mime.enable = true; + menus.enable = true; + + portal = { + enable = true; + }; + }; + + programs = { + firefox.enable = true; + bash.blesh.enable = true; + + hyprland = { + enable = true; + withUWSM = true; + package = inputs.hyprland.packages."x86_64-linux".hyprland; + portalPackage = inputs.hyprland.packages."x86_64-linux".xdg-desktop-portal-hyprland; + }; + + steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + }; + }; + + boot = { + loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + + kernelPackages = pkgs.linuxPackages_6_12; + }; + + networking = { + hostName = "max-main"; + proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + networkmanager.enable = true; + firewall = { + enable = true; + allowedTCPPorts = [8000]; + }; + }; + + environment.sessionVariables = { + XDG_CURRENT_DESKTOP = "Hyprland"; + }; + + 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 = { + xserver = { + enable = true; + videoDrivers = ["amdgpu"]; + xkb = { + layout = "cz"; + variant = ""; + options = "caps:escape"; + }; + }; + + printing.enable = true; + + displayManager.sddm = { + enable = true; + theme = "${import ./sddm-theme.nix {inherit pkgs;}}"; + autoNumlock = true; + }; + + devmon.enable = true; + gvfs.enable = true; + + pipewire = { + enable = true; + + alsa = { + enable = true; + support32Bit = true; + }; + + pulse.enable = true; + jack.enable = true; + }; + }; + + console.keyMap = "cz-lat2"; + security.rtkit.enable = true; + + users.users.maxag = { + isNormalUser = true; + description = "Max Ag"; + extraGroups = ["networkmanager" "wheel" "video"]; + + shell = pkgs.nushell; + }; + + system = { + stateVersion = "25.11"; + activationScripts.cleanBackups = '' + echo "Removing .backup_nix files..." + find /home/maxag -type f -name "*.backup_nix" -delete + ''; + }; +} diff --git a/configuration/hardware-configuration.nix b/configuration/hardware-configuration.nix new file mode 100644 index 0000000..2107788 --- /dev/null +++ b/configuration/hardware-configuration.nix @@ -0,0 +1,44 @@ +# 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 = ["nvme" "xhci_pci" "ahci" "usbhid"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-amd"]; + boot.extraModulePackages = []; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/7f27e3b6-f596-46e5-9f0a-327e69cf6d0c"; + fsType = "ext4"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/4E35-A092"; + fsType = "vfat"; + options = ["fmask=0077" "dmask=0077"]; + }; + + swapDevices = [ + {device = "/dev/disk/by-uuid/17ca30d8-92c8-405b-9835-407eb82062a2";} + ]; + + # 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; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/configuration/sddm-theme.nix b/configuration/sddm-theme.nix new file mode 100644 index 0000000..ddb44b3 --- /dev/null +++ b/configuration/sddm-theme.nix @@ -0,0 +1,15 @@ +{pkgs}: +pkgs.stdenv.mkDerivation { + name = "sddm-theme"; + src = pkgs.fetchFromGitHub { + owner = "MarianArlt"; + repo = "sddm-sugar-dark"; + rev = "ceb2c455663429be03ba62d9f898c571650ef7fe"; + sha256 = "0153z1kylbhc9d12nxy9vpn0spxgrhgy36wy37pk6ysq7akaqlvy"; + }; + + installPhase = '' + mkdir -p $out + cp -R ./* $out/ + ''; +} diff --git a/configuration/verbatim.nix b/configuration/verbatim.nix new file mode 100644 index 0000000..775c0dc --- /dev/null +++ b/configuration/verbatim.nix @@ -0,0 +1,7 @@ +{ + fileSystems."/mnt/removable" = { + device = "/dev/disk/by-uuid/79a440dd-15c2-4698-a0b4-2064bae0f0c6"; + fsType = "ext4"; + options = ["nofail" "user" "rw" "exec"]; + }; +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..fc2ff88 --- /dev/null +++ b/flake.lock @@ -0,0 +1,990 @@ +{ + "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1751740947, + "narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "dfc1db15a08c4cd234288f66e1199c653495301f", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "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": 1748408240, + "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e", + "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" + } + }, + "dolphin-overlay": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1743892246, + "narHash": "sha256-AHeavUWjnDPT/hffE5hM8RIew+mZJSSr9tUEiSvZW30=", + "owner": "rumboon", + "repo": "dolphin-overlay", + "rev": "55fec3268972876890d6081d3d76a701c37c01d7", + "type": "github" + }, + "original": { + "owner": "rumboon", + "repo": "dolphin-overlay", + "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": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nvf", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1749398372, + "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", + "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" + } + }, + "flake-utils": { + "inputs": { + "systems": [ + "nvf", + "systems" + ] + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "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" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "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": 1752286566, + "narHash": "sha256-A4nftqiNz2bNihz0bKY94Hq/6ydR6UQOcGioeL7iymY=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "392ddb642abec771d63688c49fa7bcbb9d2a5717", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "zen-browser", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743604125, + "narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1749155331, + "narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1751808145, + "narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-protocols": "hyprland-protocols", + "hyprland-qtutils": "hyprland-qtutils", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": "nixpkgs_2", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1752337367, + "narHash": "sha256-kEumflYEdQSrZZQEr7kik2sBfFohEx0TsJB1rBVAQy4=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "d0f58baf296a2cdd5df0f82212fe17dfbef8438e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1749046714, + "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland-qt-support": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "hyprland-qtutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-qtutils", + "systems" + ] + }, + "locked": { + "lastModified": 1749154592, + "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "type": "github" + } + }, + "hyprland-qtutils": { + "inputs": { + "hyprland-qt-support": "hyprland-qt-support", + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-qtutils", + "hyprlang", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1750371812, + "narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "b13c7481e37856f322177010bdf75fccacd1adc8", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1750371198, + "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1751888065, + "narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "a8229739cf36d159001cfc203871917b83fdf917", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1751881472, + "narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "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": 1743890059, + "narHash": "sha256-QQLhHHGNtAW8qRpseb40zqZlhZUeRRUg2SGmXjfE+so=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "58a813438464b5295170efe38d8bd5f40fcc1d23", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1751792365, + "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1751984180, + "narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1750215678, + "narHash": "sha256-Rc/ytpamXRf6z8UA2SGa4aaWxUXRbX2MAWIu2C8M+ok=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "5395fb3ab3f97b9b7abca147249fa2e8ed27b192", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1743448293, + "narHash": "sha256-bmEPmSjJakAp/JojZRrUvNcDX2R5/nuX6bm+seVaGhs=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "77b584d61ff80b4cef9245829a6f1dfad5afdfa3", + "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-parts": "flake-parts", + "flake-utils": "flake-utils", + "mnw": "mnw", + "nixpkgs": "nixpkgs_4", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1752180730, + "narHash": "sha256-aSmib/P5DWXrpOdwFOo+lxuupUlNTGUDsLVSxJwWfUg=", + "owner": "notashelf", + "repo": "nvf", + "rev": "8ea010d7e3bf00c2a1f24d52da88afaed87d96f5", + "type": "github" + }, + "original": { + "owner": "notashelf", + "repo": "nvf", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1750779888, + "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "dolphin-overlay": "dolphin-overlay", + "home-manager": "home-manager", + "hyprland": "hyprland", + "nixpkgs": "nixpkgs_3", + "nvf": "nvf", + "rust-overlay": "rust-overlay", + "stylix": "stylix", + "zen-browser": "zen-browser" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1752288212, + "narHash": "sha256-f2PMqtf61mWAM11QoIfGv3hjD2AsJrij4FCzftepuaE=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "678296525a4cce249c608749b171d0b2ceb8b2ff", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-parts": "flake-parts_2", + "gnome-shell": "gnome-shell", + "nixpkgs": [ + "nixpkgs" + ], + "nur": "nur", + "systems": "systems_3", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1752250117, + "narHash": "sha256-zCPV1a8w9hRn5ukOQwaAggA3X5cMmVsZVBYo8wLfLuU=", + "owner": "danth", + "repo": "stylix", + "rev": "0da583a359fd911d5cbfd2c789424b888b777a4b", + "type": "github" + }, + "original": { + "owner": "danth", + "repo": "stylix", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "tinted-foot": { + "flake": false, + "locked": { + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1735730497, + "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "type": "github" + } + }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 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" + } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1751300244, + "narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + }, + "zen-browser": { + "inputs": { + "home-manager": "home-manager_2", + "nixpkgs": "nixpkgs_5" + }, + "locked": { + "lastModified": 1752488611, + "narHash": "sha256-z10DN88OItOH58fDuC7LsChdwRU6Ut/01fU6/IQt1sg=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "0af030205dcbc89c7de5ebc7fc4a10cbf1134c62", + "type": "github" + }, + "original": { + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..dbedce0 --- /dev/null +++ b/flake.nix @@ -0,0 +1,63 @@ +{ + description = "My personal Hyprland NixOS config"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + + nvf.url = "github:notashelf/nvf"; + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + stylix = { + url = "github:danth/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + hyprland.url = "github:hyprwm/Hyprland"; + + dolphin-overlay.url = "github:rumboon/dolphin-overlay"; + + zen-browser.url = "github:0xc000022070/zen-browser-flake"; + }; + + outputs = {nixpkgs, ...} @ inputs: { + nixosConfigurations.max-main = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { + inherit inputs; + }; + + modules = [ + ./configuration/configuration.nix + ./configuration/hardware-configuration.nix + + inputs.home-manager.nixosModules.default + { + home-manager = { + useUserPackages = true; + useGlobalPkgs = true; + + extraSpecialArgs = {inherit inputs;}; + backupFileExtension = "backup_nix"; + + users.maxag = ./home/home.nix; + }; + } + + inputs.stylix.nixosModules.stylix + { + home-manager.sharedModules = [ + inputs.stylix.homeModules.stylix + ]; + } + ]; + }; + }; +} diff --git a/home/home.nix b/home/home.nix new file mode 100644 index 0000000..8668fdb --- /dev/null +++ b/home/home.nix @@ -0,0 +1,22 @@ +{ + home = { + username = "maxag"; + homeDirectory = "/home/maxag"; + stateVersion = "25.11"; + }; + + programs.home-manager.enable = true; + + imports = [ + ./modules/hyprland.nix + ./modules/nvf.nix + ./modules/stylix.nix + ./modules/games.nix + ./modules/programming.nix + ./modules/multimedia.nix + ./modules/communication.nix + ./modules/rice.nix + ./modules/shells.nix + ./modules/zen.nix + ]; +} diff --git a/home/modules/communication.nix b/home/modules/communication.nix new file mode 100644 index 0000000..d8a1b0a --- /dev/null +++ b/home/modules/communication.nix @@ -0,0 +1,6 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + discord + whatsapp-for-linux # Was ist los + ]; +} diff --git a/home/modules/games.nix b/home/modules/games.nix new file mode 100644 index 0000000..0404c44 --- /dev/null +++ b/home/modules/games.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + heroic + (pkgs.prismlauncher.override { + jdks = [ + pkgs.temurin-bin-21 + pkgs.temurin-bin-8 + pkgs.temurin-bin-17 + ]; + }) + ]; +} diff --git a/home/modules/hyprland.nix b/home/modules/hyprland.nix new file mode 100644 index 0000000..58db880 --- /dev/null +++ b/home/modules/hyprland.nix @@ -0,0 +1,298 @@ +{pkgs, ...}: { + wayland.windowManager.hyprland = { + enable = true; + systemd.enable = true; + systemd.variables = ["--all"]; + + xwayland.enable = true; + + settings = { + exec-once = [ + "wl-clip-persist --clipboard both" + "wl-paste --watch cliphist store" + "hyprpanel" + ]; + + env = [ + "NIXOS_OZONE_WL, 1" + "XDG_SESSION_TYPE, wayland" + "XDG_SESSION_DESKTOP, Hyprland" + ]; + + input = { + kb_layout = "cz"; + kb_options = "caps:escape"; + numlock_by_default = true; + + sensitivity = 0; + touchpad = { + natural_scroll = true; + }; + }; + + misc = { + disable_hyprland_logo = true; + layers_hog_keyboard_focus = true; + animate_manual_resizes = true; + enable_swallow = true; + focus_on_activate = true; + middle_click_paste = false; + }; + + dwindle = { + force_split = 0; + special_scale_factor = 1.0; + split_width_multiplier = 1.0; + use_active_for_splits = true; + pseudotile = "yes"; + preserve_split = "yes"; + }; + + general = { + "$mainMod" = "SUPER"; + layout = "dwindle"; + gaps_in = 4; + gaps_out = 3; + border_size = 2; + no_border_on_floating = false; + }; + + decoration = { + rounding = 7; + active_opacity = 1.0; + inactive_opacity = 1.0; + fullscreen_opacity = 1.0; + + blur.enabled = false; + shadow.enabled = false; + }; + + animations = { + enabled = true; + + bezier = [ + "myBezier, 0.05, 0.9, 0.1, 1.05" + ]; + + animation = [ + "windows, 1, 7, myBezier" + "windowsOut, 1, 7, default, popin 80%" + "border, 1, 10, default" + "borderangle, 1, 8, default" + "fade, 1, 7, default" + "workspaces, 1, 6, default" + ]; + }; + + binds = { + movefocus_cycles_fullscreen = true; + }; + + bind = [ + # keybindings + "$mainMod, Return, exec, foot" + "$mainMod, B, exec, firefox" + "$mainMod, Q, killactive," + "$mainMod, F, fullscreen, 0" + "$mainMod SHIFT, F, fullscreen, 1" + "$mainMod, W, togglefloating" + "$mainMod, A, exec, fuzzel" + "$mainMod, P, pseudo," + "$mainMod, E, exec, dolphin" + "$mainMod, C, exec, hyprpicker -a" + "$mainMod, code:23, swapsplit" + "$mainMod, code:66, togglesplit" + + # switch focus + "$mainMod, left, movefocus, l" + "$mainMod, right, movefocus, r" + "$mainMod, up, movefocus, u" + "$mainMod, down, movefocus, d" + "$mainMod, h, movefocus, l" + "$mainMod, j, movefocus, d" + "$mainMod, k, movefocus, u" + "$mainMod, l, movefocus, r" + + "$mainMod, left, alterzorder, top" + "$mainMod, right, alterzorder, top" + "$mainMod, up, alterzorder, top" + "$mainMod, down, alterzorder, top" + "$mainMod, h, alterzorder, top" + "$mainMod, j, alterzorder, top" + "$mainMod, k, alterzorder, top" + "$mainMod, l, alterzorder, top" + + # switch workspace + "$mainMod, code:10, workspace, 1" + "$mainMod, code:11, workspace, 2" + "$mainMod, code:12, workspace, 3" + "$mainMod, code:13, workspace, 4" + "$mainMod, code:14, workspace, 5" + "$mainMod, code:15, workspace, 6" + "$mainMod, code:16, workspace, 7" + "$mainMod, code:17, workspace, 8" + "$mainMod, code:18, workspace, 9" + "$mainMod, code:19, workspace, 10" + + # same as above, but switch to the workspace + "$mainMod SHIFT, code:10, movetoworkspacesilent, 1" + "$mainMod SHIFT, code:11, movetoworkspacesilent, 2" + "$mainMod SHIFT, code:12, movetoworkspacesilent, 3" + "$mainMod SHIFT, code:13, movetoworkspacesilent, 4" + "$mainMod SHIFT, code:14, movetoworkspacesilent, 5" + "$mainMod SHIFT, code:15, movetoworkspacesilent, 6" + "$mainMod SHIFT, code:16, movetoworkspacesilent, 7" + "$mainMod SHIFT, code:17, movetoworkspacesilent, 8" + "$mainMod SHIFT, code:18, movetoworkspacesilent, 9" + "$mainMod SHIFT, code:19, movetoworkspacesilent, 10" + + # window control + "$mainMod SHIFT, left, movewindow, l" + "$mainMod SHIFT, right, movewindow, r" + "$mainMod SHIFT, up, movewindow, u" + "$mainMod SHIFT, down, movewindow, d" + "$mainMod SHIFT, h, movewindow, l" + "$mainMod SHIFT, j, movewindow, d" + "$mainMod SHIFT, k, movewindow, u" + "$mainMod SHIFT, l, movewindow, r" + + "$mainMod CTRL, left, resizeactive, -80 0" + "$mainMod CTRL, right, resizeactive, 80 0" + "$mainMod CTRL, up, resizeactive, 0 -80" + "$mainMod CTRL, down, resizeactive, 0 80" + "$mainMod CTRL, h, resizeactive, -80 0" + "$mainMod CTRL, j, resizeactive, 0 80" + "$mainMod CTRL, k, resizeactive, 0 -80" + "$mainMod CTRL, l, resizeactive, 80 0" + + "$mainMod ALT, left, moveactive, -80 0" + "$mainMod ALT, right, moveactive, 80 0" + "$mainMod ALT, up, moveactive, 0 -80" + "$mainMod ALT, down, moveactive, 0 80" + "$mainMod ALT, h, moveactive, -80 0" + "$mainMod ALT, j, moveactive, 0 80" + "$mainMod ALT, k, moveactive, 0 -80" + "$mainMod ALT, l, moveactive, 80 0" + + # media and volume controls + # ",XF86AudioMute,exec, pamixer -t" + ",XF86AudioPlay,exec, playerctl play-pause" + ",XF86AudioNext,exec, playerctl next" + ",XF86AudioPrev,exec, playerctl previous" + ",XF86AudioStop,exec, playerctl stop" + ]; + + # mouse binding + bindm = [ + "$mainMod, mouse:272, movewindow" + "$mainMod, mouse:273, resizewindow" + ]; + + windowrule = [ + # "float,class:^(mpv)$" + ]; + + workspace = [ + "1, monitor:DP-1" + "2, monitor:DP-2" + ]; + }; + + extraConfig = " + monitor=DP-1,2560x1440@120,0x0,1 + monitor=DP-2,1920x1080@60,-1920x300,1 + + xwayland { + force_zero_scaling = true + } + "; + }; + + programs.hyprpanel = { + enable = true; + systemd.enable = true; + settings = { + bar = { + launcher.autoDetectIcon = true; + + workspaces.show_numbered = true; + + layouts = { + "*" = { + left = [ + "dashboard" + "workspaces" + ]; + middle = []; + right = [ + "volume" + "clock" + "systray" + "notifications" + ]; + }; + }; + }; + + menus.clock = { + time = { + military = true; + hideSeconds = true; + }; + weather.enabled = false; + }; + + menus.dashboard.directories.enabled = false; + menus.dashboard.shortcuts.enabled = true; + menus.dashboard.stats.enabled = false; + menus.dashboard.controls.enabled = false; + + theme.bar.transparent = true; + theme.bar.buttons.dashboard.icon = "#88B1F7"; + + theme.bar.buttons.workspaces = { + hover = "#FFFFFF"; + active = "#FFFFFF"; + occupied = "#88B1F7"; + available = "#88B1F7"; + numbered_active_underline_color = "#FFFFFF"; + }; + + theme.bar.buttons.clock.text = "#88B1F7"; + theme.bar.buttons.clock.icon = "#88B1F7"; + theme.bar.menus.menu.clock.time.time = "#88B1F7"; + theme.bar.menus.menu.clock.calendar.weekdays = "#88B1F7"; + theme.bar.menus.menu.clock.calendar.paginator = "#88B1F7"; + theme.bar.menus.menu.clock.calendar.currentday = "#88B1F7"; + theme.bar.buttons.notifications.icon = "#88B1F7"; + + theme.bar.menus.menu.volume = { + label.color = "#88B1F7"; + listitems.active = "#88B1F7"; + iconbutton.active = "#88B1F7"; + audio_slider.primary = "#88B1F7"; + input_slider.primary = "#88B1F7"; + }; + + theme.bar.buttons.volume = { + text = "#88b1f7"; + icon = "#88b1f7"; + }; + + theme.font = { + size = "12px"; + }; + }; + }; + + home.packages = with pkgs; [ + hyprpanel + hyprpicker + wl-clip-persist + cliphist + wf-recorder + slurp + grim + wl-clipboard + ]; +} diff --git a/home/modules/multimedia.nix b/home/modules/multimedia.nix new file mode 100644 index 0000000..8485cf4 --- /dev/null +++ b/home/modules/multimedia.nix @@ -0,0 +1,21 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + libreoffice + kdePackages.kate + kdePackages.dolphin + kdePackages.ark + trilium-next-desktop + krita + libresprite + mpv + inkscape + qimgv + wineWowPackages.staging + ytmdesktop + ]; + + home.file.".config/kdeglobals".text = '' + [General] + TerminalApplication=foot + ''; +} diff --git a/home/modules/nvf.nix b/home/modules/nvf.nix new file mode 100644 index 0000000..c04d201 --- /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 = true; + 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; + + css.enable = true; + html.enable = true; + sql.enable = true; + ts.enable = true; + zig.enable = true; + csharp.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/programming.nix b/home/modules/programming.nix new file mode 100644 index 0000000..2944235 --- /dev/null +++ b/home/modules/programming.nix @@ -0,0 +1,9 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + rust-bin.stable.latest.default + dotnetCorePackages.sdk_8_0_3xx-bin + gcc + gnumake + godot + ]; +} diff --git a/home/modules/rice.nix b/home/modules/rice.nix new file mode 100644 index 0000000..e04be92 --- /dev/null +++ b/home/modules/rice.nix @@ -0,0 +1,89 @@ +{pkgs, ...}: { + imports = [ + ./zellij.nix + ]; + + home.packages = with pkgs; [ + fuzzel + btop + fastfetch + oh-my-posh + ]; + + gtk.enable = true; + qt.enable = true; + + programs = { + fuzzel.enable = true; + btop.enable = true; + + fastfetch = { + enable = true; + settings = { + logo = { + source = "~/.nix-config/assets/shadow-cli.txt"; + type = "file-raw"; + padding.right = 1; + }; + + modules = [ + { + type = "custom"; + key = "Favorite Anime"; + format = "The Eminence in Shadow"; + } + + "break" + + "os" + "kernel" + "cpu" + "memory" + { + type = "gpu"; + key = "GPU"; + detectionMethod = "pci"; + hideType = "integrated"; + } + "wm" + "terminal" + "shell" + "editor" + ]; + }; + }; + + foot = { + enable = true; + settings.main = { + term = "xterm-256color"; + }; + }; + + git = { + enable = true; + + userEmail = "max.stribrny@gmail.com"; + userName = "max_ag"; + + extraConfig = { + credential.helper = "${ + pkgs.git.override {withLibsecret = true;} + }/bin/git-credential-libsecret"; + + push = {autoSetupRemote = true;}; + + init.defaultBranch = "main"; + }; + }; + + oh-my-posh = { + enable = true; + + enableNushellIntegration = true; + enableBashIntegration = true; + + settings = builtins.fromTOML (builtins.readFile ../../assets/oh-my-posh-shadow.toml); + }; + }; +} diff --git a/home/modules/shells.nix b/home/modules/shells.nix new file mode 100644 index 0000000..2503da3 --- /dev/null +++ b/home/modules/shells.nix @@ -0,0 +1,55 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + bat + ]; + + home.sessionVariables = { + EDITOR = "nvim"; + }; + + programs = { + bash.enable = true; + + nushell = { + enable = true; + + extraConfig = '' + $env.config.buffer_editor = "nvim" + + if "ZELLIJ" in $env == false { + zellij + exit + } else { + if "IN_NIX_SHELL" in $env == false { + fastfetch + } + } + + def garbage [] { + sudo nix-collect-garbage --delete-old + sudo nixos-rebuild switch --flake /home/maxag/.nix-config + } + + def c [] { + clear + fastfetch + } + ''; + + settings = { + show_banner = false; + }; + + shellAliases = { + zel = "zellij"; + rebuild = "sudo nixos-rebuild switch --flake /home/maxag/.nix-config"; + flake = "nvim /home/maxag/.nix-config/flake.nix"; + home = "nvim /home/maxag/.nix-config/home/home.nix"; + config = "nvim /home/maxag/.nix-config/configuration/configuration.nix"; + projects = "cd /mnt/removable/Projekty"; + cat = "bat -p -P"; + nix-shell = "nix-shell --run nu"; + }; + }; + }; +} diff --git a/home/modules/stylix.nix b/home/modules/stylix.nix new file mode 100644 index 0000000..95ac105 --- /dev/null +++ b/home/modules/stylix.nix @@ -0,0 +1,60 @@ +{pkgs, ...}: { + stylix = { + enable = true; + + #base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; + + base16Scheme = { + base00 = "1e1e2e"; # base + base01 = "181825"; # mantle + base02 = "313244"; # surface0 + base03 = "45475a"; # surface1 + base04 = "585b70"; # surface2 + base05 = "cdd6f4"; # text + base06 = "f5e0dc"; # rosewater + base07 = "b4befe"; # lavender + base08 = "f38ba8"; # red + base09 = "fab387"; # peach + base0A = "f9e2af"; # yellow + base0B = "A4E6FF"; # green + base0C = "94e2d5"; # teal + base0D = "89b4fa"; # blue + base0E = "cba6f7"; # mauve + base0F = "f2cdcd"; # flamingo + }; + + 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/shadow_dark.png; + }; +} diff --git a/home/modules/zellij.nix b/home/modules/zellij.nix new file mode 100644 index 0000000..e7dbe7b --- /dev/null +++ b/home/modules/zellij.nix @@ -0,0 +1,17 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + zellij + ]; + + programs.zellij = { + enable = true; + enableBashIntegration = false; + settings = { + on_force_close = "quit"; + simplified_ui = true; + pane_frames = false; + default_layout = "compact"; + show_startup_tips = false; + }; + }; +} diff --git a/home/modules/zen.nix b/home/modules/zen.nix new file mode 100644 index 0000000..e8172b9 --- /dev/null +++ b/home/modules/zen.nix @@ -0,0 +1,7 @@ +{inputs, ...}: { + imports = [ + inputs.zen-browser.homeModules.twilight-official + ]; + + programs.zen-browser.enable = true; +}