From 4893026ddada6e96bdec95a9ded31ed0f122c6ce Mon Sep 17 00:00:00 2001 From: deadvey Date: Mon, 18 Nov 2024 20:43:37 +0000 Subject: [PATCH] 2024-11-18 20:30 : id 181 --- :wq | 441 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 441 insertions(+) create mode 100644 :wq diff --git a/:wq b/:wq new file mode 100644 index 0000000..1e55edc --- /dev/null +++ b/:wq @@ -0,0 +1,441 @@ +{ config, pkgs, ... }: +let + # Theme/Mode + THEME = "kami"; + MODE = "dark"; + + # Colours + inherit (import ./themes/${THEME}_${MODE}.nix) BG FG GRAY DARK_GRAY RED DARK_RED GREEN DARK_GREEN YELLOW DARK_YELLOW BLUE DARK_BLUE PURPLE DARK_PURPLE CYAN DARK_CYAN; + ACCENT = "${CYAN}"; + SECOND_ACCENT = "${PURPLE}"; + ACTIVE_BORDER_COLOR = "${ACCENT}"; + INACTIVE_BORDER_COLOR = "${FG}"; + SHADOW_COLOR = "${FG}" + + # Programs + MENU = "fuzzel"; + TERMINAL = "kitty"; + + # Numbers + GAPS_IN = "20"; + GAPS_OUT = "40"; + BORDER_WIDTH = "2"; + CORNER_RADIUS = "0"; + WAYBAR_CORNER_RADIUS = "0"; + TERMINAL_OPACITY = "1"; + SCREEN_HEIGHT = 1080; + SCREEN_WIDTH = 1920; + FUZZEL_WIDTH = "25"; + FUZZEL_HEIGHT = "15"; + FUZZEL_OPACITY = "99"; + + # Other + HOME = "/home/deadvey"; + WALLPAPER = "${THEME}_${MODE}.png"; + WALLPAPER_PATH = "${HOME}/.config/home-manager/themes/${WALLPAPER}"; + FONT = "VictorMono Nerd Font Mono"; + FUZZEL_PROMPT = " >> "; + DUNST_ORIGIN = "top-center"; +in +{ + + + # Home Manager needs a bit of information about you and the paths it should + # manage. + + home = { + username = "deadvey"; + homeDirectory = "/home/deadvey"; + enableNixpkgsReleaseCheck = false; + stateVersion = "24.11"; + packages = with pkgs; [ + anki + hyprland + hyprpicker + hyprpaper + hyprlock + hypridle + libreoffice + librewolf + fuzzel + waybar + kitty + dunst + fastfetch + mpv + minetest + gimp + wl-clipboard + killall + thunderbird + keepassxc + unzip + ]; + pointerCursor = { + gtk.enable = true; + package = pkgs.gnome.adwaita-icon-theme; + name = "Adwaita"; + size = 16; + }; + }; + programs = { + neovim = { + defaultEditor = true; + enable = true; + vimAlias = true; + extraConfig = '' + set clipboard=unnamedplus + set relativenumber + ''; + }; + bash = { + enable = true; + shellAliases = { + ls="ls -l"; + }; + bashrcExtra='' + PS1="[\[\033[32m\]\w]\[\033[0m\]\n\[\033[1;36m\]\u\[\033[1;33m\] => \[\033[0m\]" + fastfetch + ''; + }; + git = { + enable = true; + userName = "deadvey"; + userEmail = "deadvey@nixos"; + }; + kitty = { + enable = true; + settings = { + confirm_os_window_close = 0; + background_opacity = "${TERMINAL_OPACITY}"; + foreground = "#${FG}"; + background = "#${BG}"; + selection_foreground = "#${BG}"; + selection_background = "#${FG}"; + color0 = "#${GRAY}"; + color8 = "#${BG}"; + color1 = "#${RED}"; + color9 = "#${DARK_RED}"; + color2 = "#${GREEN}"; + color10 = "#${DARK_GREEN}"; + color3 = "#${YELLOW}"; + color11 = "#${DARK_YELLOW}"; + color4 = "#${BLUE}"; + color12 = "#${DARK_BLUE}"; + color5 = "#${PURPLE}"; + color13 = "#${DARK_PURPLE}"; + color6 = "#${BLUE}"; + color14 = "#${DARK_BLUE}"; + color7 = "#${GRAY}"; + color15 = "#${DARK_GRAY}"; + }; + font = { + name = "VictorMono Nerd Font Mono"; + package = pkgs.victor-mono; + size = 8; + }; + }; + hyprlock = { + enable = true; + settings = { + general = { + disable_loading_bar = true; + grace = 1; + no_fade_in = false; + }; + background = [ + { + path = "${WALLPAPER_PATH}"; + } + ]; + input-field = [ + { + size = "200, 50"; + position = "0, 0"; + dots_rounding = "${CORNER_RADIUS}"; + dots_center = true; + fade_on_empty = true; + font_color = "${FG}"; + inner_color = "${FG}"; + outer_color = "${ACCENT}"; + outline_thickness = "${BORDER_WIDTH}"; + placeholder_text = "Password..."; + fail_text = "😬 Oooooh that was wrong mate!⚠️"; + } + ]; + }; + }; + fuzzel = { + enable = true; + settings = { + main = { + prompt = "${FUZZEL_PROMPT}"; + width = "${FUZZEL_WIDTH}"; + lines = "${FUZZEL_HEIGHT}"; + icons-enables = "no"; + font = "${FONT}"; + }; + colors = { + background = "${BG}${FUZZEL_OPACITY}"; + border = "${ACCENT}ff"; + match = "${RED}ff"; + selection = "${FG}ff"; + selection-text = "${BG}ff"; + text = "${FG}ff"; + prompt = "${FG}ff"; + input = "${FG}ff"; + }; + border = { + width = "${BORDER_WIDTH}"; + radius = "${CORNER_RADIUS}"; + }; + }; + }; + waybar = { + enable = true; + settings = { + screenBorder = { + mode = "overlay"; + layer = "bottom"; + name = "screenBorder"; + position = "top"; + height = SCREEN_HEIGHT; + width = SCREEN_WIDTH; + modules-center = ["custom/empty"]; + "custom/empty" = { + format = " "; + interval = 1; + }; + }; + main = { + mode = "overlay"; + layer = "bottom"; + name = "main"; + position = "top"; + height = 20; + modules-center = ["custom/clock"]; + "custom/clock" = { + format = "{}"; + exec = "bash /home/deadvey/Code/git/time-to-metrictime-converter/time.sh --hex"; + interval = 1; + }; + "hyprland/workspaces" = { + + }; + }; + }; + style = '' + window#waybar.screenBorder { + border: ${BORDER_WIDTH}px solid #${ACCENT}; + background-color: transparent; + box-shadow: 0px 0px 0px 60px black, 0px 0px 0px 0.5px #${FG}; + border-radius: ${WAYBAR_CORNER_RADIUS}px; + margin: 20px; + } + window#waybar.main { + background-color: transparent; + } + #custom-clock { + color: #${PURPLE}; + background: #${BG}; + border: ${BORDER_WIDTH}px solid #${ACCENT}; + border-radius: ${WAYBAR_CORNER_RADIUS}; + padding: 3px; + margin: 6px; + } + ''; + }; + }; + services = { + hyprpaper = { + enable = true; + settings = { + ipc = "on"; + preload = [ "${WALLPAPER_PATH}" ]; + wallpaper = [ "HDMI-A-1,${WALLPAPER_PATH}" ]; + }; + }; + hypridle = { + enable = true; + settings = { + listener = [ + { + timeout = 100; + on-timeout = "hyprlock"; + } + ]; + }; + }; + dunst = { + enable = true; + settings = { + global = { + width = 300; + height = 300; + offset = "${GAPS_OUT}x${GAPS_OUT}"; + origin = "${DUNST_ORIGIN}"; + font = "${FONT}"; + corner_radius = "${CORNER_RADIUS}"; + foreground = "#${FG}"; + frame_color = "#${ACCENT}"; + frame_width = "${BORDER_WIDTH}"; + }; + urgency_low = { + background = "#${GREEN}"; + timeout=3; + }; + urgency_normal = { + background = "#${BLUE}"; + timeout=6; + }; + urgency_critical = { + background = "#${RED}"; + timeout=12; + }; + }; + }; + }; + wayland = { + windowManager = { + hyprland = { + enable = true; + plugins = with pkgs; [ + #hyprlandPlugins.hyprbars + hyprlandPlugins.hyprexpo + ]; + extraConfig = '' + exec-once="waybar"; + exec-once="dunst"; + exec-once="hyprpaper"; + exec-once="wpaperd -d -c $HOME/.config/wpaperd/wallpaper.toml"; + exec-once="hypridle"; + exec-once="dunst"; + ''; + settings = { + "$mod" = "SUPER"; + plugin = { + hyprexpo = { + columns = 3; + gap_size = 5; + bg_col = "rgb(${BG})"; + workspace_method = "center current"; + }; + hyprbars = { + bar_height = 25; + bar_color = "rgb(${BG})"; + "col.text" = "rgb(${FG})"; + hyprbars-button = "rgb(${RED}), 10, X, hyprctl dispatch killactive"; + }; + }; + general = { + gaps_in = "${GAPS_IN}"; + gaps_out = "${GAPS_OUT}"; + border_size = "${BORDER_WIDTH}"; + "col.active_border" = "rgb(${ACCENT})"; + "col.inactive_border" = "rgb(${INACTIVE_BORDER_COLOR})"; + resize_on_border = false; + layout = "dwindle"; + }; + decoration = { + rounding="${CORNER_RADIUS}"; + + drop_shadow = true; + "col.shadow" = "rgb(0,0,0)"; + shadow_offset = "12 12"; + shadow_range = "0"; + }; + input = { + kb_layout = "gb"; + }; + bindm = [ + "$mod, mouse:272, movewindow" + "$mod, mouse:273, resizewindow" + ]; + bind = [ + "$mod, Space, exec, ${MENU}" + "$mod, Q, exec, ${TERMINAL}" + "$mod ALT, up, exec, pactl set-sink-volume 0 +5%" + "$mod ALT, down, exec, pactl set-sink-volume 0 -5%" + "$mod, grave, hyprexpo:expo, toggle" + "$mod, P, exec, grimshot copy area" + "$mod, L, exec, hyprlock" + "$mod, C, killactive" + "$mod, O, exec, hyprpicker -a" + "$mod, M, fullscreen, 1" + "$mod SHIFT, E, exit" + "$mod, J, togglesplit," + "$mod, V, toggleFloating," + "$mod, U, pseudo," + "$mod SHIFT, Q, exit" + "$mod, left, movefocus, l" + "$mod, right, movefocus, r" + "$mod, up, movefocus, u" + "$mod, down, movefocus, d" + "$mod SHIFT, left, movewindow, l" + "$mod SHIFT, right, movewindow, r" + "$mod SHIFT, up, movewindow, u" + "$mod SHIFT, down, movewindow, d" + "$mod, 1, workspace, 1" + "$mod, 2, workspace, 2" + "$mod, 3, workspace, 3" + "$mod, 4, workspace, 4" + "$mod, 5, workspace, 5" + "$mod, 6, workspace, 6" + "$mod, 7, workspace, 7" + "$mod, 8, workspace, 8" + "$mod, 9, workspace, 9" + "$mod, 0, workspace, 10" + "$mod SHIFT, 1, movetoworkspace, 1" + "$mod SHIFT, 2, movetoworkspace, 2" + "$mod SHIFT, 3, movetoworkspace, 3" + "$mod SHIFT, 4, movetoworkspace, 4" + "$mod SHIFT, 5, movetoworkspace, 5" + "$mod SHIFT, 6, movetoworkspace, 6" + "$mod SHIFT, 7, movetoworkspace, 7" + "$mod SHIFT, 8, movetoworkspace, 8" + "$mod SHIFT, 9, movetoworkspace, 9" + "$mod SHIFT, 0, movetoworkspace, 10" + ]; + + }; + }; + }; + }; + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. + home.file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + }; + + # Home Manager can also manage your environment variables through + # 'home.sessionVariables'. These will be explicitly sourced when using a + # shell provided by Home Manager. If you don't want to manage your shell + # through Home Manager then you have to manually source 'hm-session-vars.sh' + # located at either + # + # ~/.nix-profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # /etc/profiles/per-user/deadvey/etc/profile.d/hm-session-vars.sh + # + home.sessionVariables = { + # EDITOR = "emacs"; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +}