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