diff --git a/configuration.nix b/configuration.nix index 85e7ea9..3f47417 100644 --- a/configuration.nix +++ b/configuration.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, master, lib, ... }: +{ config, pkgs, master, lib, inputs, ... }: { imports = @@ -15,14 +15,13 @@ boot.initrd.systemd.enable = true; boot.loader.efi.canTouchEfiVariables = true; boot.kernelParams = ["quiet"]; - + boot.extraModulePackages = with config.boot.kernelPackages; [ hid-tmff2 ]; services.avahi = { enable = true; - nssmdns = true; + nssmdns4 = true; openFirewall = true; }; - boot.initrd.luks.devices."luks-db49c136-7de8-4ab6-8e05-754bab13925d".device = "/dev/disk/by-uuid/db49c136-7de8-4ab6-8e05-754bab13925d"; networking.hostName = "nixos"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. @@ -33,7 +32,7 @@ # Enable networking networking.networkmanager.enable = true; - hardware.opengl.extraPackages = with pkgs; [ + hardware.graphics.extraPackages = with pkgs; [ amdvlk ]; @@ -66,17 +65,39 @@ }; # Enable the GNOME Desktop Environment. - programs.hyprland.enable = false; + programs.hyprland.enable = true; services.desktopManager.plasma6.enable = true; - services.displayManager.cosmic-greeter.enable = true; + services.displayManager.sddm.enable = false; + services.displayManager.cosmic-greeter.enable = false; services.desktopManager.cosmic.enable = true; + security.pam.services.hyprlock = {}; + + services.greetd = { + enable = true; + settings = rec { + initial_session = { + command = "${pkgs.hyprland}/bin/Hyprland"; + user = "joshuaelm"; + }; + default_session = initial_session; + }; + }; + + + # Configure keymap in X11 services.xserver = { - layout = "us"; - xkbVariant = ""; + xkb.layout = "us"; + xkb.variant = ""; excludePackages = [ pkgs.xterm ]; }; + # Enable Swap + + swapDevices = [ { + device = "/var/lib/swapfile"; + size = 16*1024; + }]; # Enable CUPS to print documents. services.printing.enable = true; @@ -126,6 +147,21 @@ ]; }; + + + fileSystems."/mnt/Skyrim" = { + device = "/dev/sdb1"; + fsType = "btrfs"; + options = [ + "users" + "nofail" + "x-gvfs-show" + "exec" + ]; + }; + + + # Fonts fonts.packages = with pkgs; [ fira-code @@ -139,8 +175,17 @@ # $ nix search wget environment.systemPackages = with pkgs; [ git + feishin + blueman rustc + cowsay + pfetch + ryujinx + gomatrix + pavucontrol + inputs.zen-browser.packages."${system}".specific gnomeExtensions.tray-icons-reloaded + cider gnomeExtensions.open-bar dunst just @@ -158,12 +203,14 @@ kdePackages.elisa glaxnimate librewolf + protonup-qt mlt qt5.full dconf sublime-music spacedrive openjdk + heroic protontricks gamescope playerctl @@ -174,7 +221,7 @@ cava pop-icon-theme pop-launcher - gnome.gnome-tweaks + gnome-tweaks libreoffice hunspell hunspellDicts.en_US @@ -184,7 +231,19 @@ gradience ]; + # VirtualBox + virtualisation.virtualbox.host.enable = true; + users.extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" ]; + + + services.sunshine = { + enable = true; + autoStart = true; + capSysAdmin = true; + openFirewall = true; + + }; # Enable Steam programs.steam = { enable = true; @@ -192,6 +251,8 @@ dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server }; + programs.nix-ld.enable = true; + # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.mtr.enable = true; @@ -203,11 +264,11 @@ # List services that you want to enable: # Enable the OpenSSH daemon. - # services.openssh.enable = true; + services.openssh.enable = true; # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; + networking.firewall.allowedTCPPorts = [ 7860 3042 47990 ]; + networking.firewall.allowedUDPPorts = [ 7860 3042 47990 ]; # Or disable the firewall altogether. # networking.firewall.enable = false; diff --git a/flake.lock b/flake.lock index a7d83bc..fe378ac 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ ] }, "locked": { - "lastModified": 1722113426, - "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=", + "lastModified": 1728330715, + "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=", "owner": "numtide", "repo": "devshell", - "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae", + "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef", "type": "github" }, "original": { @@ -59,11 +59,11 @@ ] }, "locked": { - "lastModified": 1726153070, - "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", + "lastModified": 1730504689, + "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", + "rev": "506278e768c2a08bec68eb62932193e341f55c90", "type": "github" }, "original": { @@ -107,11 +107,11 @@ ] }, "locked": { - "lastModified": 1726745158, - "narHash": "sha256-D5AegvGoEjt4rkKedmxlSEmC+nNLMBPWFxvmYnVLhjk=", + "lastModified": 1730814269, + "narHash": "sha256-fWPHyhYE6xvMI1eGY3pwBTq85wcy1YXqdzTZF+06nOg=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "4e743a6920eab45e8ba0fbe49dc459f1423a4b74", + "rev": "d70155fdc00df4628446352fc58adc640cd705c2", "type": "github" }, "original": { @@ -149,11 +149,11 @@ ] }, "locked": { - "lastModified": 1727381970, - "narHash": "sha256-iFuK3rpu0vLlRoDoiOexM82WDYfdihSHVfiv+/3Fm/8=", + "lastModified": 1730837930, + "narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=", "owner": "nix-community", "repo": "home-manager", - "rev": "0afc2f0f19470e45a3941926a330f2db55ac2fbf", + "rev": "2f607e07f3ac7e53541120536708e824acccfaa8", "type": "github" }, "original": { @@ -170,11 +170,11 @@ ] }, "locked": { - "lastModified": 1727346017, - "narHash": "sha256-z7OCFXXxIseJhEHiCkkUOkYxD9jtLU8Kf5Q9WC0SjJ8=", + "lastModified": 1730837930, + "narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=", "owner": "nix-community", "repo": "home-manager", - "rev": "c124568e1054a62c20fbe036155cc99237633327", + "rev": "2f607e07f3ac7e53541120536708e824acccfaa8", "type": "github" }, "original": { @@ -183,13 +183,41 @@ "type": "github" } }, + "ixx": { + "inputs": { + "flake-utils": [ + "nixvim", + "nuschtosSearch", + "flake-utils" + ], + "nixpkgs": [ + "nixvim", + "nuschtosSearch", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729958008, + "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", + "owner": "NuschtOS", + "repo": "ixx", + "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "ref": "v0.0.6", + "repo": "ixx", + "type": "github" + } + }, "master": { "locked": { - "lastModified": 1727383661, - "narHash": "sha256-VAr5tdAx2SPNnGSrfutaaXfcaHTcTDG6TNWSVHgsghY=", + "lastModified": 1731168639, + "narHash": "sha256-iSjFu7x07YCjY0d5TbTFF5PGalnoapxUzw1jXMNfy2I=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "029effe15e81058f0284a8afa9dea7d08721f2b7", + "rev": "b35c45a2c17458a108d03f2a780d8a2f17c16b6e", "type": "github" }, "original": { @@ -207,11 +235,11 @@ ] }, "locked": { - "lastModified": 1727003835, - "narHash": "sha256-Cfllbt/ADfO8oxbT984MhPHR6FJBaglsr1SxtDGbpec=", + "lastModified": 1731153869, + "narHash": "sha256-3Ftf9oqOypcEyyrWJ0baVkRpvQqroK/SVBFLvU3nPuc=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "bd7d1e3912d40f799c5c0f7e5820ec950f1e0b3d", + "rev": "5c74ab862c8070cbf6400128a1b56abb213656da", "type": "github" }, "original": { @@ -230,11 +258,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1727355852, - "narHash": "sha256-xA2cl4oz59Haqa8xAGCd2vD2JWkYUpRUlnO4GTDfITU=", + "lastModified": 1731116135, + "narHash": "sha256-IJ7SViFR2APiuV3k+8v6NIMI1K7oP0Q3cNNfrdlbefU=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "80d55e1bb531f10d2f6ccc5f6686f6b0570f654e", + "rev": "c74c207183e32f23a94b4bb8b69bc5064db98894", "type": "github" }, "original": { @@ -245,11 +273,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1727122398, - "narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=", + "lastModified": 1730785428, + "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "30439d93eb8b19861ccbe3e581abf97bdc91b093", + "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", "type": "github" }, "original": { @@ -260,11 +288,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1727129439, - "narHash": "sha256-nPyrcFm6FSk7CxzVW4x2hu62aLDghNcv9dX6DF3dXw8=", + "lastModified": 1730883749, + "narHash": "sha256-mwrFF0vElHJP8X3pFCByJR365Q2463ATp2qGIrDUdlE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "babc25a577c3310cce57c72d5bed70f4c3c3843a", + "rev": "dba414932936fde69f0606b4f1d87c5bc0003ede", "type": "github" }, "original": { @@ -276,11 +304,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1726937504, - "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=", + "lastModified": 1727348695, + "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9357f4f23713673f310988025d9dc261c20e70c6", + "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784", "type": "github" }, "original": { @@ -305,11 +333,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1727366999, - "narHash": "sha256-IGzvFj3RDBkLF92pF4txAon7kJTQMhmR/HTKViKhys8=", + "lastModified": 1731155487, + "narHash": "sha256-+D57j7BcV5O3XH9za3c3XXVLHr+F+enThAN2EeF6H/M=", "owner": "nix-community", "repo": "nixvim", - "rev": "2ea7009e61ea02e08e480c94c06e71e640a59132", + "rev": "31364af1990067d5529846a2ebf17a42c5ab22ff", "type": "github" }, "original": { @@ -321,17 +349,18 @@ "nuschtosSearch": { "inputs": { "flake-utils": "flake-utils", + "ixx": "ixx", "nixpkgs": [ "nixvim", "nixpkgs" ] }, "locked": { - "lastModified": 1726995581, - "narHash": "sha256-lgsE/CTkZk9OIiFGEIrxXZQ7Feiv41dqlN7pEfTdgew=", + "lastModified": 1731060242, + "narHash": "sha256-43yLsOm/wxBbfYSNDWVJeVv5Ij+23X3BIjFUfsdx/6M=", "owner": "NuschtOS", "repo": "search", - "rev": "3b7dd61b365ca45380707453758a45f2e9977be3", + "rev": "ef493352f9e1f051e01a55c062731503a6b36b4e", "type": "github" }, "original": { @@ -358,11 +387,11 @@ ] }, "locked": { - "lastModified": 1727231386, - "narHash": "sha256-XLloPtQHKk/Tdt8t8zIb+JhmunlH3YB9Jz8RTlQ3N/4=", + "lastModified": 1731032894, + "narHash": "sha256-dQSyYPmrQiPr+PGEd+K8038rubFGz7G/dNXVeaGWE0w=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "b5f76c3b09a8194889f5328a480fbea1a9115518", + "rev": "d52f2a4c103a0acf09ded857b9e2519ae2360e59", "type": "github" }, "original": { @@ -394,11 +423,11 @@ ] }, "locked": { - "lastModified": 1727252110, - "narHash": "sha256-3O7RWiXpvqBcCl84Mvqa8dXudZ1Bol1ubNdSmQt7nF4=", + "lastModified": 1730321837, + "narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "1bff2ba6ec22bc90e9ad3f7e94cca0d37870afa3", + "rev": "746901bb8dba96d154b66492a29f5db0693dbfcc", "type": "github" }, "original": { @@ -412,11 +441,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1727287465, - "narHash": "sha256-XQAf5M593WmxgaXagtkci/H9DA3jSVx1TJk6F3X5VQo=", + "lastModified": 1727721329, + "narHash": "sha256-QYlWZwUSwrM7BuO+dXclZIwoPvBIuJr6GpFKv9XKFPI=", "owner": "MarceColl", "repo": "zen-browser-flake", - "rev": "96f1b5d80bf7360cb77c9b521f388324f18383a0", + "rev": "e6ab73f405e9a2896cce5956c549a9cc359e5fcc", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 78ceaec..b0c73f6 100644 --- a/flake.nix +++ b/flake.nix @@ -23,6 +23,7 @@ nixos = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = {inherit nixvim;}; + specialArgs.inputs = inputs; modules = [ { nix.settings = { diff --git a/gruvbox_modules/cava/config b/gruvbox_modules/cava/config new file mode 100644 index 0000000..87a8c5c --- /dev/null +++ b/gruvbox_modules/cava/config @@ -0,0 +1,218 @@ +## Configuration file for CAVA. +# Remove the ; to change parameters. + + +[general] + +# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 +; mode = normal + +# Accepts only non-negative values. +; framerate = 60 + +# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off +# new as of 0.6.0 autosens of low values (dynamic range) +# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 +; autosens = 1 +; overshoot = 20 + +# Manual sensitivity in %. If autosens is enabled, this will only be the initial value. +# 200 means double height. Accepts only non-negative values. +; sensitivity = 100 + +# The number of bars (0-512). 0 sets it to auto (fill up console). +# Bars' width and space between bars in number of characters. +; bars = 0 +; bar_width = 2 +; bar_spacing = 1 +# bar_height is only used for output in "noritake" format +; bar_height = 32 + +# For SDL width and space between bars is in pixels, defaults are: +; bar_width = 20 +; bar_spacing = 5 + +# sdl_glsl have these default values, they are only used to calulate max number of bars. +; bar_width = 1 +; bar_spacing = 0 + + +# Lower and higher cutoff frequencies for lowest and highest bars +# the bandwidth of the visualizer. +# Note: there is a minimum total bandwidth of 43Mhz x number of bars. +# Cava will automatically increase the higher cutoff if a too low band is specified. +; lower_cutoff_freq = 50 +; higher_cutoff_freq = 10000 + + +# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and +# only check for input once per second. Cava will wake up once input is detected. 0 = disable. +; sleep_timer = 0 + + +[input] + +# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem' +# Defaults to 'pulse', 'pipewire', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. +# On Mac it defaults to 'portaudio' or 'fifo' +# On windows this is automatic and no input settings are needed. +# +# All input methods uses the same config variable 'source' +# to define where it should get the audio. +# +# For pulseaudio and pipewire 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink +# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). +# +# For pipewire 'source' will be the object name or object.serial of the device to capture from. +# Both input and output devices are supported. +# +# For alsa 'source' will be the capture device. +# For fifo 'source' will be the path to fifo-file. +# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address +; method = pulse +; source = auto + +; method = pipewire +; source = auto + +; method = alsa +; source = hw:Loopback,1 + +; method = fifo +; source = /tmp/mpd.fifo +; sample_rate = 44100 +; sample_bits = 16 + +; method = shmem +; source = /squeezelite-AA:BB:CC:DD:EE:FF + +; method = portaudio +; source = auto + + +[output] + +# Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake', 'sdl' +# or 'sdl_glsl'. +# 'noncurses' uses a custom framebuffer technique and prints only changes +# from frame to frame in the terminal. 'ncurses' is default if supported. +# +# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data +# stream of the bar heights that can be used to send to other applications. +# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. +# +# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display +# in graphic mode. It only support the 3000 series graphical VFDs for now. +# +# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context. +# 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or +# use one of the predefined ones. +; method = ncurses + +# Orientation of the visualization. Can be 'bottom', 'top', 'left' or 'right'. +# Default is 'bottom'. Other orientations are only supported on sdl and ncruses +# output. Note: many fonts have weird glyphs for 'top' and 'right' characters, +# which can make ncurses not look right. +; orientation = bottom + +# Visual channels. Can be 'stereo' or 'mono'. +# 'stereo' mirrors both channels with low frequencies in center. +# 'mono' outputs left to right lowest to highest frequencies. +# 'mono_option' set mono to either take input from 'left', 'right' or 'average'. +# set 'reverse' to 1 to display frequencies the other way around. +; channels = stereo +; mono_option = average +; reverse = 0 + +# Raw output target. A fifo will be created if target does not exist. +; raw_target = /dev/stdout + +# Raw data format. Can be 'binary' or 'ascii'. +; data_format = binary + +# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). +; bit_format = 16bit + +# Ascii max value. In 'ascii' mode range will run from 0 to value specified here +; ascii_max_range = 1000 + +# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. +# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). +; bar_delimiter = 59 +; frame_delimiter = 10 + +# sdl window size and position. -1,-1 is centered. +; sdl_width = 1000 +; sdl_height = 500 +; sdl_x = -1 +; sdl_y= -1 + +# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none' +# 'frequency' displays the lower cut off frequency of the bar above. +# Only supported on ncurses and noncurses output. +; xaxis = none + +# enable alacritty synchronized updates. 1 = on, 0 = off +# removes flickering in alacritty terminal emulator. +# defaults to off since the behaviour in other terminal emulators is unknown +; alacritty_sync = 0 + +# Shaders for sdl_glsl, located in $HOME/.config/cava/shaders +; vertex_shader = pass_through.vert +; fragment_shader = bar_spectrum.frag + +; for glsl output mode, keep rendering even if no audio +; continuous_rendering = 0 + +[color] +gradient = 1 +gradient_count = 8 + +#GruvBox Green to Red Gradient +gradient_color_1 = '#98971a' +gradient_color_2 = '#98971a' +gradient_color_3 = '#fabd2f' +gradient_color_4 = '#fabd2f' +gradient_color_5 = '#fabd2f' +gradient_color_6 = '#d65d0e' +gradient_color_7 = '#cc241d' +gradient_color_8 = '#cc241d' + + +[smoothing] + +# Percentage value for integral smoothing. Takes values from 0 - 100. +# Higher values means smoother, but less precise. 0 to disable. +# DEPRECATED as of 0.8.0, use noise_reduction instead +; integral = 77 + +# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. +; monstercat = 0 +; waves = 0 + +# Set gravity percentage for "drop off". Higher values means bars will drop faster. +# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". +# DEPRECATED as of 0.8.0, use noise_reduction instead +; gravity = 100 + + +# In bar height, bars that would have been lower that this will not be drawn. +# DEPRECATED as of 0.8.0 +; ignore = 0 + +# Noise reduction, int 0 - 100. default 77 +# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth +# 100 will be very slow and smooth, 0 will be fast but noisy. +; noise_reduction = 77 + + +[eq] + +# This one is tricky. You can have as much keys as you want. +# Remember to uncomment more than one key! More keys = more precision. +# Look at readme.md on github for further explanations and examples. +; 1 = 1 # bass +; 2 = 1 +; 3 = 1 # midtone +; 4 = 1 +; 5 = 1 # treble diff --git a/gruvbox_modules/cava/shaders/bar_spectrum.frag b/gruvbox_modules/cava/shaders/bar_spectrum.frag new file mode 100644 index 0000000..b078913 --- /dev/null +++ b/gruvbox_modules/cava/shaders/bar_spectrum.frag @@ -0,0 +1,79 @@ +#version 330 + +in vec2 fragCoord; +out vec4 fragColor; + +// bar values. defaults to left channels first (low to high), then right (high to low). +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) +uniform int bar_width; // bar width (configurable), not used here +uniform int bar_spacing; // space bewteen bars (configurable) + +uniform vec3 u_resolution; // window resolution + +//colors, configurable in cava config file (r,g,b) (0.0 - 1.0) +uniform vec3 bg_color; // background color +uniform vec3 fg_color; // foreground color + +uniform int gradient_count; +uniform vec3 gradient_colors[8]; // gradient colors + +vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max) +{ + //create color based on fraction of this color and next color + float yr = (y - y_min) / (y_max - y_min); + return col_1 * (1.0 - yr) + col_2 * yr; +} + +void main() +{ + // find which bar to use based on where we are on the x axis + float x = u_resolution.x * fragCoord.x; + int bar = int(bars_count * fragCoord.x); + + //calculate a bar size + float bar_size = u_resolution.x / bars_count; + + //the y coordinate and bar values are the same + float y = bars[bar]; + + // make sure there is a thin line at bottom + if (y * u_resolution.y < 1.0) + { + y = 1.0 / u_resolution.y; + } + + //draw the bar up to current height + if (y > fragCoord.y) + { + //make some space between bars basen on settings + if (x > (bar + 1) * (bar_size) - bar_spacing) + { + fragColor = vec4(bg_color,1.0); + } + else + { + if (gradient_count == 0) + { + fragColor = vec4(fg_color,1.0); + } + else + { + //find which color in the configured gradient we are at + int color = int((gradient_count - 1) * fragCoord.y); + + //find where on y this and next color is supposed to be + float y_min = color / (gradient_count - 1.0); + float y_max = (color + 1.0) / (gradient_count - 1.0); + + //make color + fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0); + } + } + } + else + { + fragColor = vec4(bg_color,1.0); + } +} \ No newline at end of file diff --git a/gruvbox_modules/cava/shaders/northern_lights.frag b/gruvbox_modules/cava/shaders/northern_lights.frag new file mode 100644 index 0000000..ecd859a --- /dev/null +++ b/gruvbox_modules/cava/shaders/northern_lights.frag @@ -0,0 +1,34 @@ +#version 330 + +in vec2 fragCoord; +out vec4 fragColor; + +// bar values. defaults to left channels first (low to high), then right (high to low). +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) + +uniform vec3 u_resolution; // window resolution, not used here + +//colors, configurable in cava config file +uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here +uniform vec3 fg_color; // foreground color, not used here + +void main() +{ + // find which bar to use based on where we are on the x axis + int bar = int(bars_count * fragCoord.x); + + float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0; + float y = (bars[bar]) * bar_y; + + float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count; + float bar_r = 1.0 - abs((bar_x - 0.5)) * 2; + + bar_r = bar_r * bar_r * 2; + + // set color + fragColor.r = fg_color.x * y * bar_r; + fragColor.g = fg_color.y * y * bar_r; + fragColor.b = fg_color.z * y * bar_r; +} diff --git a/gruvbox_modules/cava/shaders/pass_through.vert b/gruvbox_modules/cava/shaders/pass_through.vert new file mode 100644 index 0000000..a4f20e5 --- /dev/null +++ b/gruvbox_modules/cava/shaders/pass_through.vert @@ -0,0 +1,14 @@ +#version 330 + + +// Input vertex data, different for all executions of this shader. +layout(location = 0) in vec3 vertexPosition_modelspace; + +// Output data ; will be interpolated for each fragment. +out vec2 fragCoord; + +void main() +{ + gl_Position = vec4(vertexPosition_modelspace,1); + fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0; +} diff --git a/gruvbox_modules/dunst/dunstrc b/gruvbox_modules/dunst/dunstrc new file mode 100644 index 0000000..060fdd7 --- /dev/null +++ b/gruvbox_modules/dunst/dunstrc @@ -0,0 +1,22 @@ + +[global] +separator_color= frame +progress_bar = true +progress_bar_corner_radius = 10 +corner_radius = 10 +icon_corner_radius = 10 + +[urgency_low] +background = "#1d2021" +foreground = "#d4be98" +frame_color = "#1d2021" + +[urgency_normal] +background = "#1d2021" +foreground = "#d4be98" +frame_color = "#1d2021" + +[urgency_critical] +background = "#3c1f1e" +foreground = "#ddc7a1" +frame_color = "#3c1f1e" diff --git a/gruvbox_modules/hypr/hyprland.conf b/gruvbox_modules/hypr/hyprland.conf new file mode 100644 index 0000000..1b210f2 --- /dev/null +++ b/gruvbox_modules/hypr/hyprland.conf @@ -0,0 +1,180 @@ +autogenerated = 0 # remove this line to remove the warning + +source=~/.config/hypr/rose-pine.conf + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor = HDMI-A-1, 3840x2160@60, 0x0, 2 +exec-once = hyprctl dispatch workspace 1 +exec-once = swaybg -i ~/Pictures/Wallpaper/wallhaven-z85eoy.jpg +exec-once = hyprlock +exec-once = waybar +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +# exec-once = waybar & hyprpaper & firefox + +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +# Set programs that you use +$terminal = kitty +$fileManager = cosmic-files +$menu = rofi -config ~/.config/rofi/apps.rasi -show drun + +# Some default env vars. +env = XCURSOR_SIZE,24 +env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = no + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 5 + gaps_out = 5 + border_size = 2 + col.active_border = rgb(1d2021) + col.inactive_border = rgb(1d2021) + layout = dwindle + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 10 + + blur { + enabled = yes + size = 5 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = false + } + + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) +} + +animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} + +misc { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more + + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + +# Window Rules + + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Return, exec, $terminal +bind = $mainMod, Q, killactive, +bind = $mainMod, M, exec, hyprlock +bind = $mainMod, E, exec, $fileManager +bind = $mainMod, V, togglefloating, +bind = $mainMod, Space, exec, $menu +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle +bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ +bind = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%- + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow diff --git a/gruvbox_modules/hypr/hyprlock.conf b/gruvbox_modules/hypr/hyprlock.conf new file mode 100644 index 0000000..61d443c --- /dev/null +++ b/gruvbox_modules/hypr/hyprlock.conf @@ -0,0 +1,84 @@ +background { + monitor = + path = ~/Pictures/Wallpaper/wallhaven-z85eoy.jpg + + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + blur_passes = 3 # 0 disables blurring + blur_size = 13 + contrast = 0.8916 + brightness = 0.8172 + vibrancy = 0.1696 + vibrancy_darkness = 0.0 +} + + +image { + monitor = + path = ~/NixOS-Configs/pfp.jpg + border_size = 2 + border_color = rgba(255, 255, 255, 0) + size = 130 + rounding = -1 + rotate = 0 + reload_time = -1 + reload_cmd = + position = 0, 40 + halign = center + valign = center +} + +label { + monitor = + text = cmd[update:1000] echo -e "$(date +"%A, %B %d")" + color = rgba(235, 219, 178, 0.70) + font_size = 25 + font_family = Roboto Bold + position = 0, 350 + halign = center + valign = center +} + +label { + monitor = + text = cmd[update:1000] echo "$(date +"%I:%M")" + color = rgba(235, 219, 178, 0.70) + font_size = 120 + font_family = Roboto Bold + position = 0, 250 + halign = center + valign = center +} + +label { + monitor = + text = Joshua Elmasri + text_align = center # center/right or any value for default left. multi-line text alignment inside label container + color = rgba(235, 219, 178, 1.0) + font_size = 30 + font_family = Roboto Bold + rotate = 0 # degrees, counter-clockwise + + position = 0, -110 + halign = center + valign = center +} + +input-field { + monitor = + size = 300, 60 + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = false + dots_fade_time = 0 + outer_color = rgba(0, 0, 0, 0) + inner_color = rgba(255, 255, 255, 0.1) + font_color = rgb(235, 219, 178) + fade_on_empty = false + font_family = Roboto + placeholder_text = Password + hide_input = false + position = 0, -210 + halign = center + valign = center +} diff --git a/gruvbox_modules/hypr/rose-pine.conf b/gruvbox_modules/hypr/rose-pine.conf new file mode 100644 index 0000000..48e78b9 --- /dev/null +++ b/gruvbox_modules/hypr/rose-pine.conf @@ -0,0 +1,19 @@ +## name: Rosé Pine +## author: jishnurajendran +## upstream: https://github.com/jishnurajendran/hyprland-rosepine/blob/main/rose-pine.conf +## All natural pine, faux fur and a bit of soho vibes for the classy minimalist +$base = 0xff191724 +$surface = 0xff1f1d2e +$overlay = 0xff26233a +$muted = 0xff6e6a86 +$subtle = 0xff908caa +$text = 0xffe0def4 +$love = 0xffeb6f92 +$gold = 0xfff6c177 +$rose = 0xffebbcba +$pine = 0xff31748f +$foam = 0xff9ccfd8 +$iris = 0xffc4a7e7 +$highlightLow = 0xff21202e +$highlightMed = 0xff403d52 +$highlightHigh = 0xff524f67 diff --git a/gruvbox_modules/kitty/kitty.conf b/gruvbox_modules/kitty/kitty.conf new file mode 100644 index 0000000..8b923b1 --- /dev/null +++ b/gruvbox_modules/kitty/kitty.conf @@ -0,0 +1,10 @@ +include themes/gruvbox.conf + +font_family Fira Code Nerd Font +bold_font auto +italic_font auto +bold_italic_font auto + +confirm_os_window_close 0 +background_opacity 0.8 +background_blur 0 diff --git a/gruvbox_modules/kitty/themes/gruvbox.conf b/gruvbox_modules/kitty/themes/gruvbox.conf new file mode 100644 index 0000000..34eacee --- /dev/null +++ b/gruvbox_modules/kitty/themes/gruvbox.conf @@ -0,0 +1,56 @@ +# vim:ft=kitty + +# gruvbox-dark colorscheme for kitty +# snazzy theme used as base + +cursor #928374 +cursor_text_color background + +visual_bell_color #8ec07c +bell_border_color #8ec07c + +active_border_color #d3869b +inactive_border_color #665c54 + +active_tab_foreground #fbf1c7 +active_tab_background #665c54 +inactive_tab_foreground #a89984 +inactive_tab_background #3c3836 + +foreground #ebdbb2 +background #272727 +selection_foreground #655b53 +selection_background #ebdbb2 +url_color #d65c0d + +# black +color0 #272727 +color8 #928373 + +# red +color1 #cc231c +color9 #fb4833 + +# green +color2 #989719 +color10 #b8ba25 + +# yellow +color3 #d79920 +color11 #fabc2e + +# blue +color4 #448488 +color12 #83a597 + +# magenta +color5 #b16185 +color13 #d3859a + +# cyan +color6 #689d69 +color14 #8ec07b + +# white +color7 #a89983 +color15 #ebdbb2 diff --git a/gruvbox_modules/kitty/themes/rose-pine-dawn.conf b/gruvbox_modules/kitty/themes/rose-pine-dawn.conf new file mode 100644 index 0000000..397c9a8 --- /dev/null +++ b/gruvbox_modules/kitty/themes/rose-pine-dawn.conf @@ -0,0 +1,56 @@ +## name: Rosé Pine Dawn +## author: mvllow +## license: MIT +## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine-dawn.conf +## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist + +foreground #575279 +background #faf4ed +selection_foreground #575279 +selection_background #dfdad9 + +cursor #cecacd +cursor_text_color #575279 + +url_color #907aa9 + +active_tab_foreground #575279 +active_tab_background #f2e9e1 +inactive_tab_foreground #9893a5 +inactive_tab_background #faf4ed + +active_border_color #286983 +inactive_border_color #dfdad9 + +# black +color0 #f2e9e1 +color8 #9893a5 + +# red +color1 #b4637a +color9 #b4637a + +# green +color2 #286983 +color10 #286983 + +# yellow +color3 #ea9d34 +color11 #ea9d34 + +# blue +color4 #56949f +color12 #56949f + +# magenta +color5 #907aa9 +color13 #907aa9 + +# cyan +color6 #d7827e +color14 #d7827e + +# white +color7 #575279 +color15 #575279 + diff --git a/gruvbox_modules/kitty/themes/rose-pine-moon.conf b/gruvbox_modules/kitty/themes/rose-pine-moon.conf new file mode 100644 index 0000000..4d4de88 --- /dev/null +++ b/gruvbox_modules/kitty/themes/rose-pine-moon.conf @@ -0,0 +1,56 @@ +## name: Rosé Pine Moon +## author: mvllow +## license: MIT +## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine-moon.conf +## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist + +foreground #e0def4 +background #232136 +selection_foreground #e0def4 +selection_background #44415a + +cursor #56526e +cursor_text_color #e0def4 + +url_color #c4a7e7 + +active_tab_foreground #e0def4 +active_tab_background #393552 +inactive_tab_foreground #6e6a86 +inactive_tab_background #232136 + +active_border_color #3e8fb0 +inactive_border_color #44415a + +# black +color0 #393552 +color8 #6e6a86 + +# red +color1 #eb6f92 +color9 #eb6f92 + +# green +color2 #3e8fb0 +color10 #3e8fb0 + +# yellow +color3 #f6c177 +color11 #f6c177 + +# blue +color4 #9ccfd8 +color12 #9ccfd8 + +# magenta +color5 #c4a7e7 +color13 #c4a7e7 + +# cyan +color6 #ea9a97 +color14 #ea9a97 + +# white +color7 #e0def4 +color15 #e0def4 + diff --git a/gruvbox_modules/kitty/themes/rose-pine.conf b/gruvbox_modules/kitty/themes/rose-pine.conf new file mode 100644 index 0000000..575c06b --- /dev/null +++ b/gruvbox_modules/kitty/themes/rose-pine.conf @@ -0,0 +1,56 @@ +## name: Rosé Pine +## author: mvllow +## license: MIT +## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine.conf +## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist + +foreground #e0def4 +background #191724 +selection_foreground #e0def4 +selection_background #403d52 + +cursor #524f67 +cursor_text_color #e0def4 + +url_color #c4a7e7 + +active_tab_foreground #e0def4 +active_tab_background #26233a +inactive_tab_foreground #6e6a86 +inactive_tab_background #191724 + +active_border_color #31748f +inactive_border_color #403d52 + +# black +color0 #26233a +color8 #6e6a86 + +# red +color1 #eb6f92 +color9 #eb6f92 + +# green +color2 #31748f +color10 #31748f + +# yellow +color3 #f6c177 +color11 #f6c177 + +# blue +color4 #9ccfd8 +color12 #9ccfd8 + +# magenta +color5 #c4a7e7 +color13 #c4a7e7 + +# cyan +color6 #ebbcba +color14 #ebbcba + +# white +color7 #e0def4 +color15 #e0def4 + diff --git a/gruvbox_modules/nvim/default.nix b/gruvbox_modules/nvim/default.nix new file mode 100644 index 0000000..3b3a238 --- /dev/null +++ b/gruvbox_modules/nvim/default.nix @@ -0,0 +1,21 @@ +{config, pkgs, lib, inputs, ...}: + +{ + programs.nixvim = { + enable = true; + colorschemes.gruvbox.enable = true; + plugins.nvim-tree.enable = true; + plugins.treesitter.enable = true; + plugins.lualine.enable = true; + plugins.lsp.enable = true; + plugins.luasnip.enable = true; + plugins.toggleterm.enable = true; + plugins.cmp.enable = true; + plugins.gitsigns.enable = true; + plugins.web-devicons.enable = true; + plugins.which-key.enable = true; + plugins.cmp-nvim-lsp.enable = true; + plugins.telescope.enable = true; + plugins.indent-blankline.enable = true; + }; +} diff --git a/gruvbox_modules/rofi/apps.rasi b/gruvbox_modules/rofi/apps.rasi new file mode 100644 index 0000000..d7d0d7d --- /dev/null +++ b/gruvbox_modules/rofi/apps.rasi @@ -0,0 +1,17 @@ +configuration { + show-icons: true; + font: "FreeSans Regular 12"; + icon-theme: "Gruvbox-Plus-Dark"; + + display-ssh: "󰣀 ssh:"; + display-run: "󱓞 run:"; + display-drun: "󰣖 drun:"; + display-window: "󱂬 window:"; + display-combi: "󰕘 combi:"; + display-filebrowser: "󰉋 filebrowser:"; + + dpi: 110; +} + + +@theme "~/.config/rofi/gruvbox-material.rasi" diff --git a/gruvbox_modules/rofi/config.rasi b/gruvbox_modules/rofi/config.rasi new file mode 100644 index 0000000..d7d0d7d --- /dev/null +++ b/gruvbox_modules/rofi/config.rasi @@ -0,0 +1,17 @@ +configuration { + show-icons: true; + font: "FreeSans Regular 12"; + icon-theme: "Gruvbox-Plus-Dark"; + + display-ssh: "󰣀 ssh:"; + display-run: "󱓞 run:"; + display-drun: "󰣖 drun:"; + display-window: "󱂬 window:"; + display-combi: "󰕘 combi:"; + display-filebrowser: "󰉋 filebrowser:"; + + dpi: 110; +} + + +@theme "~/.config/rofi/gruvbox-material.rasi" diff --git a/gruvbox_modules/rofi/gruvbox-material.rasi b/gruvbox_modules/rofi/gruvbox-material.rasi new file mode 100644 index 0000000..30c40e3 --- /dev/null +++ b/gruvbox_modules/rofi/gruvbox-material.rasi @@ -0,0 +1,141 @@ +* { + gruv0: #282828; + gruv1: #32302f; + gruv2: #45403d; + gruv3: #5a524c; + + gruv4: #fbf1c7; + gruv5: #f4e8be; + gruv6: #eee0b7; + + gruv7: #a89984; + gruv8: #928374; + gruv9: #7c6f64; + gruv10: #504945; + red: #ea6962; + + orange: #e78a4e; + yellow: #d8a657; + aqua: #89b482; + purple: #d3869b; + + reddark: #c14a4a; + yellowdark: #b47109; + + foreground: @gruv9; + background-color: transparent; + + highlight: underline bold #eee0b7; + + transparent: rgba(0,0,0,0.1); + +} + +window { + location: center; + anchor: center; + border-radius: 20px; + height: 560px; + width: 600px; + + background-color: #282828; + spacing: 0; + children: [mainbox]; + orientation: horizontal; +} + +mainbox { + spacing: 0; + children: [ inputbar, message, listview ]; +} + +message { + padding: 10px; + border: 0px 2px 2px 2px; + border-color: @gruv0; + background-color: @transparent; +} + +inputbar { + color: @gruv6; + padding: 14px; + background-color: @transparent; + border-color: @gruv6; + + border: 4px; + border-radius: 20px 20px 0px 0px; +} + +entry, prompt, case-indicator { + text-font: inherit; + text-color: inherit; +} + +prompt { + margin: 0px 1em 0em 0em ; +} + +listview { + padding: 8px; + border-radius: 0px 0px 20px 20px; + border: 0px 4px 4px 4px; + border-color: @gruv6; + background-color: @transparent; + dynamic: false; +} + +element { + padding: 5px; + vertical-align: 0.5; + border-radius: 5px; + color: @foreground; + text-color: @gruv6; + background-color: @transparent; +} + +element.normal.active { + background-color: @yellow; +} + +element.normal.urgent { + background-color: @reddark; +} + +element.selected.normal { + background-color: @gruv7; + text-color: @gruv0; +} + +element.selected.active { + background-color: @yellowdark; +} + +element.selected.urgent { + background-color: @red; +} + +element.alternate.normal { + background-color: @transparent; +} + +element-text, element-icon { + size: 3ch; + margin: 0 10 0 0; + vertical-align: 0.5; + text-color: @gruv6; +} + +button { + padding: 6px; + color: @foreground; + horizontal-align: 0.5; + + border: 2px 0px 2px 2px; + border-radius: 5px; + border-color: @foreground; +} + +button.selected.normal { + border: 2px 0px 2px 2px; + border-color: @foreground; +} diff --git a/gruvbox_modules/waybar/config b/gruvbox_modules/waybar/config new file mode 100644 index 0000000..8bf1dbe --- /dev/null +++ b/gruvbox_modules/waybar/config @@ -0,0 +1,87 @@ +{ + "layer": "top", + "margin": "5, 5, 5, 5", + "modules-left": ["hyprland/workspaces"], + "modules-center": ["clock"], + "modules-right": ["mpris", "cava", "network", "wireplumber", "tray"], + "battery": { + "format": "{capacity}% {icon}", + "format-icons": ["", "", "", "", ""] + }, + "clock": { + "format-alt": "{:%a, %d. %b %H:%M}" + }, + + "cava": { + "bars": 14, + "bar_delimiter": 0, + "format-icons" : ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" ], + }, + + "network": { + "format": "{ifname}", + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "󰈁", + "format-disconnected": "", //An empty format will hide the module. + "tooltip-format": "{ifname} via {gwaddr} 󰊗", + "tooltip-format-wifi": "{essid} ({signalStrength}%) ", + "tooltip-format-ethernet": "{ifname} ", + "tooltip-format-disconnected": "Disconnected", + "max-length": 50 + }, + + "privacy": { + "icon-spacing": 4, + "icon-size": 18, + "transition-duration": 250, + "modules": [ + { + "type": "screenshare", + "tooltip": true, + "tooltip-icon-size": 24 + }, + { + "type": "audio-out", + "tooltip": true, + "tooltip-icon-size": 24 + }, + { + "type": "audio-in", + "tooltip": true, + "tooltip-icon-size": 24 + } + ] + }, + + + "mpris": { + "format": "{player_icon}", + "format-paused": "{status_icon}", + "player-icons": { + "default": "▶", + "mpv": "🎵" + }, + "status-icons": { + "paused": "⏸" + }, + }, + + "wireplumber": { + "format": "{volume}%", + "format-muted": "󰝟", + "on-click": "pavucontrol", + "scroll-step": 0.8, + "max-volume": 100, + "tooltip": true, + "tooltip-format": "{volume}% volume on device {node_name}" + }, + + "hyprland/workspaces": { + "active-only": false, + "format": "{icon}", + "format-icons": { + "active": "", + "default": "", + } + } +} diff --git a/gruvbox_modules/waybar/rose-pine.css b/gruvbox_modules/waybar/rose-pine.css new file mode 100644 index 0000000..a3ae0e4 --- /dev/null +++ b/gruvbox_modules/waybar/rose-pine.css @@ -0,0 +1,23 @@ +/* +* Variant: Rosé Pine +* Maintainer: DankChoir +*/ + +@define-color base #191724; +@define-color surface #1f1d2e; +@define-color overlay #26233a; + +@define-color muted #6e6a86; +@define-color subtle #908caa; +@define-color text #e0def4; + +@define-color love #eb6f92; +@define-color gold #f6c177; +@define-color rose #ebbcba; +@define-color pine #31748f; +@define-color foam #9ccfd8; +@define-color iris #c4a7e7; + +@define-color highlightLow #21202e; +@define-color highlightMed #403d52; +@define-color highlightHigh #524f67; diff --git a/gruvbox_modules/waybar/style.css b/gruvbox_modules/waybar/style.css new file mode 100644 index 0000000..7fab9a8 --- /dev/null +++ b/gruvbox_modules/waybar/style.css @@ -0,0 +1,93 @@ + +* { + font-family: "Roboto"; + font-size: 17px; + border-radius: 10px; +} + +window#waybar { + background-color: #282828; + color: #ebdbb2; + margin: 0 4px; +} +window > box { + background-color: transparent; + margin-top: 5px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +#network { + padding-left: 4px; + padding-right: 2px; + color: #458588; +} + +#cava { + color: #b8bb26; + margin-left: 5px; +} + +#tray { + margin-right: 5px; + margin-left: 5px; +} + +#workspaces.button { + color: #ebdbb2; +} + +#workspaces.button.focused { + color: #a89984; + background-color: #ebdbb2; +} + +#clock { + padding: 0 5px; + margin-left: 5px; + margin-right: 5px; +} +#mpris { + padding-left: 5px; +} + +.modules-center { + background: #3c3836; + box-shadow: 0px 0px 5px 0px #101010; +} + +.modules-right { + background: #3c3836; + box-shadow: 0px 0px 5px 0px #101010; +} + +.modules-left { + background: #3c3836; + box-shadow: 0px 0px 5px 0px #101010; +} + +#wireplumber { + padding-left: 5px; + +} + +#pulseaudio-slider slider { + min-height: 0px; + min-width: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; +} +#pulseaudio-slider trough { + min-height: 5px; + min-width: 80px; + border-radius: 5px; + background-color: #282828; +} +#pulseaudio-slider highlight { + min-width: 10px; + border-radius: 5px; + background-color: #98971a; +} diff --git a/home.nix b/home.nix index 93f3dc2..89f2197 100644 --- a/home.nix +++ b/home.nix @@ -19,12 +19,14 @@ pkgs.adw-gtk3 ]; + programs.hyprlock.enable = true; xdg.configFile.hypr.source = ./modules/hypr; xdg.configFile.waybar.source = ./modules/waybar; xdg.configFile.cava.source = ./modules/cava; xdg.configFile.kitty.source = ./modules/kitty; xdg.configFile.rofi.source = ./modules/rofi; + xdg.configFile.dunst.source = ./modules/dunst; services.mpd-mpris.enable = true; diff --git a/modules/cava/config b/modules/cava/config index 21364cc..87a8c5c 100644 --- a/modules/cava/config +++ b/modules/cava/config @@ -165,16 +165,18 @@ ; continuous_rendering = 0 [color] - -background = '#191724' gradient = 1 -gradient_count = 6 -gradient_color_1 = '#31748f' -gradient_color_2 = '#9ccfd8' -gradient_color_3 = '#c4a7e7' -gradient_color_4 = '#ebbcba' -gradient_color_5 = '#f6c177' -gradient_color_6 = '#eb6f92' +gradient_count = 8 + +#GruvBox Green to Red Gradient +gradient_color_1 = '#98971a' +gradient_color_2 = '#98971a' +gradient_color_3 = '#fabd2f' +gradient_color_4 = '#fabd2f' +gradient_color_5 = '#fabd2f' +gradient_color_6 = '#d65d0e' +gradient_color_7 = '#cc241d' +gradient_color_8 = '#cc241d' [smoothing] diff --git a/modules/dunst/dunstrc b/modules/dunst/dunstrc new file mode 100644 index 0000000..060fdd7 --- /dev/null +++ b/modules/dunst/dunstrc @@ -0,0 +1,22 @@ + +[global] +separator_color= frame +progress_bar = true +progress_bar_corner_radius = 10 +corner_radius = 10 +icon_corner_radius = 10 + +[urgency_low] +background = "#1d2021" +foreground = "#d4be98" +frame_color = "#1d2021" + +[urgency_normal] +background = "#1d2021" +foreground = "#d4be98" +frame_color = "#1d2021" + +[urgency_critical] +background = "#3c1f1e" +foreground = "#ddc7a1" +frame_color = "#3c1f1e" diff --git a/modules/hypr/hyprland.conf b/modules/hypr/hyprland.conf index 1f5778f..6902bbc 100644 --- a/modules/hypr/hyprland.conf +++ b/modules/hypr/hyprland.conf @@ -3,14 +3,12 @@ autogenerated = 0 # remove this line to remove the warning source=~/.config/hypr/rose-pine.conf # See https://wiki.hyprland.org/Configuring/Monitors/ -monitor=DP-3,2560x1440@170,0x0,1 -monitor=DP-2,3840x2160@60,auto,1.5 -workspace=10,monitor:DP-2 -workspace=1,monitor:DP-3 +monitor = HDMI-A-1, 2560x1440@60, 0x0, 1 exec-once = hyprctl dispatch workspace 1 -exec-once = swaybg -i ~/Pictures/outset_island_night.jpg +exec-once = swaybg -i ~/Pictures/Wallpaper/wallhaven-z85eoy.jpg +exec-once = hyprlock exec-once = waybar -# exec-once = waybar +exec-once = sunshine # See https://wiki.hyprland.org/Configuring/Keywords/ for more # Execute your favorite apps at launch @@ -21,12 +19,12 @@ exec-once = waybar # Set programs that you use $terminal = kitty -$fileManager = cosmic-files -$menu = rofi -show drun +$fileManager = cosmic-files +$menu = rofi -config ~/.config/rofi/apps.rasi -show drun # Some default env vars. env = XCURSOR_SIZE,24 -env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that +env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { @@ -35,6 +33,7 @@ input { kb_model = kb_options = kb_rules = + accel_profile = flat follow_mouse = 1 @@ -49,11 +48,10 @@ general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 5 - gaps_out = 20 + gaps_out = 5 border_size = 2 - col.active_border = $rose - col.inactive_border = $muted - + col.active_border = rgb(1d2021) + col.inactive_border = rgb(1d2021) layout = dwindle # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on @@ -64,7 +62,15 @@ decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 - + + blur { + enabled = yes + size = 5 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = false + } drop_shadow = yes shadow_range = 4 @@ -93,10 +99,6 @@ dwindle { preserve_split = yes # you probably want this } -master { - # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - new_is_master = true -} gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more @@ -105,21 +107,21 @@ gestures { misc { # See https://wiki.hyprland.org/Configuring/Variables/ for more - force_default_wallpaper = -1 # Set to 0 to disable the anime mascot wallpapers + force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more -device:epic-mouse-v1 { - sensitivity = -0.5 -} + # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -windowrulev2 = nomaximizerequest, class:.* # You'll probably like this. + +# Window Rules + # See https://wiki.hyprland.org/Configuring/Keywords/ for more @@ -128,12 +130,14 @@ $mainMod = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Return, exec, $terminal bind = $mainMod, Q, killactive, -bind = $mainMod, M, exit, +bind = $mainMod, M, exec, hyprlock bind = $mainMod, E, exec, $fileManager bind = $mainMod, V, togglefloating, bind = $mainMod, Space, exec, $menu bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle +bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ +bind = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%- # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l diff --git a/modules/hypr/hyprlock.conf b/modules/hypr/hyprlock.conf new file mode 100644 index 0000000..61d443c --- /dev/null +++ b/modules/hypr/hyprlock.conf @@ -0,0 +1,84 @@ +background { + monitor = + path = ~/Pictures/Wallpaper/wallhaven-z85eoy.jpg + + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + blur_passes = 3 # 0 disables blurring + blur_size = 13 + contrast = 0.8916 + brightness = 0.8172 + vibrancy = 0.1696 + vibrancy_darkness = 0.0 +} + + +image { + monitor = + path = ~/NixOS-Configs/pfp.jpg + border_size = 2 + border_color = rgba(255, 255, 255, 0) + size = 130 + rounding = -1 + rotate = 0 + reload_time = -1 + reload_cmd = + position = 0, 40 + halign = center + valign = center +} + +label { + monitor = + text = cmd[update:1000] echo -e "$(date +"%A, %B %d")" + color = rgba(235, 219, 178, 0.70) + font_size = 25 + font_family = Roboto Bold + position = 0, 350 + halign = center + valign = center +} + +label { + monitor = + text = cmd[update:1000] echo "$(date +"%I:%M")" + color = rgba(235, 219, 178, 0.70) + font_size = 120 + font_family = Roboto Bold + position = 0, 250 + halign = center + valign = center +} + +label { + monitor = + text = Joshua Elmasri + text_align = center # center/right or any value for default left. multi-line text alignment inside label container + color = rgba(235, 219, 178, 1.0) + font_size = 30 + font_family = Roboto Bold + rotate = 0 # degrees, counter-clockwise + + position = 0, -110 + halign = center + valign = center +} + +input-field { + monitor = + size = 300, 60 + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = false + dots_fade_time = 0 + outer_color = rgba(0, 0, 0, 0) + inner_color = rgba(255, 255, 255, 0.1) + font_color = rgb(235, 219, 178) + fade_on_empty = false + font_family = Roboto + placeholder_text = Password + hide_input = false + position = 0, -210 + halign = center + valign = center +} diff --git a/modules/kitty/kitty.conf b/modules/kitty/kitty.conf index 32cc63d..8b923b1 100644 --- a/modules/kitty/kitty.conf +++ b/modules/kitty/kitty.conf @@ -1,6 +1,10 @@ -include themes/rose-pine.conf +include themes/gruvbox.conf font_family Fira Code Nerd Font bold_font auto italic_font auto bold_italic_font auto + +confirm_os_window_close 0 +background_opacity 0.8 +background_blur 0 diff --git a/modules/kitty/themes/gruvbox.conf b/modules/kitty/themes/gruvbox.conf new file mode 100644 index 0000000..34eacee --- /dev/null +++ b/modules/kitty/themes/gruvbox.conf @@ -0,0 +1,56 @@ +# vim:ft=kitty + +# gruvbox-dark colorscheme for kitty +# snazzy theme used as base + +cursor #928374 +cursor_text_color background + +visual_bell_color #8ec07c +bell_border_color #8ec07c + +active_border_color #d3869b +inactive_border_color #665c54 + +active_tab_foreground #fbf1c7 +active_tab_background #665c54 +inactive_tab_foreground #a89984 +inactive_tab_background #3c3836 + +foreground #ebdbb2 +background #272727 +selection_foreground #655b53 +selection_background #ebdbb2 +url_color #d65c0d + +# black +color0 #272727 +color8 #928373 + +# red +color1 #cc231c +color9 #fb4833 + +# green +color2 #989719 +color10 #b8ba25 + +# yellow +color3 #d79920 +color11 #fabc2e + +# blue +color4 #448488 +color12 #83a597 + +# magenta +color5 #b16185 +color13 #d3859a + +# cyan +color6 #689d69 +color14 #8ec07b + +# white +color7 #a89983 +color15 #ebdbb2 diff --git a/modules/nvim/default.nix b/modules/nvim/default.nix index d0ce53d..3b3a238 100644 --- a/modules/nvim/default.nix +++ b/modules/nvim/default.nix @@ -3,15 +3,16 @@ { programs.nixvim = { enable = true; - colorschemes.nord.enable = true; + colorschemes.gruvbox.enable = true; plugins.nvim-tree.enable = true; plugins.treesitter.enable = true; plugins.lualine.enable = true; plugins.lsp.enable = true; plugins.luasnip.enable = true; plugins.toggleterm.enable = true; - plugins.nvim-cmp.enable = true; + plugins.cmp.enable = true; plugins.gitsigns.enable = true; + plugins.web-devicons.enable = true; plugins.which-key.enable = true; plugins.cmp-nvim-lsp.enable = true; plugins.telescope.enable = true; diff --git a/modules/rofi/apps.rasi b/modules/rofi/apps.rasi new file mode 100644 index 0000000..d7d0d7d --- /dev/null +++ b/modules/rofi/apps.rasi @@ -0,0 +1,17 @@ +configuration { + show-icons: true; + font: "FreeSans Regular 12"; + icon-theme: "Gruvbox-Plus-Dark"; + + display-ssh: "󰣀 ssh:"; + display-run: "󱓞 run:"; + display-drun: "󰣖 drun:"; + display-window: "󱂬 window:"; + display-combi: "󰕘 combi:"; + display-filebrowser: "󰉋 filebrowser:"; + + dpi: 110; +} + + +@theme "~/.config/rofi/gruvbox-material.rasi" diff --git a/modules/rofi/config.rasi b/modules/rofi/config.rasi index 6dfc4c2..d7d0d7d 100644 --- a/modules/rofi/config.rasi +++ b/modules/rofi/config.rasi @@ -1,135 +1,17 @@ -@import "default" +configuration { + show-icons: true; + font: "FreeSans Regular 12"; + icon-theme: "Gruvbox-Plus-Dark"; -* { - bg: #191724; - cur: #1f1d2e; - fgd: #e0def4; - cmt: #6e6a86; - cya: #9ccfd8; - grn: #31748f; - ora: #ebbcba; - pur: #c4a7e7; - red: #eb6f92; - yel: #f6c177; + display-ssh: "󰣀 ssh:"; + display-run: "󱓞 run:"; + display-drun: "󰣖 drun:"; + display-window: "󱂬 window:"; + display-combi: "󰕘 combi:"; + display-filebrowser: "󰉋 filebrowser:"; - font: "Cartograph CF 12"; - - foreground: @fgd; - background: @bg; - active-background: @grn; - urgent-background: @red; - - selected-background: @active-background; - selected-urgent-background: @urgent-background; - selected-active-background: @active-background; - separatorcolor: @active-background; - bordercolor: @ora; + dpi: 110; } -#window { - background-color: @background; - border: 3; - border-radius: 6; - border-color: @bordercolor; - padding: 5; -} -#mainbox { - border: 0; - padding: 5; -} -#message { - border: 1px dash 0px 0px ; - border-color: @separatorcolor; - padding: 1px ; -} -#textbox { - text-color: @foreground; -} -#listview { - fixed-height: 0; - border: 2px dash 0px 0px ; - border-color: @bordercolor; - spacing: 2px ; - scrollbar: false; - padding: 2px 0px 0px ; -} -#element { - border: 0; - padding: 1px ; -} -#element.normal.normal { - background-color: @background; - text-color: @foreground; -} -#element.normal.urgent { - background-color: @urgent-background; - text-color: @urgent-foreground; -} -#element.normal.active { - background-color: @active-background; - text-color: @background; -} -#element.selected.normal { - background-color: @selected-background; - text-color: @foreground; -} -#element.selected.urgent { - background-color: @selected-urgent-background; - text-color: @foreground; -} -#element.selected.active { - background-color: @selected-active-background; - text-color: @background; -} -#element.alternate.normal { - background-color: @background; - text-color: @foreground; -} -#element.alternate.urgent { - background-color: @urgent-background; - text-color: @foreground; -} -#element.alternate.active { - background-color: @active-background; - text-color: @foreground; -} -#scrollbar { - width: 2px ; - border: 0; - handle-width: 8px ; - padding: 0; -} -#sidebar { - border: 2px dash 0px 0px ; - border-color: @separatorcolor; -} -#button.selected { - background-color: @selected-background; - text-color: @foreground; -} -#inputbar { - spacing: 0; - text-color: @foreground; - padding: 1px ; -} -#case-indicator { - spacing: 0; - text-color: @foreground; -} -#entry { - spacing: 0; - text-color: @cya; -} -#prompt { - spacing: 0; - text-color: @grn; -} -#inputbar { - children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; -} -#textbox-prompt-colon { - expand: false; - str: ":"; - margin: 0px 0.3em 0em 0em; - text-color: @grn; -} + +@theme "~/.config/rofi/gruvbox-material.rasi" diff --git a/modules/rofi/gruvbox-material.rasi b/modules/rofi/gruvbox-material.rasi new file mode 100644 index 0000000..30c40e3 --- /dev/null +++ b/modules/rofi/gruvbox-material.rasi @@ -0,0 +1,141 @@ +* { + gruv0: #282828; + gruv1: #32302f; + gruv2: #45403d; + gruv3: #5a524c; + + gruv4: #fbf1c7; + gruv5: #f4e8be; + gruv6: #eee0b7; + + gruv7: #a89984; + gruv8: #928374; + gruv9: #7c6f64; + gruv10: #504945; + red: #ea6962; + + orange: #e78a4e; + yellow: #d8a657; + aqua: #89b482; + purple: #d3869b; + + reddark: #c14a4a; + yellowdark: #b47109; + + foreground: @gruv9; + background-color: transparent; + + highlight: underline bold #eee0b7; + + transparent: rgba(0,0,0,0.1); + +} + +window { + location: center; + anchor: center; + border-radius: 20px; + height: 560px; + width: 600px; + + background-color: #282828; + spacing: 0; + children: [mainbox]; + orientation: horizontal; +} + +mainbox { + spacing: 0; + children: [ inputbar, message, listview ]; +} + +message { + padding: 10px; + border: 0px 2px 2px 2px; + border-color: @gruv0; + background-color: @transparent; +} + +inputbar { + color: @gruv6; + padding: 14px; + background-color: @transparent; + border-color: @gruv6; + + border: 4px; + border-radius: 20px 20px 0px 0px; +} + +entry, prompt, case-indicator { + text-font: inherit; + text-color: inherit; +} + +prompt { + margin: 0px 1em 0em 0em ; +} + +listview { + padding: 8px; + border-radius: 0px 0px 20px 20px; + border: 0px 4px 4px 4px; + border-color: @gruv6; + background-color: @transparent; + dynamic: false; +} + +element { + padding: 5px; + vertical-align: 0.5; + border-radius: 5px; + color: @foreground; + text-color: @gruv6; + background-color: @transparent; +} + +element.normal.active { + background-color: @yellow; +} + +element.normal.urgent { + background-color: @reddark; +} + +element.selected.normal { + background-color: @gruv7; + text-color: @gruv0; +} + +element.selected.active { + background-color: @yellowdark; +} + +element.selected.urgent { + background-color: @red; +} + +element.alternate.normal { + background-color: @transparent; +} + +element-text, element-icon { + size: 3ch; + margin: 0 10 0 0; + vertical-align: 0.5; + text-color: @gruv6; +} + +button { + padding: 6px; + color: @foreground; + horizontal-align: 0.5; + + border: 2px 0px 2px 2px; + border-radius: 5px; + border-color: @foreground; +} + +button.selected.normal { + border: 2px 0px 2px 2px; + border-color: @foreground; +} diff --git a/modules/waybar/config b/modules/waybar/config index 8ca467c..8bf1dbe 100644 --- a/modules/waybar/config +++ b/modules/waybar/config @@ -2,8 +2,8 @@ "layer": "top", "margin": "5, 5, 5, 5", "modules-left": ["hyprland/workspaces"], - "modules-center": ["mpris", "clock"], - "modules-right": ["cava", "privacy", "network", "pulseaudio/slider", "tray"], + "modules-center": ["clock"], + "modules-right": ["mpris", "cava", "network", "wireplumber", "tray"], "battery": { "format": "{capacity}% {icon}", "format-icons": ["", "", "", "", ""] @@ -13,7 +13,6 @@ }, "cava": { - "cava_config": "/home/joshuaelm/.config/cava/config", "bars": 14, "bar_delimiter": 0, "format-icons" : ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" ], @@ -56,18 +55,33 @@ "mpris": { - "format": "{player_icon} {title}", - "format-paused": "{status_icon} {title}", - "format-len": 50, - "status-icons": { - "paused": "" + "format": "{player_icon}", + "format-paused": "{status_icon}", + "player-icons": { + "default": "▶", + "mpv": "🎵" }, - }, - "pulseaudio/slider": { - "min": 0, - "max": 100 - }, - "hyprland/workspaces": { - "active-only": false + "status-icons": { + "paused": "⏸" + }, + }, + + "wireplumber": { + "format": "{volume}%", + "format-muted": "󰝟", + "on-click": "pavucontrol", + "scroll-step": 0.8, + "max-volume": 100, + "tooltip": true, + "tooltip-format": "{volume}% volume on device {node_name}" + }, + + "hyprland/workspaces": { + "active-only": false, + "format": "{icon}", + "format-icons": { + "active": "", + "default": "", + } } } diff --git a/modules/waybar/style.css b/modules/waybar/style.css index ddf1685..7fab9a8 100644 --- a/modules/waybar/style.css +++ b/modules/waybar/style.css @@ -1,14 +1,13 @@ -@import "./rose-pine.css"; * { - font-family: "FiraCode Nerd ont"; + font-family: "Roboto"; font-size: 17px; border-radius: 10px; } window#waybar { - background-color: @base; - color: @text; + background-color: #282828; + color: #ebdbb2; margin: 0 4px; } window > box { @@ -22,11 +21,11 @@ window > box { #network { padding-left: 4px; padding-right: 2px; - color: @foam; + color: #458588; } #cava { - color: @iris; + color: #b8bb26; margin-left: 5px; } @@ -36,12 +35,12 @@ window > box { } #workspaces.button { - color: @text; + color: #ebdbb2; } #workspaces.button.focused { - color: @overlay; - background-color: @text; + color: #a89984; + background-color: #ebdbb2; } #clock { @@ -50,25 +49,29 @@ window > box { margin-right: 5px; } #mpris { - margin-right: 5px; - margin-left: 5px + padding-left: 5px; } .modules-center { - background: @surface; + background: #3c3836; box-shadow: 0px 0px 5px 0px #101010; } .modules-right { - background: @surface; + background: #3c3836; box-shadow: 0px 0px 5px 0px #101010; } .modules-left { - background: @surface; + background: #3c3836; box-shadow: 0px 0px 5px 0px #101010; } +#wireplumber { + padding-left: 5px; + +} + #pulseaudio-slider slider { min-height: 0px; min-width: 0px; @@ -81,10 +84,10 @@ window > box { min-height: 5px; min-width: 80px; border-radius: 5px; - background-color: @base; + background-color: #282828; } #pulseaudio-slider highlight { min-width: 10px; border-radius: 5px; - background-color: @pine; + background-color: #98971a; } diff --git a/pfp.jpg b/pfp.jpg new file mode 100644 index 0000000..6e97bf9 Binary files /dev/null and b/pfp.jpg differ