diff --git a/flakes/common/hm_modules/alacritty.nix b/flakes/common/hm_modules/alacritty.nix index 0794c15..02cb9d6 100644 --- a/flakes/common/hm_modules/alacritty.nix +++ b/flakes/common/hm_modules/alacritty.nix @@ -6,6 +6,7 @@ window = { decorations = "None"; dynamic_title = false; + opacity = 0.94; }; colors = { primary = { diff --git a/flakes/common/hm_modules/de_i3/i3.nix b/flakes/common/hm_modules/de_i3/i3.nix index 23d8d9f..9355719 100644 --- a/flakes/common/hm_modules/de_i3/i3.nix +++ b/flakes/common/hm_modules/de_i3/i3.nix @@ -25,7 +25,7 @@ }; keybindings = { - "${modifier}+return" = "exec ${terminal}"; + "${modifier}+Return" = "exec ${terminal}"; "${modifier}+space" = "exec pkill rofi || rofi -show drun"; "${modifier}+q" = "kill"; "${modifier}+shift+Escape" = "exit"; @@ -73,19 +73,19 @@ "${modifier}+shift+9" = "move container to workspace number 9"; "${modifier}+shift+0" = "move container to workspace number 10"; - "${modifier}+left" = "resize shrink width 10 px or 10 ppt"; - "${modifier}+down" = "resize shrink height 10 px or 10 ppt"; - "${modifier}+up" = "resize grow height 10 px or 10 ppt"; - "${modifier}+right" = "resize grow width 10 px or 10 ppt"; + "${modifier}+Left" = "resize shrink width 10 px or 10 ppt"; + "${modifier}+Down" = "resize shrink height 10 px or 10 ppt"; + "${modifier}+Up" = "resize grow height 10 px or 10 ppt"; + "${modifier}+Right" = "resize grow width 10 px or 10 ppt"; "Print" = "exec sh -c 'maim -s | xclip -selection clipboard -t image/png'"; }; bars = [ - { - position = "top"; - statusCommand = "${pkgs.i3status}/bin/i3status"; - } + # { + # position = "top"; + # statusCommand = "${pkgs.i3status}/bin/i3status"; + # } ]; startup = [ ]; diff --git a/flakes/common/hm_modules/kitty.nix b/flakes/common/hm_modules/kitty.nix index 236c6ef..b40f6bc 100644 --- a/flakes/common/hm_modules/kitty.nix +++ b/flakes/common/hm_modules/kitty.nix @@ -6,7 +6,7 @@ settings = { # Window settings - background_opacity = 1.0; + background_opacity = 0.9; os_window_class = "kitty"; remember_window_size = false; placement_strategy = "center"; diff --git a/flakes/common/nix_modules/de_i3.nix b/flakes/common/nix_modules/de_i3.nix index 6c91690..f93f778 100644 --- a/flakes/common/nix_modules/de_i3.nix +++ b/flakes/common/nix_modules/de_i3.nix @@ -5,6 +5,19 @@ ... }: { + # Caps Lock as Escape for console/tty and Wayland + console.useXkbConfig = true; + services.xserver.xkb = { + layout = "us"; + options = "caps:escape"; + }; + + xdg.portal = { + enable = true; + extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + config.common.default = [ "gtk" ]; + }; + services.xserver = { enable = true; # displayManager.startx.enable = true; @@ -15,36 +28,43 @@ dmenu i3status i3lock + maim + xclip ]; }; desktopManager = { - xterm.enable = true; - xfce = { - enable = true; - noDesktop = true; - enableXfwm = false; - }; + # xterm.enable = false; + # xfce = { + # enable = true; + # noDesktop = true; + # enableXfwm = false; + # }; }; displayManager = { - # lightdm.enable = true; - defaultSession = "xfce+i3"; + lightdm.enable = true; + defaultSession = "none+i3"; + # defaultSession = "xfce+i3"; }; }; - services.greetd = { - enable = true; - vt = 2; - settings = { - default_session = { - command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --remember-session --cmd '${pkgs.dbus}/bin/dbus-run-session ${pkgs.xorg.xinit}/bin/startx ${pkgs.xfce.xfce4-session}/bin/startxfce4 -- ${pkgs.xorg.xorgserver}/bin/X -keeptty -quiet vt${toString config.services.greetd.vt}'"; - user = "greeter"; - }; - }; - }; + hardware.graphics.enable = true; - xdg.portal = { - enable = true; - extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; - config.common.default = [ "gtk" ]; - }; + environment.systemPackages = with pkgs; [ + # xfce.xfce4-panel + # xfce.xfce4-session + # xfce.xfce4-settings + # xfce.xfce4-power-manager + # xfce.xfce4-pulseaudio-plugin + # xfce.xfce4-screenshooter + # xfce.xfce4-clipman-plugin + # xfce.xfce4-sensors-plugin + # xfce.xfce4-notifyd + pavucontrol + ]; + + # Applets/services for tray widgets + programs.nm-applet.enable = true; + services.blueman.enable = true; + services.upower.enable = true; + # xfce4-notifyd is provided as a package; XFCE runs it automatically } diff --git a/flakes/common/nix_modules/de_sway.nix b/flakes/common/nix_modules/de_sway.nix index 02eea3f..a9e9fe9 100644 --- a/flakes/common/nix_modules/de_sway.nix +++ b/flakes/common/nix_modules/de_sway.nix @@ -6,6 +6,25 @@ }: { + # Caps Lock as Escape for console/tty and Wayland + console.useXkbConfig = true; + services.xserver.xkb = { + layout = "us"; + options = "caps:escape"; + }; + + xdg.portal = { + enable = true; + extraPortals = lib.mkForce [ + pkgs.xdg-desktop-portal-wlr + pkgs.xdg-desktop-portal-gtk + ]; + config.common.default = [ + "wlr" + "gtk" + ]; + }; + services.greetd = { enable = true; vt = 2; @@ -17,13 +36,6 @@ }; }; - # Caps Lock as Escape for console/tty and Wayland - console.useXkbConfig = true; - services.xserver.xkb = { - layout = "us"; - options = "caps:escape"; - }; - # Core packages and tools environment.systemPackages = with pkgs; [ wl-clipboard @@ -55,18 +67,6 @@ ]; }; - xdg.portal = { - enable = true; - extraPortals = lib.mkForce [ - pkgs.xdg-desktop-portal-wlr - pkgs.xdg-desktop-portal-gtk - ]; - config.common.default = [ - "wlr" - "gtk" - ]; - }; - # Enable PipeWire + WirePlumber so xdg-desktop-portal can do screencast services.pipewire = { enable = true; diff --git a/hosts/lio/flake.nix b/hosts/lio/flake.nix index 84f871c..69d8c92 100644 --- a/hosts/lio/flake.nix +++ b/hosts/lio/flake.nix @@ -55,8 +55,8 @@ common.nixosModules.git common.nixosModules.tmux common.nixosModules.boot_systemd - common.nixosModules.de_sway - # common.nixosModules.de_i3 + # common.nixosModules.de_sway + common.nixosModules.de_i3 common.nixosModules.hardening common.nixosModules.jetbrains_font common.nixosModules.nix_options @@ -73,8 +73,8 @@ (import ./containers.nix { inherit inputs; }) # ./jails_text.nix # ./hyprland_customizations.nix - ./sway_customizations.nix - # ./i3_customizations.nix + # ./sway_customizations.nix + ./i3_customizations.nix ./opencode-shim.nix ( { @@ -97,14 +97,15 @@ }) (lib.filterAttrs (name: user: user.isNormalUser or false) users.users); sharedModules = [ - common.homeManagerModules.de_sway - # common.homeManagerModules.de_i3 + # common.homeManagerModules.de_sway + common.homeManagerModules.de_i3 common.homeManagerModules.tmux common.homeManagerModules.atuin common.homeManagerModules.direnv common.homeManagerModules.foot common.homeManagerModules.git common.homeManagerModules.kitty + common.homeManagerModules.launcher_rofi common.homeManagerModules.postgres_cli_options common.homeManagerModules.slicer common.homeManagerModules.ssh diff --git a/hosts/lio/i3_customizations.nix b/hosts/lio/i3_customizations.nix index 259f46c..b65a528 100644 --- a/hosts/lio/i3_customizations.nix +++ b/hosts/lio/i3_customizations.nix @@ -14,17 +14,14 @@ let ''; bg1 = ../_shared_assets/wallpapers/pixel_neon.png; bg2 = ../_shared_assets/wallpapers/pixel_neon_v.png; - xrSetup = '' - xrandr --output DP-1 --mode 3840x2160 --rate 97.983 --pos 0x0 --primary - xrandr --output DP-2 --mode 3440x1440 --rate 99.982 --rotate left --left-of DP-1 - ''; - fehCmd = "feh --bg-fill ${bg1} ${bg2}"; - startupCmd = "sh -c 'sleep 0.05; i3-msg workspace number 7; sleep 0.05; i3-msg workspace number 1'"; + xrSetup = "xrandr --output DP-1 --mode 3840x2160 --rate 97.983 --pos 0x0 --primary; xrandr --output DP-2 --mode 3440x1440 --rate 99.982 --rotate left --left-of DP-1"; + xwallpaperCmd = "xwallpaper --output DP-1 --zoom ${bg1} --output DP-2 --zoom ${bg2}"; + startupCmd = "sh -c 'sleep 0.2; i3-msg workspace number 7; sleep 0.2; i3-msg workspace number 1'"; i3ExtraOptions = { startup = [ - { command = "exec --no-startup-id ${fehCmd}"; } - { command = "exec --no-startup-id ${xrSetup}"; } - { command = "exec --no-startup-id ${startupCmd}"; } + { command = "${xrSetup}"; } + { command = "sh -c 'sleep 0.5; ${xwallpaperCmd}'"; } + { command = "${startupCmd}"; } ]; }; in @@ -33,11 +30,22 @@ in config = { home-manager.sharedModules = [ ( - { ... }: - { - # xsession.windowManager.i3.config = i3ExtraOptions; - # xsession.windowManager.i3.extraConfig = assignLines; - } + { lib, pkgs, ... }: + let + inherit (lib) mkAfter; + in + { + xsession.windowManager.i3.config.bars = lib.mkForce []; + xsession.windowManager.i3.config.startup = mkAfter (i3ExtraOptions.startup ++ [ + { command = "nm-applet"; } + { command = "blueman-applet"; } + { command = "xfce4-power-manager"; } + { command = "sh -c 'pgrep -x xfsettingsd >/dev/null || xfsettingsd'"; } + { command = "sh -c 'pgrep -x xfce4-panel >/dev/null || (sleep 0.5; xfce4-panel --disable-wm-check)'"; } + ]); + xsession.windowManager.i3.extraConfig = mkAfter assignLines; + home.packages = [ pkgs.xwallpaper pkgs.xorg.xrandr ]; + } ) ]; };