Final edits before fork

This commit is contained in:
Dragyx 2024-04-29 13:17:46 +02:00
commit a4edaec9eb
10 changed files with 363 additions and 156 deletions

View file

@ -24,18 +24,21 @@ in
}; };
home-manager.users.${username} = { home-manager.users.${username} = {
programs.firefox.profiles = { programs.firefox = {
main = { enable = true;
id = 0; profiles = {
isDefault = true; main = {
search.default = "DuckDuckGo"; id = 0;
extensions = with pkgs.nur.repos.rycee.firefox-addons; [ isDefault = true;
ublock-origin search.default = "DuckDuckGo";
bitwarden extensions = with pkgs.nur.repos.rycee.firefox-addons; [
darkreader ublock-origin
maya-dark bitwarden
]; darkreader
search.force = true; maya-dark
];
search.force = true;
};
}; };
}; };
}; };

View file

@ -4,6 +4,21 @@ with lib;
let let
username = config.modules.other.system.username; username = config.modules.other.system.username;
cfg = config.modules.WM.hyprland; 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 in
{ {
config = mkIf cfg.enable { config = mkIf cfg.enable {
@ -32,6 +47,7 @@ in
kb_layout = "us"; kb_layout = "us";
natural_scroll = true; natural_scroll = true;
sensitivity = 0; sensitivity = 0;
kb_variant = "altgr-intl";
}; };
general = { general = {
gaps_in = 2; gaps_in = 2;
@ -58,15 +74,23 @@ in
"windows, 1, 7, myBezier" "windows, 1, 7, myBezier"
]; ];
}; };
xwayland = {
force_zero_scaling = true;
};
gestures.workspace_swipe = true; gestures.workspace_swipe = true;
debug.enable_stdout_logs = true; debug.enable_stdout_logs = true;
windowrulev2 = [
"float,title:bluetuith"
];
bind = [ bind = [
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
"SUPER, RETURN, exec, alacritty" "SUPER, RETURN, exec, alacritty"
"SUPER SHIFT, RETURN, exec, rofi -show drun" "SUPER SHIFT, RETURN, exec, rofi -show drun"
"SUPER SHIFT, Q, killactive," "SUPER SHIFT, Q, killactive,"
"SUPER, M, exit, " "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, f, fullscreen"
"SUPER, E, exec, nautilus --new-window " "SUPER, E, exec, nautilus --new-window "
"SUPER, V, togglefloating, " "SUPER, V, togglefloating, "
@ -83,12 +107,12 @@ in
"SUPER, j, movefocus, d" "SUPER, j, movefocus, d"
# move window to next / previous workspace" # move window to next / previous workspace"
"SUPER CTRL, h, movetoworkspace, -1" "SUPER CTRL, h, movetoworkspace, r-1"
"SUPER CTRL, l, movetoworkspace, +1" "SUPER CTRL, l, movetoworkspace, r+1"
# move to next / previous workspace" # move to next / previous workspace"
"SUPER CTRL, h, workspace, -1" "SUPER CTRL, j, workspace, r-1"
"SUPER CTRL, l, workspace, +1" "SUPER CTRL, k, workspace, r+1"
# Switch workspaces with mainMod + [0-9]" # Switch workspaces with mainMod + [0-9]"
@ -103,6 +127,9 @@ in
"SUPER, 9, workspace, 9" "SUPER, 9, workspace, 9"
"SUPER, 0, workspace, 10" "SUPER, 0, workspace, 10"
# Move active window to a workspace with mainMod + SHIFT + [0-9]" # Move active window to a workspace with mainMod + SHIFT + [0-9]"
"SUPER SHIFT, 1, movetoworkspace, 1" "SUPER SHIFT, 1, movetoworkspace, 1"
"SUPER SHIFT, 2, movetoworkspace, 2" "SUPER SHIFT, 2, movetoworkspace, 2"
@ -115,6 +142,16 @@ in
"SUPER SHIFT, 9, movetoworkspace, 9" "SUPER SHIFT, 9, movetoworkspace, 9"
"SUPER SHIFT, 0, movetoworkspace, 10" "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" # Scroll through existing workspaces with mainMod + scroll"
"SUPER, mouse_down, workspace, e+1" "SUPER, mouse_down, workspace, e+1"
"SUPER, mouse_up, workspace, e-1" "SUPER, mouse_up, workspace, e-1"

View file

@ -31,6 +31,7 @@ in
# to display when starting a terminal # to display when starting a terminal
zathura zathura
fastfetch fastfetch
wlr-randr
alacritty alacritty
wget wget
gnumake gnumake

View file

@ -0,0 +1 @@
/home/dragyx/.config/waybar/catppuccin.css

View file

@ -5,6 +5,8 @@ let
username = config.modules.other.system.username; username = config.modules.other.system.username;
gitPath = config.modules.other.system.gitPath; gitPath = config.modules.other.system.gitPath;
variant = "frappe";
catpuccin-rofi = pkgs.stdenv.mkDerivation { catpuccin-rofi = pkgs.stdenv.mkDerivation {
pname = "catppuccin-rofi"; pname = "catppuccin-rofi";
@ -44,12 +46,48 @@ let
# runHook postInstall # runHook postInstall
''; '';
}; };
catppuccin-sddm-corners-patched = pkgs.catppuccin-sddm-corners.overrideAttrs (prevAttrs: { # 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 # 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 { catppuccin-wallpapers = pkgs.stdenv.mkDerivation {
pname="catppuccin-wallpapers"; pname="catppuccin-wallpapers";
version = "0"; version = "0";
@ -60,11 +98,33 @@ let
sha256 = "sha256-h+cFlTXvUVJPRMpk32jYVDDhHu1daWSezFcvhJqDpmU="; sha256 = "sha256-h+cFlTXvUVJPRMpk32jYVDDhHu1daWSezFcvhJqDpmU=";
}; };
installPhase = '' installPhase = ''
mkdir -p $out mkdir -p $out/
cp -r $src/* $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 in
{ {
home-manager.users.${username} = { home-manager.users.${username} = {
@ -72,6 +132,8 @@ in
xdg.dataFile."rofi/themes".source = "${catpuccin-rofi}/share"; xdg.dataFile."rofi/themes".source = "${catpuccin-rofi}/share";
programs.waybar.style = ./waybar-style.css; 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 = [ wayland.windowManager.hyprland.settings.exec-once = [
"hyprshade auto" "hyprshade auto"
@ -87,14 +149,21 @@ in
}; };
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
catppuccin-sddm-corners-patched # catppuccin-sddm-corners-patched
catppuccin
catppuccin-sddm
# deps of catppuccin-sddm-corners-patched # deps of catppuccin-sddm-corners-patched
libsForQt5.qt5.qtgraphicaleffects libsForQt5.qt5.qtgraphicaleffects
libsForQt5.qt5.qtsvg libsForQt5.qt5.qtsvg
libsForQt5.qt5.qtquickcontrols 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; boot.loader.grub.theme = grub-theme;

View file

@ -1,21 +1,7 @@
/* Styles */ @import "catppuccin.css";
@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 */ /* Reset all styles */
* { * {
border: none;
border-radius: 0;
min-height: 0; min-height: 0;
margin: 0; margin: 0;
padding: 0; padding: 0;
@ -26,111 +12,49 @@
/* The whole bar */ /* The whole bar */
#waybar { #waybar {
background: @bar-back;
/*
background: rgba(0, 0, 0, 0); background: rgba(0, 0, 0, 0);
*/
/*background-image: linear-gradient(to left, rgba(255, 100, 100, 100), rgba(255, 100, 100, 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%); /* background: linear-gradient(90deg, @rosewater 0%, rgba(255,255,255,0) 25%, rgba(255,255,255,0) 75%, @teal 100%); */
color: @white; color: @text;
font-family: JetBrains Mono; font-family: JetBrains Mono;
font-size: 13pt; font-size: 13pt;
} }
/* Each module */ #widget {
#battery, background: @base;
#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 { #workspaces button {
opacity: 100; margin: 0 5px;
color: white; padding: 2px 3px 0 3px;
} border-width: 0 0 2px 0;
border-color: @pink;
/* Inactive (on unfocused output) */ border-style: solid;
#workspaces button.inactive { color: @text;
background: @inactive; border-radius: 0;
background-color: transparent;
} }
#workspaces button.active { #workspaces button.active {
background: @active; background-color: @crust;
} border-color: @yellow;
#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 { #workspaces button:hover {
opacity: 110; background-color: @crust;
background: @focused; 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 { #workspaces button.focused {
border-radius: 0.3em 0 0 0.3em; background-color: @crust;
min-width: 7em;
} }
#clock.time{
/*border-radius: 0 0.3em 0.3em 0;*/ #workspaces button.urgent {
border-radius: 0; background-color: @maroon;
min-width: 4em;
} }

View file

@ -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;
}

View file

@ -14,7 +14,7 @@ in
layer = "top"; layer = "top";
position = "top"; position = "top";
modules-left = [ modules-left = [
"custom/os-icon" # "custom/os-icon"
"hyprland/workspaces" "hyprland/workspaces"
]; ];
modules-center = [ modules-center = [
@ -29,7 +29,7 @@ in
]; ];
# Modules # Modules
"custom/os-icon" = { "custom/os-icon" = {
format = "\\uf313"; #NixOS logo format = ""; #NixOS logo
}; };
battery = { battery = {
interval = 10; interval = 10;
@ -73,15 +73,15 @@ in
network = { network = {
interval = 5; interval = 5;
format-wifi = "{icon} {essid}"; format-wifi = "{icon} {essid}";
format-ethernet = "\\udb80\\ude01 {ifname}"; format-ethernet = "󰈁 {ifname}";
format-disconnected = "\\uf0202 Offline"; format-disconnected = "2 Offline";
format-alt = "\\udb80\\uddda {bandwidthDownBytes} \\udb81\\udd52 {bandwidthUpBytes} \\udb82\\ude5f {ipaddr}/{cidr}"; format-alt = "󰇚 {bandwidthDownBytes} 󰕒 {bandwidthUpBytes} 󰩟 {ipaddr}/{cidr}";
format-icons = [ format-icons = [
"\\udb82\\udd28 " "󰤨 "
"\\udb82\\udd25 " "󰤥 "
"\\udb82\\udd22 " "󰤢 "
"\\udb82\\udd1f " "󰤟 "
"\\udb82\\udd2f " "󰤯 "
]; ];
tooltip = false; tooltip = false;
}; };
@ -94,9 +94,9 @@ in
max-length = 30; max-length = 30;
tooltip = false; tooltip = false;
rewrite = { rewrite = {
"([Aa]lacritty|kitty)" = "\\ue795 $1"; "([Aa]lacritty|kitty)" = " $1";
"(.*) .{15} Mozilla Firefox" = "\\ue745 $1"; "(.*) .{15} Mozilla Firefox" = " $1";
"(^Spotify.*)" = "\\uf1bc $1"; "(^Spotify.*)" = " $1";
}; };
}; };
"hyprland/workspaces" = { "hyprland/workspaces" = {
@ -161,26 +161,26 @@ in
backlight = { backlight = {
format = "{percent}% {icon} "; format = "{percent}% {icon} ";
format-icons = [ 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 = { wireplumber = {
format = "{icon} {volume}%"; format = "{icon} {volume}%";
format-muted = "\\udb81\\udd81"; format-muted = "󰖁";
format-icons = [ format-icons = [
"\\uf026" ""
"\\uf027" ""
"\\udb81\\udd7e" "󰕾"
]; ];
}; };
tray = { tray = {

View file

@ -115,6 +115,9 @@
security.polkit.enable = true; security.polkit.enable = true;
home-manager.users."dragyx".home.packages = with pkgs; [ vesktop ]; home-manager.users."dragyx".home.packages = with pkgs; [ vesktop ];
# Mainly for coding weekend
services.hardware.bolt.enable = true;
modules = { modules = {
other = { other = {
system = rec { system = rec {
@ -131,6 +134,38 @@
}; };
scale = 1.175; scale = 1.175;
refresh_rate = 60; 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; wayland = true;

View file

@ -20,6 +20,7 @@ in
lynis lynis
element-desktop element-desktop
jetbrains.idea-community jetbrains.idea-community
jetbrains.rust-rover
baobab baobab
amdvlk amdvlk
texlive.combined.scheme-full texlive.combined.scheme-full