From 15f26a50e9df70a2c8ef4bcc8550d0e4121ba6f4 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> Date: Sat, 12 Oct 2024 01:23:54 +0530 Subject: Using desktop background. Using window transparency with picom. Using alacritty because kitty is having problems with colors when picom is running. --- assets/background.png | Bin 0 -> 40378 bytes home.nix | 10 ++- .../desktop/application-launcher/fzf/default.nix | 2 +- modules/desktop/default.nix | 1 - .../desktop/display-server/compositor/default.nix | 7 ++ .../display-server/compositor/picom/default.nix | 23 ++++++ modules/desktop/display-server/default.nix | 1 + .../desktop/display-server/x11/xinit/default.nix | 6 ++ modules/desktop/terminal/alacritty/default.nix | 83 --------------------- modules/desktop/terminal/default.nix | 23 ------ modules/desktop/terminal/kitty/default.nix | 52 ------------- modules/desktop/window-manager/sxhkd/default.nix | 4 +- modules/tools/default.nix | 1 + modules/tools/file-manager/lf/default.nix | 4 +- modules/tools/terminal/alacritty/default.nix | 83 +++++++++++++++++++++ modules/tools/terminal/default.nix | 23 ++++++ modules/tools/terminal/kitty/default.nix | 61 +++++++++++++++ modules/tools/viewer/default.nix | 1 + modules/tools/viewer/feh/default.nix | 11 +++ 19 files changed, 228 insertions(+), 168 deletions(-) create mode 100755 assets/background.png create mode 100644 modules/desktop/display-server/compositor/default.nix create mode 100644 modules/desktop/display-server/compositor/picom/default.nix delete mode 100644 modules/desktop/terminal/alacritty/default.nix delete mode 100644 modules/desktop/terminal/default.nix delete mode 100644 modules/desktop/terminal/kitty/default.nix create mode 100644 modules/tools/terminal/alacritty/default.nix create mode 100644 modules/tools/terminal/default.nix create mode 100644 modules/tools/terminal/kitty/default.nix create mode 100644 modules/tools/viewer/feh/default.nix diff --git a/assets/background.png b/assets/background.png new file mode 100755 index 0000000..48cc182 Binary files /dev/null and b/assets/background.png differ diff --git a/home.nix b/home.nix index 292097e..ab5287d 100644 --- a/home.nix +++ b/home.nix @@ -7,13 +7,11 @@ # Desktop desktop.display-server.x11.xinit.enable = true; - desktop.application-launcher.rofi.enable = true; + # desktop.application-launcher.rofi.enable = true; desktop.application-launcher.fzf.enable = true; desktop.application-launcher.default = "fzf"; + desktop.display-server.compositor.picom.enable = true; desktop.status-bar.polybar.enable = true; - desktop.terminal.alacritty.enable = true; - desktop.terminal.kitty.enable = true; - desktop.terminal.default = "kitty"; desktop.window-manager.bspwm.enable = true; desktop.window-manager.sxhkd.enable = true; desktop.xdg-portal.enable = true; @@ -37,8 +35,12 @@ tools.git.username = "Arpit Chakladar"; tools.git.email = "54011232+arpitchakladar@users.noreply.github.com"; tools.system-monitor.htop.enable = true; + tools.terminal.alacritty.enable = true; + # tools.terminal.kitty.enable = true; + tools.terminal.default = "alacritty"; tools.utils.fzf.enable = true; tools.viewer.bat.enable = true; + tools.viewer.feh.enable = true; programs.home-manager.enable = true; } diff --git a/modules/desktop/application-launcher/fzf/default.nix b/modules/desktop/application-launcher/fzf/default.nix index 2047919..6a1c4a6 100644 --- a/modules/desktop/application-launcher/fzf/default.nix +++ b/modules/desktop/application-launcher/fzf/default.nix @@ -16,7 +16,7 @@ desktop.application-launcher.default = lib.mkDefault "fzf"; desktop.application-launcher.command = if config.desktop.application-launcher.default == "fzf" then - lib.mkForce "${config.desktop.terminal.command} --title 'Application Launcher' --class floating-termial -e ${(pkgs.writeShellScript "fzf-launch.sh" (builtins.readFile ./launch.sh))}" + lib.mkForce "${config.tools.terminal.command} --title 'Application Launcher' --class floating-termial -e ${(pkgs.writeShellScript "fzf-launch.sh" (builtins.readFile ./launch.sh))}" else ""; }; } diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 43ef865..e015ea9 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -5,7 +5,6 @@ ./application-launcher ./display-server ./status-bar - ./terminal ./window-manager ./xdg-portal ]; diff --git a/modules/desktop/display-server/compositor/default.nix b/modules/desktop/display-server/compositor/default.nix new file mode 100644 index 0000000..ae5fc6d --- /dev/null +++ b/modules/desktop/display-server/compositor/default.nix @@ -0,0 +1,7 @@ +{ ... }: + +{ + imports = [ + ./picom + ]; +} diff --git a/modules/desktop/display-server/compositor/picom/default.nix b/modules/desktop/display-server/compositor/picom/default.nix new file mode 100644 index 0000000..f138793 --- /dev/null +++ b/modules/desktop/display-server/compositor/picom/default.nix @@ -0,0 +1,23 @@ +{ lib, config, ... }: + +{ + options.desktop.display-server.compositor.picom = { + enable = lib.mkEnableOption "Enables picom."; + }; + + config = lib.mkIf config.desktop.display-server.compositor.picom.enable { + services.picom.enable = true; + services.picom.backend = "xrender"; + services.picom.fade = false; + services.picom.shadow = false; + services.picom.settings = { + blur-background = false; + background = "#000000"; + }; + services.picom.activeOpacity = 0.8; + services.picom.inactiveOpacity = 0.8; + services.picom.opacityRules = [ + "70:class_g = 'Polybar'" # 70% opacity for Polybar + ]; + }; +} diff --git a/modules/desktop/display-server/default.nix b/modules/desktop/display-server/default.nix index f81358d..5062f7c 100644 --- a/modules/desktop/display-server/default.nix +++ b/modules/desktop/display-server/default.nix @@ -2,6 +2,7 @@ { imports = [ + ./compositor ./x11 ]; } diff --git a/modules/desktop/display-server/x11/xinit/default.nix b/modules/desktop/display-server/x11/xinit/default.nix index b665e0b..9bf7de3 100644 --- a/modules/desktop/display-server/x11/xinit/default.nix +++ b/modules/desktop/display-server/x11/xinit/default.nix @@ -12,6 +12,12 @@ '' #!/bin/sh xsetroot -solid "${config.scheme.withHashtag.base00}" +${if config.desktop.display-server.compositor.picom.enable then + "picom &" +else ""} +${if config.tools.viewer.feh.enable then + "feh --bg-scale ${../../../../../assets/background.png}" +else ""} ${if config.desktop.status-bar.polybar.enable then config.desktop.status-bar.polybar.command else ""} diff --git a/modules/desktop/terminal/alacritty/default.nix b/modules/desktop/terminal/alacritty/default.nix deleted file mode 100644 index 151e098..0000000 --- a/modules/desktop/terminal/alacritty/default.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ pkgs, config, lib, ... }: - -{ - options.desktop.terminal.alacritty = { - enable = lib.mkEnableOption "Enables alacritty."; - }; - - config = lib.mkIf config.desktop.terminal.alacritty.enable { - programs.alacritty.enable = true; - desktop.terminal.default = lib.mkDefault "alacritty"; - desktop.terminal.command = - if config.desktop.terminal.default == "alacritty" then - lib.mkForce "${pkgs.kitty}/bin/alacritty" - else ""; - - programs.alacritty.settings = { - window = { - opacity = 1.0; - padding = { - x = 4; - y = 0; - }; - decorations = "full"; - }; - - font = { - normal = { - family = config.fonts.normal; - style = "Retina"; - }; - bold = { - family = config.fonts.bold; - style = "Bold"; - }; - italic = { - family = config.fonts.italic; - }; - size = config.fonts.size; - }; - - colors = with config.scheme; { - primary = { - background = "0x${base00}"; - foreground = "0x${base05}"; - }; - normal = { - black = "0x${base00}"; - red = "0x${base08}"; - green = "0x${base0B}"; - yellow = "0x${base0A}"; - blue = "0x${base0D}"; - magenta = "0x${base0E}"; - cyan = "0x${base0C}"; - white = "0x${base05}"; - }; - bright = { - black = "0x${base03}"; - red = "0x${base08}"; - green = "0x${base0B}"; - yellow = "0x${base0A}"; - blue = "0x${base0D}"; - magenta = "0x${base0E}"; - cyan = "0x${base0C}"; - white = "0x${base07}"; - }; - dim = { - black = "0x${base01}"; - red = "0x${base08}"; - green = "0x${base0B}"; - yellow = "0x${base0A}"; - blue = "0x${base0D}"; - magenta = "0x${base0E}"; - cyan = "0x${base0C}"; - white = "0x${base04}"; - }; - }; - - shell = { - program = config.shell.command; - }; - }; - }; -} diff --git a/modules/desktop/terminal/default.nix b/modules/desktop/terminal/default.nix deleted file mode 100644 index 189c794..0000000 --- a/modules/desktop/terminal/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, ... }: - -{ - imports = [ - ./alacritty - ./kitty - ]; - - options.desktop.terminal = { - command = lib.mkOption { - type = lib.types.str; - description = "Command for the terminal."; - }; - - default = lib.mkOption { - type = lib.types.enum [ - "kitty" - "alacritty" - ]; - description = "Default terminal."; - }; - }; -} diff --git a/modules/desktop/terminal/kitty/default.nix b/modules/desktop/terminal/kitty/default.nix deleted file mode 100644 index a34e58a..0000000 --- a/modules/desktop/terminal/kitty/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ pkgs, config, lib, ... }: - -{ - options.desktop.terminal.kitty = { - enable = lib.mkEnableOption "Enables kitty."; - }; - - config = lib.mkIf config.desktop.terminal.kitty.enable { - assertions = [ - { - assertion = config.desktop.xdg-portal.enable; - message ="Module desktop.terminal.kitty requires desktop.xdg-portal module to be enabled."; - } - ]; - programs.kitty.enable = true; - desktop.terminal.default = lib.mkDefault "kitty"; - desktop.terminal.command = - if config.desktop.terminal.default == "kitty" then - lib.mkForce "${pkgs.kitty}/bin/kitty" - else ""; - - programs.kitty.settings = with config.scheme.withHashtag; { - window_padding_width = config.desktop.window-manager.gap; - font_size = config.fonts.size; - font_family = config.fonts.normal; - filter_notification = "all"; - update_check_interval = 0; # disable notifications - scrollback_indicator_opacity = "0.5"; - - dynamic_background_opacity = false; - allow_remote_control = false; - enable_audio_bell = false; - - background = base00; - foreground = base05; - - color0 = base00; # Black - color1 = base08; # Red - color2 = base0B; # Green - color3 = base0A; # Yellow - color4 = base0D; # Blue - color5 = base0E; # Magenta - color6 = base0C; # Cyan - color7 = base05; # White - - selection_background = base03; - selection_foreground = base00; - - shell = config.shell.command; - }; - }; -} diff --git a/modules/desktop/window-manager/sxhkd/default.nix b/modules/desktop/window-manager/sxhkd/default.nix index 6e5d9bb..953cfd3 100644 --- a/modules/desktop/window-manager/sxhkd/default.nix +++ b/modules/desktop/window-manager/sxhkd/default.nix @@ -34,12 +34,12 @@ ${(createKeybinding "t" "Launch terminal.")} - = config.desktop.terminal.command; + = config.tools.terminal.command; ${(createKeybinding "f" "Launch File Manager.")} - = "${config.desktop.terminal.command} --title 'File Manager' --class floating-termial -e ${config.tools.file-manager.command}"; + = "${config.tools.terminal.command} --title 'File Manager' --class floating-termial -e ${config.tools.file-manager.command}"; } ]; }; diff --git a/modules/tools/default.nix b/modules/tools/default.nix index 3916111..0180df9 100644 --- a/modules/tools/default.nix +++ b/modules/tools/default.nix @@ -6,6 +6,7 @@ ./file-manager ./git ./system-monitor + ./terminal ./utils ./viewer ]; diff --git a/modules/tools/file-manager/lf/default.nix b/modules/tools/file-manager/lf/default.nix index 983b2f2..755ccd7 100644 --- a/modules/tools/file-manager/lf/default.nix +++ b/modules/tools/file-manager/lf/default.nix @@ -22,8 +22,8 @@ #!/bin/sh unset COLORTERM ${if config.tools.viewer.bat.enable then - "bat -pp --line-range=:500 --color=always $1" -else "cat"} + "bat -pp --line-range=:500 --color=always" +else "cat"} "$1" ''; programs.lf.extraConfig = "set icons"; diff --git a/modules/tools/terminal/alacritty/default.nix b/modules/tools/terminal/alacritty/default.nix new file mode 100644 index 0000000..4bffc0b --- /dev/null +++ b/modules/tools/terminal/alacritty/default.nix @@ -0,0 +1,83 @@ +{ pkgs, config, lib, ... }: + +{ + options.tools.terminal.alacritty = { + enable = lib.mkEnableOption "Enables alacritty."; + }; + + config = lib.mkIf config.tools.terminal.alacritty.enable { + programs.alacritty.enable = true; + tools.terminal.default = lib.mkDefault "alacritty"; + tools.terminal.command = + if config.tools.terminal.default == "alacritty" then + lib.mkForce "${pkgs.kitty}/bin/alacritty" + else ""; + + programs.alacritty.settings = { + window = { + opacity = 1.0; + padding = { + x = config.desktop.window-manager.gap; + y = config.desktop.window-manager.gap; + }; + decorations = "none"; + }; + + font = { + normal = { + family = config.fonts.normal; + style = "Retina"; + }; + bold = { + family = config.fonts.bold; + style = "Bold"; + }; + italic = { + family = config.fonts.italic; + }; + size = config.fonts.size; + }; + + colors = with config.scheme; { + primary = { + background = "0x${base00}"; + foreground = "0x${base05}"; + }; + normal = { + black = "0x${base00}"; + red = "0x${base08}"; + green = "0x${base0B}"; + yellow = "0x${base0A}"; + blue = "0x${base0D}"; + magenta = "0x${base0E}"; + cyan = "0x${base0C}"; + white = "0x${base05}"; + }; + bright = { + black = "0x${base03}"; + red = "0x${base08}"; + green = "0x${base0B}"; + yellow = "0x${base0A}"; + blue = "0x${base0D}"; + magenta = "0x${base0E}"; + cyan = "0x${base0C}"; + white = "0x${base07}"; + }; + dim = { + black = "0x${base01}"; + red = "0x${base08}"; + green = "0x${base0B}"; + yellow = "0x${base0A}"; + blue = "0x${base0D}"; + magenta = "0x${base0E}"; + cyan = "0x${base0C}"; + white = "0x${base04}"; + }; + }; + + shell = { + program = config.shell.command; + }; + }; + }; +} diff --git a/modules/tools/terminal/default.nix b/modules/tools/terminal/default.nix new file mode 100644 index 0000000..b9038e0 --- /dev/null +++ b/modules/tools/terminal/default.nix @@ -0,0 +1,23 @@ +{ lib, ... }: + +{ + imports = [ + ./alacritty + ./kitty + ]; + + options.tools.terminal = { + command = lib.mkOption { + type = lib.types.str; + description = "Command for the terminal."; + }; + + default = lib.mkOption { + type = lib.types.enum [ + "kitty" + "alacritty" + ]; + description = "Default terminal."; + }; + }; +} diff --git a/modules/tools/terminal/kitty/default.nix b/modules/tools/terminal/kitty/default.nix new file mode 100644 index 0000000..5508feb --- /dev/null +++ b/modules/tools/terminal/kitty/default.nix @@ -0,0 +1,61 @@ +{ pkgs, config, lib, ... }: + +{ + options.tools.terminal.kitty = { + enable = lib.mkEnableOption "Enables kitty. WARNING! Currently faces problems with color rendering with picom."; + }; + + config = lib.mkIf config.tools.terminal.kitty.enable { + assertions = [ + { + assertion = config.desktop.xdg-portal.enable; + message ="Module tools.terminal.kitty requires desktop.xdg-portal module to be enabled."; + } + ]; + programs.kitty.enable = true; + tools.terminal.default = lib.mkDefault "kitty"; + tools.terminal.command = + if config.tools.terminal.default == "kitty" then + lib.mkForce "${pkgs.kitty}/bin/kitty" + else ""; + + programs.kitty.settings = with config.scheme.withHashtag; { + window_padding_width = config.desktop.window-manager.gap; + font_size = config.fonts.size; + font_family = config.fonts.normal; + filter_notification = "all"; + update_check_interval = 0; # disable notifications + scrollback_indicator_opacity = "0.5"; + + dynamic_background_opacity = false; + allow_remote_control = false; + enable_audio_bell = false; + + background = base00; + foreground = base05; + text_composition_strategy = "legacy"; + + color0 = base00; # Black + color8 = base00; # Black + color1 = base08; # Red + color9 = base08; # Red + color2 = base0B; # Green + color10 = base0B; # Green + color3 = base0A; # Yellow + color11 = base0A; # Yellow + color4 = base0D; # Blue + color12 = base0D; # Blue + color5 = base0E; # Magenta + color13 = base0E; # Magenta + color6 = base0C; # Cyan + color14 = base0C; # Cyan + color7 = base05; # White + color15 = base05; # White + + selection_background = base03; + selection_foreground = base00; + + shell = config.shell.command; + }; + }; +} diff --git a/modules/tools/viewer/default.nix b/modules/tools/viewer/default.nix index 7784a99..01fd204 100644 --- a/modules/tools/viewer/default.nix +++ b/modules/tools/viewer/default.nix @@ -3,5 +3,6 @@ { imports = [ ./bat + ./feh ]; } diff --git a/modules/tools/viewer/feh/default.nix b/modules/tools/viewer/feh/default.nix new file mode 100644 index 0000000..d90e8b1 --- /dev/null +++ b/modules/tools/viewer/feh/default.nix @@ -0,0 +1,11 @@ +{ config, lib, pkgs, ... }: + +{ + options.tools.viewer.feh = { + enable = lib.mkEnableOption "Enables feh."; + }; + + config = lib.mkIf config.tools.viewer.feh.enable { + programs.feh.enable = true; + }; +} -- cgit v1.2.3