diff --git a/install.sh b/install.sh index c9b1af6..b139694 100755 --- a/install.sh +++ b/install.sh @@ -1,5 +1,6 @@ #!/bin/sh +dconf write /org/gtk/settings/file-chooser/clock-format "'12h'" sudo cp -R nixos/* /etc/nixos/ #nix flake update --flake /etc/nixos sudo nixos-rebuild switch --flake /etc/nixos#nixos --commit-lock-file --upgrade --show-trace diff --git a/nixos/config/hypr/hyprland.conf b/nixos/config/hypr/hyprland.conf index 4d634c6..dc64671 100644 --- a/nixos/config/hypr/hyprland.conf +++ b/nixos/config/hypr/hyprland.conf @@ -17,12 +17,14 @@ monitor = HDMI-A-2, 2560x1440@60, auto-left, 1 # Set programs that you use $terminal = kitty $fileManager = dolphin -$menu = rofi -show run +$menu = ~/.config/rofi/launchers/type-1/launcher.sh -env = XCURSOR_SIZE,30; -env = XCURSOR_THEME,"McMojave Cursors"; -env = HYPRCURSOR_SIZE,30; -env = HYPRCURSOR_THEME,"McMojave"; +$cursor = catppuccin-macchiato-mauve-cursors +exec-once = hyprctl setcursor "$cursor" 28 +exec-once = dconf write /org/gnome/desktop/interface/cursor-size 28 +exec-once = dconf write /org/gnome/desktop/interface/cursor-theme "$cursor" +env = HYPRCURSOR_THEME,"$cursor" +env = XCURSOR_THEME,"$cursor" ################# ### AUTOSTART ### @@ -52,8 +54,8 @@ general { border_size = 2 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors - col.active_border = rgba(88c0d0ee) rgba(a3be8cee) 45deg - col.inactive_border = rgba(4c566aaa) + col.active_border = rgba(c6a0f6ee) rgba(f0c6c6ee) 45deg + col.inactive_border = rgba(363a4faa) # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = false @@ -239,10 +241,14 @@ bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- # Requires playerctl -bindl = , XF86AudioNext, exec, playerctl next -bindl = , XF86AudioPause, exec, playerctl play-pause -bindl = , XF86AudioPlay, exec, playerctl play-pause -bindl = , XF86AudioPrev, exec, playerctl previous +bindl = , XF86AudioNext, exec, playerctl -p Plexamp next +bindl = , XF86AudioPause, exec, playerctl -p Plexamp play-pause +bindl = , XF86AudioPlay, exec, playerctl -p Plexamp play-pause +bindl = , XF86AudioPrev, exec, playerctl -p Plexamp previous + +bind = , Print, exec, grimblast --notify --cursor copy area +bind = CTRL, Print, exec, grimblast --notify --cursor copy output +bind = SHIFT, Print, exec, grimblast --notify --cursor copy screen ############################## ### WINDOWS AND WORKSPACES ### @@ -263,4 +269,4 @@ windowrulev2 = suppressevent maximize, class:.* # Fix some dragging issues with XWayland windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 -debug:disable_logs = false \ No newline at end of file +debug:disable_logs = false diff --git a/nixos/config/hypr/hyprlock.conf b/nixos/config/hypr/hyprlock.conf index 342c5c2..1dd590c 100644 --- a/nixos/config/hypr/hyprlock.conf +++ b/nixos/config/hypr/hyprlock.conf @@ -1,7 +1,7 @@ # BACKGROUND background { monitor = - path = ~/img/nixos.png + path = ~/img/nix-black-4k.png blur_passes = 3 contrast = 0.8916 brightness = 0.8172 diff --git a/nixos/config/waybar/waybar-style.css b/nixos/config/waybar/waybar-style.css index b2179ce..04fbe2f 100644 --- a/nixos/config/waybar/waybar-style.css +++ b/nixos/config/waybar/waybar-style.css @@ -1,22 +1,29 @@ -@define-color cursor #E5E9F0; -@define-color background #2E3440; -@define-color foreground #E5E9F0; -@define-color color0 #2E3440; -@define-color color1 #3B4252; -@define-color color2 #434C5E; -@define-color color3 #4C566A; -@define-color color4 #D8DEE9; -@define-color color5 #E5E9F0; -@define-color color6 #ECEFF4; -@define-color color7 #8FBCBB; -@define-color color8 #BF616A; -@define-color color9 #D08770; -@define-color color10 #EBCB8B; -@define-color color11 #A3BE8C; -@define-color color12 #88C0D0; -@define-color color13 #81A1C1; -@define-color color14 #B48EAD; -@define-color color15 #8E9197; +@define-color rosewater #f4dbd6; +@define-color flamingo #f0c6c6; +@define-color pink #f5bde6; +@define-color mauve #c6a0f6; +@define-color red #ed8796; +@define-color maroon #ee99a0; +@define-color peach #f5a97f; +@define-color yellow #eed49f; +@define-color green #a6da95; +@define-color teal #8bd5ca; +@define-color sky #91d7e3; +@define-color sapphire #7dc4e4; +@define-color blue #8aadf4; +@define-color lavender #b7bdf8; +@define-color text #cad3f5; +@define-color subtext1 #b8c0e0; +@define-color subtext0 #a5adcb; +@define-color overlay2 #939ab7; +@define-color overlay1 #8087a2; +@define-color overlay0 #6e738d; +@define-color surface2 #5b6078; +@define-color surface1 #494d64; +@define-color surface0 #363a4f; +@define-color base #24273a; +@define-color mantle #1e2030; +@define-color crust #181926; * { font-size:13px; @@ -29,48 +36,48 @@ window#waybar{ padding:7px; margin:10 0 5 10; border-radius:10px; - border: 1px solid alpha(@color7,.6); - background: alpha(@background,.6); + border: 1px solid alpha(@mauve,.6); + background: alpha(@base,.6); box-shadow: 0px 0px 2px rgba(0, 0, 0, .6); } .modules-center { padding:7px; margin:10 0 5 0; border-radius:10px; - border: 1px solid alpha(@color7,.6); - background: alpha(@background,.6); + border: 1px solid alpha(@mauve,.6); + background: alpha(@base,.6); box-shadow: 0px 0px 2px rgba(0, 0, 0, .6); } .modules-right { padding:7px; margin: 10 10 5 0; border-radius:10px; - border: 1px solid alpha(@color7,.6); - background: alpha(@background,.6); + border: 1px solid alpha(@mauve,.6); + background: alpha(@base,.6); box-shadow: 0px 0px 2px rgba(0, 0, 0, .6); } tooltip { - background:@background; - color: @color7; + background:@base; + color: @rosewater; } #clock:hover, #custom-pacman:hover, #custom-notification:hover,#bluetooth:hover,#network:hover,#battery:hover, #cpu:hover,#memory:hover,#temperature:hover{ transition: all .3s ease; - color:@color11; + color:@rosewater; } #custom-notification { padding: 0px 10px; transition: all .3s ease; - color:@color7; + color:@rosewater; } #clock{ padding: 0px 10px; - color:@color5; + color:@text; transition: all .3s ease; } #custom-pacman{ padding: 0px 10px; transition: all .3s ease; - color:@color7; + color:@rosewater; } #workspaces { @@ -79,17 +86,17 @@ tooltip { #workspaces button { all:unset; padding: 0px 10px; - color: alpha(@color7,.4); + color: alpha(@flamingo,.4); transition: all .2s ease; } #workspaces button:hover { - color: @color11; + color: @pink; border: none; text-shadow: 0px 0px 1.5px rgba(0, 0, 0, .5); transition: all 1s ease; } #workspaces button.active { - color: @color7; + color: @rosewater; border: none; text-shadow: 0px 0px 2px rgba(0, 0, 0, .5); } @@ -105,31 +112,31 @@ tooltip { transition: all 1s ease; } #workspaces button.empty.active { - color: @color7; + color: @rosewater; border: none; text-shadow: 0px 0px 2px rgba(0, 0, 0, .5); } #bluetooth{ padding: 0px 10px; transition: all .3s ease; - color:@color7; + color:@rosewater; } #network{ padding: 0px 10px; transition: all .3s ease; - color:@color7; + color:@rosewater; } #mpris{ padding: 0px 10px; transition: all .3s ease; - color:@color7; + color:@rosewater; } #battery{ padding: 0px 10px; transition: all .3s ease; - color:@color7; + color:@rosewater; } #battery.charging { color: #26A65B; @@ -153,7 +160,7 @@ tooltip { } #custom-expand{ padding: 0px 10px; - color:alpha(@foreground,.2); + color:alpha(@text,.2); text-shadow: 0px 0px 2px rgba(0, 0, 0, .7); transition: all .3s ease; } @@ -167,7 +174,7 @@ tooltip { #cpu,#memory,#temperature{ padding: 0px 10px; transition: all .3s ease; - color:@color7; + color:@rosewater; } #custom-endpoint{ diff --git a/nixos/desktop.nix b/nixos/desktop.nix index ab2bfbc..80c5c42 100644 --- a/nixos/desktop.nix +++ b/nixos/desktop.nix @@ -11,6 +11,8 @@ }; }; + programs.noisetorch.enable = true; + programs.hyprland = { enable = true; withUWSM = true; @@ -38,6 +40,7 @@ xdg-desktop-portal-gtk brave + thunderbird-latest zathura mpv imv @@ -47,5 +50,6 @@ cinny-desktop telegram-desktop vscode.fhs + grimblast ]; } diff --git a/nixos/flake.nix b/nixos/flake.nix index 4d7e901..3962c29 100644 --- a/nixos/flake.nix +++ b/nixos/flake.nix @@ -44,6 +44,7 @@ ./users.nix ./virtualisation.nix ./programming.nix + #./programming-dotnet.nix ./terminal.nix ./misc-pkgs.nix ]; diff --git a/nixos/gaming.nix b/nixos/gaming.nix index 58ed99f..659234d 100644 --- a/nixos/gaming.nix +++ b/nixos/gaming.nix @@ -13,5 +13,6 @@ wine mangohud protontricks + gamemode ]; } diff --git a/nixos/home.nix b/nixos/home.nix index 4e8bee1..370a0dc 100644 --- a/nixos/home.nix +++ b/nixos/home.nix @@ -23,6 +23,7 @@ grep = "rg"; cat = "bat"; ls = "eza"; + ssh = "kitten ssh"; }; }; @@ -32,7 +33,12 @@ enable = true; plugins.lualine.enable = true; - colorschemes.nord.enable = true; + colorschemes.catppuccin = { + enable = true; + settings = { + flavour = "macchiato"; + }; + }; }; programs.git = { @@ -58,12 +64,16 @@ XDG_VIDEOS_DIR="$HOME/vid"; SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; SSH_AGENT_SOCK="/run/user/1000/keyring/ssh"; + XCURSOR_SIZE="30"; + XCURSOR_THEME="Catppuccin Macchiato Mauve"; + HYPRCURSOR_SIZE="30"; + HYPRCURSOR_THEME="Catppuccin Macchiato Mauve"; }; programs.kitty = with pkgs; { enable = true; font.name = "JetBrainsMono Nerd Font"; - themeFile = "Nord"; + themeFile = "Catppuccin-Macchiato"; }; programs.starship.enable = true; @@ -86,11 +96,18 @@ ]; }; + gtk.iconTheme.package = pkgs.catppuccin-papirus-folders.override { + flavor = "macchiato"; + accent = "mauve"; + }; + + services.easyeffects.enable = true; + services.dunst = { enable = true; settings = { global = { - frame_color = "#88C0D0"; + frame_color = "#8aadf4"; separator_color = "frame"; font = "JetBrains Mono Regular 11"; corner_radius = 5; @@ -103,24 +120,23 @@ height = "(0, 100)"; monitor = 1; show_indicators = "no"; + highlight = "#8aadf4"; }; urgency_low = { - background = "#2E3440"; - foreground = "#ECEFF4"; - frame_color = "#81A1C1"; + background = "#24273a"; + foreground = "#cad3f5"; }; urgency_normal = { - background = "#2E3440"; - foreground = "#ECEFF4"; - frame_color = "#88C0D0"; + background = "#24273a"; + foreground = "#cad3f5"; }; urgency_critical = { - background = "#2E3440"; - foreground = "#ECEFF4"; - frame_color = "#BF616A"; + background = "#24273a"; + foreground = "#cad3f5"; + frame_color = "#f5a97f"; }; }; }; @@ -256,8 +272,8 @@ ipc = "on"; splash = true; - preload = [ "$HOME/img/nixos.png" "$HOME/img/osf-024-static-wallpaper.png" ]; - wallpaper = [ ", $HOME/img/nixos.png" ]; + preload = [ "$HOME/img/nixos.png" "$HOME/img/osf-024-static-wallpaper.png" "$HOME/img/nix-black-4k.png" "$HOME/img/basement.jpg" ]; + wallpaper = [ ", $HOME/img/basement.jpg" ]; }; }; diff --git a/nixos/programming-dotnet.nix b/nixos/programming-dotnet.nix new file mode 100644 index 0000000..3cb3e04 --- /dev/null +++ b/nixos/programming-dotnet.nix @@ -0,0 +1,32 @@ +{ pkgs, ... }: + +{ + environment = let + dotnet-combined = (with pkgs.dotnetCorePackages; combinePackages [ + sdk_9_0-bin + ]).overrideAttrs (finalAttrs: previousAttrs: { + # This is needed to install workload in $HOME + # https://discourse.nixos.org/t/dotnet-maui-workload/20370/2 + + postBuild = (previousAttrs.postBuild or '''') + '' + for i in $out/sdk/* + do + i=$(basename $i) + length=$(printf "%s" "$i" | wc -c) + substring=$(printf "%s" "$i" | cut -c 1-$(expr $length - 2)) + i="$substring""00" + mkdir -p $out/metadata/workloads/''${i/-*} + touch $out/metadata/workloads/''${i/-*}/userlocal + done + ''; + }); + in + { + sessionVariables = { + DOTNET_ROOT = "${dotnet-combined}"; + }; + systemPackages = [ + dotnet-combined + ]; + }; +} \ No newline at end of file diff --git a/nixos/programming.nix b/nixos/programming.nix index d58c35f..d8e3916 100644 --- a/nixos/programming.nix +++ b/nixos/programming.nix @@ -7,8 +7,8 @@ nodePackages.nodejs typescript pnpm + dotnetCorePackages.dotnet_9.sdk # see https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles/blob/main/nixos/rust.nix for rust impl - dotnetCorePackages.sdk_9_0-bin # LSPs python313Packages.python-lsp-server diff --git a/nixos/services.nix b/nixos/services.nix index 42f1fff..f4df80f 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -22,10 +22,6 @@ psi-notify playerctl psmisc - grim - slurp - imagemagick - swappy ffmpeg_6-full wl-screenrec wl-clipboard @@ -37,6 +33,5 @@ rofi-wayland dunst wlogout - gifsicle ]; } diff --git a/nixos/theme.nix b/nixos/theme.nix index db75246..a14288c 100644 --- a/nixos/theme.nix +++ b/nixos/theme.nix @@ -1,5 +1,11 @@ { inputs, pkgs, ... }: +let + catppuccin = pkgs.catppuccin-gtk.override { + accents = [ "mauve" ]; + variant = "macchiato"; + }; +in { console = { font = "Lat2-Terminus16"; @@ -13,7 +19,7 @@ noto-fonts nerd-fonts.jetbrains-mono ]; - + # lots to do here, compare to https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles/blob/main/nixos/theme.nix environment.systemPackages = with pkgs; [ papirus-nord @@ -26,5 +32,9 @@ nwg-look # we do all the configuration in here kitty-themes wallust + catppuccin-cursors.macchiatoMauve + catppuccinifier-gui + catppuccinifier-cli + catppuccin ]; }