From a4edaec9eb7abe4b4cc764ecc67c093a22898b5f Mon Sep 17 00:00:00 2001 From: Dragyx <66752602+Dragyx@users.noreply.github.com> Date: Mon, 29 Apr 2024 13:17:46 +0200 Subject: [PATCH] Final edits before fork --- hosts/dragyx/common/configuration.nix | 29 ++-- hosts/dragyx/common/hyprland.nix | 47 +++++- hosts/dragyx/common/packages.nix | 1 + hosts/dragyx/common/theming/catppuccin.css | 1 + hosts/dragyx/common/theming/default.nix | 83 ++++++++++- hosts/dragyx/common/theming/waybar-style.css | 130 ++++------------- .../common/theming/waybar-style.css.bak | 136 ++++++++++++++++++ hosts/dragyx/common/waybar.nix | 56 ++++---- hosts/dragyx/flocke/configuration.nix | 35 +++++ hosts/dragyx/flocke/packages.nix | 1 + 10 files changed, 363 insertions(+), 156 deletions(-) create mode 120000 hosts/dragyx/common/theming/catppuccin.css create mode 100644 hosts/dragyx/common/theming/waybar-style.css.bak diff --git a/hosts/dragyx/common/configuration.nix b/hosts/dragyx/common/configuration.nix index e797232..6f16cc2 100644 --- a/hosts/dragyx/common/configuration.nix +++ b/hosts/dragyx/common/configuration.nix @@ -24,20 +24,23 @@ in }; home-manager.users.${username} = { - programs.firefox.profiles = { - main = { - id = 0; - isDefault = true; - search.default = "DuckDuckGo"; - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ - ublock-origin - bitwarden - darkreader - maya-dark - ]; - search.force = true; + programs.firefox = { + enable = true; + profiles = { + main = { + id = 0; + isDefault = true; + search.default = "DuckDuckGo"; + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin + bitwarden + darkreader + maya-dark + ]; + search.force = true; + }; }; - }; + }; }; } diff --git a/hosts/dragyx/common/hyprland.nix b/hosts/dragyx/common/hyprland.nix index ebd2405..fc05b76 100644 --- a/hosts/dragyx/common/hyprland.nix +++ b/hosts/dragyx/common/hyprland.nix @@ -4,6 +4,21 @@ with lib; let username = config.modules.other.system.username; cfg = config.modules.WM.hyprland; + + + ani-script = pkgs.writeShellApplication { + name = "ani-cli-advanced"; + runtimeInputs = with pkgs; [ ani-cli ]; + text = '' + selection=$(printf "\\ueacf Continue\n\\uf002 Search\n\\uea81 Delete History" | rofi -p "ani-cli" -dmenu -i) + case $selection in + *Search) ani-cli --rofi;; + *Continue) ani-cli --rofi -c;; + "*Delete History") ani-cli -D;; + esac + + ''; + }; in { config = mkIf cfg.enable { @@ -32,6 +47,7 @@ in kb_layout = "us"; natural_scroll = true; sensitivity = 0; + kb_variant = "altgr-intl"; }; general = { gaps_in = 2; @@ -58,15 +74,23 @@ in "windows, 1, 7, myBezier" ]; }; + xwayland = { + force_zero_scaling = true; + }; gestures.workspace_swipe = true; debug.enable_stdout_logs = true; + windowrulev2 = [ + "float,title:bluetuith" + ]; bind = [ # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more "SUPER, RETURN, exec, alacritty" "SUPER SHIFT, RETURN, exec, rofi -show drun" "SUPER SHIFT, Q, killactive," "SUPER, M, exit, " - "SUPER, B, exec, firefox" + "SUPER, B, exec, alacritty --title bluetuith -e bluetuith" + "SUPER, A, exec, ${ani-script}/bin/ani-cli-advanced" + "SUPER SHIFT, A, exec, ani-cli --rofi -c" "SUPER, f, fullscreen" "SUPER, E, exec, nautilus --new-window " "SUPER, V, togglefloating, " @@ -83,12 +107,12 @@ in "SUPER, j, movefocus, d" # move window to next / previous workspace" - "SUPER CTRL, h, movetoworkspace, -1" - "SUPER CTRL, l, movetoworkspace, +1" + "SUPER CTRL, h, movetoworkspace, r-1" + "SUPER CTRL, l, movetoworkspace, r+1" # move to next / previous workspace" - "SUPER CTRL, h, workspace, -1" - "SUPER CTRL, l, workspace, +1" + "SUPER CTRL, j, workspace, r-1" + "SUPER CTRL, k, workspace, r+1" # Switch workspaces with mainMod + [0-9]" @@ -102,6 +126,9 @@ in "SUPER, 8, workspace, 8" "SUPER, 9, workspace, 9" "SUPER, 0, workspace, 10" + + + # Move active window to a workspace with mainMod + SHIFT + [0-9]" "SUPER SHIFT, 1, movetoworkspace, 1" @@ -114,6 +141,16 @@ in "SUPER SHIFT, 8, movetoworkspace, 8" "SUPER SHIFT, 9, movetoworkspace, 9" "SUPER SHIFT, 0, movetoworkspace, 10" + + + "SUPER SHIFT, h, movewindow, l" + "SUPER SHIFT, l, movewindow, r" + "SUPER SHIFT, k, movewindow, u" + "SUPER SHIFT, j, movewindow, d" + + # resize windows + "SUPER, -, resizeactive, -30" + "SUPER, +, resizeactive, 30" # Scroll through existing workspaces with mainMod + scroll" "SUPER, mouse_down, workspace, e+1" diff --git a/hosts/dragyx/common/packages.nix b/hosts/dragyx/common/packages.nix index dd6e77a..92f9b00 100644 --- a/hosts/dragyx/common/packages.nix +++ b/hosts/dragyx/common/packages.nix @@ -31,6 +31,7 @@ in # to display when starting a terminal zathura fastfetch + wlr-randr alacritty wget gnumake diff --git a/hosts/dragyx/common/theming/catppuccin.css b/hosts/dragyx/common/theming/catppuccin.css new file mode 120000 index 0000000..0cf32d4 --- /dev/null +++ b/hosts/dragyx/common/theming/catppuccin.css @@ -0,0 +1 @@ +/home/dragyx/.config/waybar/catppuccin.css \ No newline at end of file diff --git a/hosts/dragyx/common/theming/default.nix b/hosts/dragyx/common/theming/default.nix index fa2dc41..eed91f9 100644 --- a/hosts/dragyx/common/theming/default.nix +++ b/hosts/dragyx/common/theming/default.nix @@ -5,6 +5,8 @@ let username = config.modules.other.system.username; gitPath = config.modules.other.system.gitPath; + variant = "frappe"; + catpuccin-rofi = pkgs.stdenv.mkDerivation { pname = "catppuccin-rofi"; @@ -44,12 +46,48 @@ let # runHook postInstall ''; + }; - catppuccin-sddm-corners-patched = pkgs.catppuccin-sddm-corners.overrideAttrs (prevAttrs: { - postInstall = (prevAttrs.postInstall or "") + '' - sed -i -E "s/passwordMaskDelay: [0-9]+/passwordMaskDelay: 0/" $out/share/sddm/themes/catppuccin-sddm-corners/components/PasswordPanel.qml + # catppuccin-sddm-corners-patched = pkgs.catppuccin-sddm-corners.overrideAttrs (prevAttrs: { + + # postInstall = (prevAttrs.postInstall or "") + '' + # sed -i -E "s/passwordMaskDelay: [0-9]+/passwordMaskDelay: 0/" $out/share/sddm/themes/catppuccin-sddm-corners/components/PasswordPanel.qml + # ''; + # }); + catppuccin-sddm = pkgs.stdenv.mkDerivation rec { + pname="catppuccin-sddm"; + version="1.0.0"; + dontBuild = true; + src = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "sddm"; + rev = "v${version}"; + sha256 = "sha256-SdpkuonPLgCgajW99AzJaR8uvdCPi4MdIxS5eB+Q9WQ="; + }; + # nativeBuildInputs = with pkgs; [ qt6.qtsvg qt6.qtdeclarative ]; + installPhase = '' + runHook preInstall + theme_dir="$out/share/sddm/themes/"; + mkdir -p $theme_dir + + for variant in "latte" "frappe" "macchiato" "mocha"; do + this_theme="$theme_dir/catppuccin-$variant" + mkdir "$this_theme" + cp -r $src/src/* $this_theme + # replace the theme name in the metadata file + sed -i -e "s/%%THEME%%/$variant/g" "$this_theme/metadata.desktop" + + + # handle items that are different per theme + cp "$src/pertheme/$variant.png" "$this_theme/preview.png" + cp "$src/pertheme/$variant.conf" "$this_theme/theme.conf" + done + + runHook postInstall ''; - }); + + + }; catppuccin-wallpapers = pkgs.stdenv.mkDerivation { pname="catppuccin-wallpapers"; version = "0"; @@ -60,11 +98,33 @@ let sha256 = "sha256-h+cFlTXvUVJPRMpk32jYVDDhHu1daWSezFcvhJqDpmU="; }; installPhase = '' - mkdir -p $out + mkdir -p $out/ cp -r $src/* $out/ ''; }; + catppuccin = (pkgs.catppuccin.override { + inherit variant; + }); + catppuccin-waybar = pkgs.stdenv.mkDerivation rec { + name = "catppuccin-waybar"; + version = "1.1"; + src = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "waybar"; + rev = "v${version}"; + hash = "sha256-9lY+v1CTbpw2lREG/h65mLLw5KuT8OJdEPOb+NNC6Fo="; + }; + installPhase = '' + runHook preInstall + mkdir -p $out + cp $src/themes/* $out/ + + runHook postInstall + ''; + + }; + in { home-manager.users.${username} = { @@ -72,6 +132,8 @@ in xdg.dataFile."rofi/themes".source = "${catpuccin-rofi}/share"; programs.waybar.style = ./waybar-style.css; + # add catppuccin theme to waybar + xdg.configFile."waybar/catppuccin.css".source = "${catppuccin-waybar}/${variant}.css"; wayland.windowManager.hyprland.settings.exec-once = [ "hyprshade auto" @@ -87,14 +149,21 @@ in }; }; environment.systemPackages = with pkgs; [ - catppuccin-sddm-corners-patched + # catppuccin-sddm-corners-patched + catppuccin + catppuccin-sddm # deps of catppuccin-sddm-corners-patched libsForQt5.qt5.qtgraphicaleffects libsForQt5.qt5.qtsvg libsForQt5.qt5.qtquickcontrols + qt6.qtsvg qt6.qtdeclarative + qt6.qtwayland ]; - services.displayManager.sddm.theme = "catppuccin-sddm-corners"; + services.displayManager.sddm = { + theme = "catppuccin-${variant}"; + package = pkgs.kdePackages.sddm; # NEEDED for the catppuccin theme + }; boot.loader.grub.theme = grub-theme; diff --git a/hosts/dragyx/common/theming/waybar-style.css b/hosts/dragyx/common/theming/waybar-style.css index d9472c4..e50df36 100644 --- a/hosts/dragyx/common/theming/waybar-style.css +++ b/hosts/dragyx/common/theming/waybar-style.css @@ -1,21 +1,7 @@ -/* Styles */ - -@define-color bar-back rgba(40, 40, 40, 0.2); -@define-color widget rgba(40, 40, 40, 0.8); -@define-color warning @bryellow; -@define-color critical red; -@define-color mode black; -@define-color unfocused @widget; -@define-color active rgba(100, 40, 40, 0.7); -@define-color focused red;/*rgba(100, 40, 40, 0.7);*/ -@define-color inactive purple; -@define-color fg1 rgba(0, 0, 255, 1); -@define-color fg2 rgba(255, 0, 0, 1); +@import "catppuccin.css"; /* Reset all styles */ * { - border: none; - border-radius: 0; min-height: 0; margin: 0; padding: 0; @@ -26,111 +12,49 @@ /* The whole bar */ #waybar { - background: @bar-back; - /* background: rgba(0, 0, 0, 0); - */ /*background-image: linear-gradient(to left, rgba(255, 100, 100, 100), rgba(255, 100, 100, 0));*/ - background: linear-gradient(90deg, rgba(0,212,255,0.19089642693014708) 0%, rgba(255,255,255,0) 25%, rgba(255,255,255,0) 75%, rgba(248,0,255,0.2105042700674019) 100%); - color: @white; + /* background: linear-gradient(90deg, @rosewater 0%, rgba(255,255,255,0) 25%, rgba(255,255,255,0) 75%, @teal 100%); */ + color: @text; font-family: JetBrains Mono; font-size: 13pt; } -/* Each module */ -#battery, -#clock, -#cpu, -#language, -#memory, -#mode, -#network, -#pulseaudio-slider, -#temperature, -#tray, -#backlight, -#wireplumber, -#idle_inhibitor, -#disk, -#user, -#keyboard-state, -#workspaces button, -#custom-os-icon, -#mpris { - background: @widget; - margin: 0 0.2em 0 0.2em; - padding: 0em 0.3em 0em 0.3em; - border-radius: 0.35em; -} - -#custom-os-icon { - min-width: 0.8em; - padding: 0 0.5em 0 0.1em; /*Otherwise the icon is not centered properly*/ -} - -#tray { - min-width: 0.8em; -} - -#keyboard-state { - min-width: 2em; - color: white; +#widget { + background: @base; } #workspaces button { - opacity: 100; - color: white; -} - -/* Inactive (on unfocused output) */ -#workspaces button.inactive { - background: @inactive; + margin: 0 5px; + padding: 2px 3px 0 3px; + border-width: 0 0 2px 0; + border-color: @pink; + border-style: solid; + color: @text; + border-radius: 0; + background-color: transparent; } #workspaces button.active { - background: @active; -} - -#custom-os-icon { - color: rgba(150, 150, 255, 1); - margin: 0 1em 0 0.2em; -} - -#wireplumber { - /*color: @fg1;*/ - border-radius: 0 0.3em 0.3em 0; -} - -#backlight { - /*color: @fg2;*/ - border-radius: 0.3em 0 0 0.3em; + background-color: @crust; + border-color: @yellow; } -/* Active (on focused output) */ -#workspaces button.focused { - opacity: 100; - background: @focused; -} - -/* Contains an urgent window */ -#workspaces button.urgent { - background: @warning; - -} - -/* Style when cursor is on the button */ #workspaces button:hover { - opacity: 110; - background: @focused; + background-color: @crust; + box-shadow: none; + text-shadow: none; + box-shadow: none; /* Remove predefined box-shadow */ + text-shadow: none; /* Remove predefined text-shadow */ + background: none; /* Remove predefined background color (white) */ + transition: none; /* Disable predefined animations */ } -#clock.date { - border-radius: 0.3em 0 0 0.3em; - min-width: 7em; +#workspaces button.focused { + background-color: @crust; } -#clock.time{ - /*border-radius: 0 0.3em 0.3em 0;*/ - border-radius: 0; - min-width: 4em; + +#workspaces button.urgent { + background-color: @maroon; } diff --git a/hosts/dragyx/common/theming/waybar-style.css.bak b/hosts/dragyx/common/theming/waybar-style.css.bak new file mode 100644 index 0000000..d9472c4 --- /dev/null +++ b/hosts/dragyx/common/theming/waybar-style.css.bak @@ -0,0 +1,136 @@ +/* Styles */ + +@define-color bar-back rgba(40, 40, 40, 0.2); +@define-color widget rgba(40, 40, 40, 0.8); +@define-color warning @bryellow; +@define-color critical red; +@define-color mode black; +@define-color unfocused @widget; +@define-color active rgba(100, 40, 40, 0.7); +@define-color focused red;/*rgba(100, 40, 40, 0.7);*/ +@define-color inactive purple; +@define-color fg1 rgba(0, 0, 255, 1); +@define-color fg2 rgba(255, 0, 0, 1); + +/* Reset all styles */ +* { + border: none; + border-radius: 0; + min-height: 0; + margin: 0; + padding: 0; + box-shadow: none; + text-shadow: none; + -gtk-icon-shadow: none; +} + +/* The whole bar */ +#waybar { + background: @bar-back; + /* + background: rgba(0, 0, 0, 0); + */ + /*background-image: linear-gradient(to left, rgba(255, 100, 100, 100), rgba(255, 100, 100, 0));*/ + background: linear-gradient(90deg, rgba(0,212,255,0.19089642693014708) 0%, rgba(255,255,255,0) 25%, rgba(255,255,255,0) 75%, rgba(248,0,255,0.2105042700674019) 100%); + color: @white; + font-family: JetBrains Mono; + font-size: 13pt; +} + +/* Each module */ +#battery, +#clock, +#cpu, +#language, +#memory, +#mode, +#network, +#pulseaudio-slider, +#temperature, +#tray, +#backlight, +#wireplumber, +#idle_inhibitor, +#disk, +#user, +#keyboard-state, +#workspaces button, +#custom-os-icon, +#mpris { + background: @widget; + margin: 0 0.2em 0 0.2em; + padding: 0em 0.3em 0em 0.3em; + border-radius: 0.35em; +} + +#custom-os-icon { + min-width: 0.8em; + padding: 0 0.5em 0 0.1em; /*Otherwise the icon is not centered properly*/ +} + +#tray { + min-width: 0.8em; +} + +#keyboard-state { + min-width: 2em; + color: white; +} + +#workspaces button { + opacity: 100; + color: white; +} + +/* Inactive (on unfocused output) */ +#workspaces button.inactive { + background: @inactive; +} + +#workspaces button.active { + background: @active; +} + +#custom-os-icon { + color: rgba(150, 150, 255, 1); + margin: 0 1em 0 0.2em; +} + +#wireplumber { + /*color: @fg1;*/ + border-radius: 0 0.3em 0.3em 0; +} + +#backlight { + /*color: @fg2;*/ + border-radius: 0.3em 0 0 0.3em; +} + + +/* Active (on focused output) */ +#workspaces button.focused { + opacity: 100; + background: @focused; +} + +/* Contains an urgent window */ +#workspaces button.urgent { + background: @warning; + +} + +/* Style when cursor is on the button */ +#workspaces button:hover { + opacity: 110; + background: @focused; +} + +#clock.date { + border-radius: 0.3em 0 0 0.3em; + min-width: 7em; +} +#clock.time{ + /*border-radius: 0 0.3em 0.3em 0;*/ + border-radius: 0; + min-width: 4em; +} diff --git a/hosts/dragyx/common/waybar.nix b/hosts/dragyx/common/waybar.nix index 458914f..c762265 100644 --- a/hosts/dragyx/common/waybar.nix +++ b/hosts/dragyx/common/waybar.nix @@ -14,7 +14,7 @@ in layer = "top"; position = "top"; modules-left = [ - "custom/os-icon" + # "custom/os-icon" "hyprland/workspaces" ]; modules-center = [ @@ -29,7 +29,7 @@ in ]; # Modules "custom/os-icon" = { - format = "\\uf313"; #NixOS logo + format = ""; #NixOS logo }; battery = { interval = 10; @@ -73,15 +73,15 @@ in network = { interval = 5; format-wifi = "{icon} {essid}"; - format-ethernet = "\\udb80\\ude01 {ifname}"; - format-disconnected = "\\uf0202 Offline"; - format-alt = "\\udb80\\uddda {bandwidthDownBytes} \\udb81\\udd52 {bandwidthUpBytes} \\udb82\\ude5f {ipaddr}/{cidr}"; + format-ethernet = "󰈁 {ifname}"; + format-disconnected = "2 Offline"; + format-alt = "󰇚 {bandwidthDownBytes} 󰕒 {bandwidthUpBytes} 󰩟 {ipaddr}/{cidr}"; format-icons = [ - "\\udb82\\udd28 " - "\\udb82\\udd25 " - "\\udb82\\udd22 " - "\\udb82\\udd1f " - "\\udb82\\udd2f " + "󰤨 " + "󰤥 " + "󰤢 " + "󰤟 " + "󰤯 " ]; tooltip = false; }; @@ -94,9 +94,9 @@ in max-length = 30; tooltip = false; rewrite = { - "([Aa]lacritty|kitty)" = "\\ue795 $1"; - "(.*) .{15} Mozilla Firefox" = "\\ue745 $1"; - "(^Spotify.*)" = "\\uf1bc $1"; + "([Aa]lacritty|kitty)" = " $1"; + "(.*) .{15} Mozilla Firefox" = " $1"; + "(^Spotify.*)" = " $1"; }; }; "hyprland/workspaces" = { @@ -161,26 +161,26 @@ in backlight = { format = "{percent}% {icon} "; format-icons = [ - "\\udb80\\udf36" - "\\udb86\\ude4e" - "\\udb86\\ude4f" - "\\udb86\\ude50" - "\\udb86\\ude51" - "\\udb86\\ude52" - "\\udb86\\ude53" - "\\udb86\\ude54" - "\\udb86\\ude55" - "\\udb86\\ude56" - "\\udb81\\udee8" + "󰌶" + "󱩎" + "󱩏" + "󱩐" + "󱩑" + "󱩒" + "󱩓" + "󱩔" + "󱩕" + "󱩖" + "󰛨" ]; }; wireplumber = { format = "{icon} {volume}%"; - format-muted = "\\udb81\\udd81"; + format-muted = "󰖁"; format-icons = [ - "\\uf026" - "\\uf027" - "\\udb81\\udd7e" + "" + "" + "󰕾" ]; }; tray = { diff --git a/hosts/dragyx/flocke/configuration.nix b/hosts/dragyx/flocke/configuration.nix index cb6fdf6..7f33829 100644 --- a/hosts/dragyx/flocke/configuration.nix +++ b/hosts/dragyx/flocke/configuration.nix @@ -115,6 +115,9 @@ security.polkit.enable = true; home-manager.users."dragyx".home.packages = with pkgs; [ vesktop ]; + # Mainly for coding weekend + services.hardware.bolt.enable = true; + modules = { other = { system = rec { @@ -131,6 +134,38 @@ }; scale = 1.175; refresh_rate = 60; + position = { + x = 0; + y = 0; + }; + } + rec { + name = "CodingWeekend"; + device = "DP-9"; + resolution = { + x = 2560; + y = 1440; + }; + refresh_rate = 60; + scale = 1; + position = { + x = -152; + y = -resolution.y; + }; + } + rec { + name = "CodingWeekend2"; + device = "DP-10"; + resolution = { + x = 2560; + y = 1440; + }; + refresh_rate = 60; + scale = 1; + position = { + x = -152; + y = -resolution.y; + }; } ]; wayland = true; diff --git a/hosts/dragyx/flocke/packages.nix b/hosts/dragyx/flocke/packages.nix index 2b759f3..274a10c 100644 --- a/hosts/dragyx/flocke/packages.nix +++ b/hosts/dragyx/flocke/packages.nix @@ -20,6 +20,7 @@ in lynis element-desktop jetbrains.idea-community + jetbrains.rust-rover baobab amdvlk texlive.combined.scheme-full