diff --git a/2 b/2 new file mode 100644 index 0000000..955dc5a --- /dev/null +++ b/2 @@ -0,0 +1,123 @@ +{ config, pkgs, inputs, ... }: + +{ + # Home Manager needs a bit of information about you and the + # paths it should manage. + home.username = "joshuaelm"; + home.homeDirectory = "/home/joshuaelm"; + + imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_desktop.nix ../../modules/ashell/default.nix ../../modules/waybar/waybar.nix ]; + + + home.packages = [ + pkgs.element-desktop + pkgs.waybar + pkgs.signal-desktop-bin + pkgs.swaybg + pkgs.gpu-screen-recorder + pkgs.gpu-screen-recorder-gtk + pkgs.supersonic + pkgs.adw-gtk3 + ]; + + programs.hyprlock.enable = true; + programs.starship.enable = true; + programs.starship.enableFishIntegration = true; + programs.kitty.enable = true; + programs.cava.enable = true; + programs.btop.enable = true; + programs.rofi.enable = true; + programs.rofi.package = pkgs.rofi-wayland; + services.hyprpaper.enable = true; + wayland.windowManager.hyprland.enable = true; + home.shell.enableFishIntegration = true; + + home.file.".icons/default".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic"; + + services.mpd-mpris.enable = true; + + + programs.rofi.extraConfig = { + show-icons = true; + drun-display-format = "{icon} {name}"; + hide-scrollbar = true; + sidebar-mode = true; + dpi = 110; + font = "FreeSans Regular 12"; + icon-theme = "Gruvbox-Plus-Dark"; + }; + programs.rofi.theme = { + window.height = 600; + window.width = 600; + window.border-radius = 10; + + element = { + padding = 5; + border-radius = 10; + }; + inputbar.padding = 14; + listview = { + padding = 8; + border-radius = "0 0 10 10"; + border = "2 2 2 2"; + dynamic = false; + }; + "element-text element-icon" = { + size = 40; + margin = "0 10 0 0"; + }; + mainbox.children = "inputbar, message, listview"; + mainbox.spacing = 0; + }; + + programs.kitty.extraConfig = '' + font_family Fira Code Nerd Font + bold_font auto + italic_font auto + bold_italic_font auto + confirm_os_window_close 0 + cursor_shape beam + cursor_trail 3 + ''; + + + # This value determines the Home Manager release that your + # configuration is compatible with. This helps avoid breakage + # when a new Home Manager release introduces backwards + # incompatible changes. + # + # You can update Home Manager without changing this value. See + # the Home Manager release notes for a list of state version + # changes in each release. + home.stateVersion = "23.11"; + xdg.dataFile = { + "Steam/compatibilitytools.d/SteamTinkerLaunch/compatibilitytool.vdf".text = '' + "compatibilitytools" + { + "compat_tools" + { + "Proton-stl" // Internal name of this tool + { + "install_path" "." + "display_name" "Steam Tinker Launch" + + "from_oslist" "windows" + "to_oslist" "linux" + } + } + } + ''; + "Steam/compatibilitytools.d/SteamTinkerLaunch/steamtinkerlaunch".source = + config.lib.file.mkOutOfStoreSymlink "${pkgs.steamtinkerlaunch}/bin/steamtinkerlaunch"; + "Steam/compatibilitytools.d/SteamTinkerLaunch/toolmanifest.vdf".text = '' + "manifest" + { + "commandline" "/steamtinkerlaunch run" + "commandline_waitforexitandrun" "/steamtinkerlaunch waitforexitandrun" + } + ''; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +} diff --git a/flake.lock b/flake.lock index 9108f0d..08d8251 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1751126708, - "narHash": "sha256-AodIKw7TmI7rHVcOfEsO82stupMYIMVQeLAUQfVxnkU=", + "lastModified": 1752404970, + "narHash": "sha256-XULTToDUkIshNXEO+YP2mAHdQv8bxWDvKjbamBfOC8E=", "owner": "aylur", "repo": "astal", - "rev": "ac90f09385a2295da9fdc108aaba4a317aaeacc7", + "rev": "2c5eb54f39e1710c6e2c80915a240978beb3269a", "type": "github" }, "original": { @@ -163,11 +163,11 @@ ] }, "locked": { - "lastModified": 1743550720, - "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", + "lastModified": 1751413152, + "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c621e8422220273271f52058f618c94e405bb0f5", + "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", "type": "github" }, "original": { @@ -234,11 +234,11 @@ ] }, "locked": { - "lastModified": 1751824240, - "narHash": "sha256-aDDC0CHTlL7QDKWWhdbEgVPK6KwWt+ca0QkmHYZxMzI=", + "lastModified": 1752814804, + "narHash": "sha256-irfg7lnfEpJY+3Cffkluzp2MTVw1Uq9QGxFp6qadcXI=", "owner": "nix-community", "repo": "home-manager", - "rev": "fd9e55f5fac45a26f6169310afca64d56b681935", + "rev": "d0300c8808e41da81d6edfc202f3d3833c157daf", "type": "github" }, "original": { @@ -255,11 +255,11 @@ ] }, "locked": { - "lastModified": 1743604125, - "narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=", + "lastModified": 1752603129, + "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=", "owner": "nix-community", "repo": "home-manager", - "rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a", + "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b", "type": "github" }, "original": { @@ -298,11 +298,11 @@ }, "master": { "locked": { - "lastModified": 1751914753, - "narHash": "sha256-46zytRNdtF3SpFI/bh+AYR6stQCk7Ad79egf79uG/uI=", + "lastModified": 1752942963, + "narHash": "sha256-DAL+SEKV/jrvbwEcQabUwR+YTx7V09Gbf0zLJIfD4oc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e69f17b2fda2842ad65707ce3d3c65d62218dcd4", + "rev": "19331827f62c85e29ac14da62a5c26828f138517", "type": "github" }, "original": { @@ -358,11 +358,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "lastModified": 1752687322, + "narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251", "type": "github" }, "original": { @@ -389,11 +389,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1743448293, - "narHash": "sha256-bmEPmSjJakAp/JojZRrUvNcDX2R5/nuX6bm+seVaGhs=", + "lastModified": 1752480373, + "narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "77b584d61ff80b4cef9245829a6f1dfad5afdfa3", + "rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08", "type": "github" }, "original": { @@ -413,11 +413,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1751904655, - "narHash": "sha256-lHAj9Xh/vBf3cXns1wN5HPw/zwGTO/Uv/ttloBok1n4=", + "lastModified": 1752762787, + "narHash": "sha256-WZLSOR2Pei7C4nH/ntKUqOZOAa5rgvc2fVZl4RoEXmw=", "owner": "nix-community", "repo": "nixvim", - "rev": "bc997a240953bda9fa526e8a3d6f798a6072308a", + "rev": "bc0555c8694d43fb63ae2c7afec08b6987431a04", "type": "github" }, "original": { @@ -435,15 +435,14 @@ "nixpkgs": [ "stylix", "nixpkgs" - ], - "treefmt-nix": "treefmt-nix" + ] }, "locked": { - "lastModified": 1748730660, - "narHash": "sha256-5LKmRYKdPuhm8j5GFe3AfrJL8dd8o57BQ34AGjJl1R0=", + "lastModified": 1751906969, + "narHash": "sha256-BSQAOdPnzdpOuCdAGSJmefSDlqmStFNScEnrWzSqKPw=", "owner": "nix-community", "repo": "NUR", - "rev": "2c0bc52fe14681e9ef60e3553888c4f086e46ecb", + "rev": "ddb679f4131e819efe3bbc6457ba19d7ad116f25", "type": "github" }, "original": { @@ -530,11 +529,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1751914048, - "narHash": "sha256-xHO3xlw35tCC0f3pN3osPNjgwwwAgusTuZk5iC8oDiE=", + "lastModified": 1752750082, + "narHash": "sha256-NoVAqy+Wj4tgkvrYB8zWncl8Z6Hb80aX3t/TYGdsfaM=", "owner": "danth", "repo": "stylix", - "rev": "bf0ef81c8fcc30c32db9dab32d379f8d9db835e4", + "rev": "03699ed214f6e8195bc7199d6ae3aeccf9732b08", "type": "github" }, "original": { @@ -624,11 +623,11 @@ "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1748180480, - "narHash": "sha256-7n0XiZiEHl2zRhDwZd/g+p38xwEoWtT0/aESwTMXWG4=", + "lastModified": 1750770351, + "narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=", "owner": "tinted-theming", "repo": "schemes", - "rev": "87d652edd26f5c0c99deda5ae13dfb8ece2ffe31", + "rev": "5a775c6ffd6e6125947b393872cde95867d85a2a", "type": "github" }, "original": { @@ -640,11 +639,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1748740859, - "narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=", + "lastModified": 1751159871, + "narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "57d5f9683ff9a3b590643beeaf0364da819aedda", + "rev": "bded5e24407cec9d01bd47a317d15b9223a1546c", "type": "github" }, "original": { @@ -656,11 +655,11 @@ "tinted-zed": { "flake": false, "locked": { - "lastModified": 1725758778, - "narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=", + "lastModified": 1751158968, + "narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=", "owner": "tinted-theming", "repo": "base16-zed", - "rev": "122c9e5c0e6f27211361a04fae92df97940eccf9", + "rev": "86a470d94204f7652b906ab0d378e4231a5b3384", "type": "github" }, "original": { @@ -669,39 +668,17 @@ "type": "github" } }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "stylix", - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733222881, - "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "49717b5af6f80172275d47a418c9719a31a78b53", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, "zen-browser": { "inputs": { "home-manager": "home-manager_2", "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1751858709, - "narHash": "sha256-xghd1GDPRSa6aD6tEk2JCuQDZWdHITlCA/stwSVoZJQ=", + "lastModified": 1752809889, + "narHash": "sha256-oTIVrw7Cy2McAVqE7GCot5Fb8Wh4JBsUDKMX8u3DFlU=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "216dd333fa41aa013bf8aab9322d7c1a2aee5b4a", + "rev": "f19d2b6b18d4a2e8bf2d6a9f69c934d6726360c4", "type": "github" }, "original": { diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index f5e34e6..c419285 100644 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -69,6 +69,7 @@ boot = { networking.networkmanager.enable = true; + hardware.bluetooth.enable = true; hardware.bluetooth.package = pkgs.bluez; @@ -110,6 +111,7 @@ boot = { autoLogin.user = "joshuaelm"; };*/ security.pam.services.hyprlock = {}; + programs.noisetorch.enable = true; services.greetd = { enable = true; @@ -165,7 +167,7 @@ boot = { # no need to redefine it in your config for now) #media-session.enable = true; }; - hardware.pulseaudio.configFile = pkgs.runCommand "default.pa" {} '' + services.pulseaudio.configFile = pkgs.runCommand "default.pa" {} '' sed 's/module-udev-detect$/module-udev-detect tsched=0/' \ ${pkgs.pulseaudio}/etc/pulse/default.pa > $out ''; @@ -209,11 +211,14 @@ hardware.pulseaudio.extraConfig = '' isNormalUser = true; description = "Joshua Elmasri"; extraGroups = [ "networkmanager" "wheel" "adbusers" ]; + shell = pkgs.fish; packages = with pkgs; [ # thunderbird ]; }; + programs.fish.enable = true; + nix.optimise.automatic = true; # Allow unfree packages diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix index 223ce3c..955dc5a 100644 --- a/hosts/desktop/home.nix +++ b/hosts/desktop/home.nix @@ -6,7 +6,7 @@ home.username = "joshuaelm"; home.homeDirectory = "/home/joshuaelm"; - imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_desktop.nix ../../modules/ashell/default.nix ]; + imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_desktop.nix ../../modules/ashell/default.nix ../../modules/waybar/waybar.nix ]; home.packages = [ @@ -21,6 +21,8 @@ ]; programs.hyprlock.enable = true; + programs.starship.enable = true; + programs.starship.enableFishIntegration = true; programs.kitty.enable = true; programs.cava.enable = true; programs.btop.enable = true; @@ -28,6 +30,7 @@ programs.rofi.package = pkgs.rofi-wayland; services.hyprpaper.enable = true; wayland.windowManager.hyprland.enable = true; + home.shell.enableFishIntegration = true; home.file.".icons/default".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic"; diff --git a/modules/hypr/hyprland_desktop.nix b/modules/hypr/hyprland_desktop.nix index 58b2c02..3270e93 100644 --- a/modules/hypr/hyprland_desktop.nix +++ b/modules/hypr/hyprland_desktop.nix @@ -6,16 +6,16 @@ # See https://wiki.hyprland.org/Configuring/Monitors/ -#monitor = HDMI-A-1, 3840x2160@60, 0x0, 1.5 -monitor = HDMI-A-1, disable +monitor = HDMI-A-1, 3840x2160@60, 0x0, 1 +#monitor = HDMI-A-1, disable #monitor = sunshine, highres@highrr, 0x0, 1 monitor = DP-1, highres@highrr, 0x0, 1 #monitor = DP-1, highres@highrr, 0x0, 1, bitdepth, 10, cm, hdr, sdrsaturation, 1, sdrbrightness, 1 exec-once = hyprctl dispatch workspace 1 #exec-once = linux-wallpaperengine --screen-root HDMI-A-1 --silent --fps 60 3000562427 exec-once = hyprlock -# exec-once = waybar -exec-once = ashell +exec-once = waybar +# exec-once = ashell exec-once = systemctl --user start hyprpolkitagent exec-once = sunshine # See https://wiki.hyprland.org/Configuring/Keywords/ for more diff --git a/modules/stylix.nix b/modules/stylix.nix index 647bfe6..4bfc485 100644 --- a/modules/stylix.nix +++ b/modules/stylix.nix @@ -6,8 +6,20 @@ stylix.targets.kitty.enable = true; stylix.targets.hyprpaper.enable = true; stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-dark.yaml"; - stylix.image = pkgs.fetchurl { + # blue aura house + /* stylix.image = pkgs.fetchurl { url = "https://w.wallhaven.cc/full/1p/wallhaven-1py8lw.jpg"; hash = "sha256-smJTuprm8PVKWv56hfv9UMzDXkHm3R7O1ALaNpNYy3E="; + };*/ + # coastal town + /*stylix.image = pkgs.fetchurl { + url = "https://w.wallhaven.cc/full/ex/wallhaven-ex8vml.jpg"; + hash = "sha256-SNsauGNVU7p+FfZPJ97GQDz5roRfy82WbAuLmLl7iVs="; + };*/ + + stylix.image = pkgs.fetchurl { + url = "https://w.wallhaven.cc/full/5g/wallhaven-5g22q5.png"; + hash = "sha256-snqkeQecU0opsBfIrnkl6aiV71hSCmqnZBAsibNG4w8="; }; + } diff --git a/modules/waybar/waybar.nix b/modules/waybar/waybar.nix new file mode 100644 index 0000000..63b63a6 --- /dev/null +++ b/modules/waybar/waybar.nix @@ -0,0 +1,118 @@ +{pkgs, lib,...}: + +{ + programs.waybar.enable = true; + programs.waybar.settings = [ +{ + layer = "top"; + position = "top"; + margin = "5, 5, 5, 5"; + modules-left = [ "hyprland/workspaces"]; + modules-center = [ "mpris" ]; + modules-right = [ "cava" "clock" "network" "pulseaudio/slider" "tray" ]; + + cava = { + bars = 14; + bar_delimiter = 0; + format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"]; + }; + + network = { + format = "󱎔"; + format-disconnected = ""; + format-wifi = "({signalStrength}%) "; + }; + + mpris = { + format = "{dynamic}"; + dynamic-order = ["title" "album" "artist" "position" "length"]; + }; + + tray = { + spacing = 2; + }; + + "hyprland/workspaces" = { + active-only = false; + format = "{icon}"; + format-icons = { + active = ""; + default = ""; + }; + }; + +} + ]; + + programs.waybar.style = lib.mkAfter '' + * { + font-family: "Roboto"; + font-size: 17px; + border-radius: 10px; + } + + window#waybar { + margin: 0 4px; + } + + #network { + padding-left: 4px; + padding-right: 2px; + } + + #tray { + margin-right: 5px; + margin-left: 5px; + } + + #cava { + margin-left: 5px; + } + + #mpris { + padding: 0 5px; + margin-left: 5px; + margin-right: 5px; + } + + .modules-left { + background: @base02; + box-shadow: 0px 0px 5px 0px #101010; + } + + .modules-center { + background: @base02; + box-shadow: 0px 0px 5px 0px #101010; + } + + .modules-right { + background: @base02; + box-shadow: 0px 0px 5px 0px #101010; + } + + + window > box { + background-color: transparent; + margin-top: 5px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; + } + + #pulseaudio-slider slider { + min-height: 0px; + min-width: 0px; + + } + + #pulseaudio-slider trough { + min-width: 60px; + border-radius: 10px; + background-color: @base0D + } + + #pulseaudio-slider highlight { + background-color: @base0C; + } + ''; +}