Initial transfer to sway on work PC

This commit is contained in:
Erwin Boskma 2023-09-15 15:43:28 +02:00
parent 4d5c3bb3bd
commit 80ead47205
Signed by: erwin
SSH key fingerprint: SHA256:3F6Cm6I3erRqlBwEghZWAQl6eS5WrGTX1Vs/Evec1lQ
19 changed files with 296 additions and 178 deletions

View file

@ -463,22 +463,6 @@
"type": "github" "type": "github"
} }
}, },
"nomachine": {
"locked": {
"lastModified": 1682367457,
"narHash": "sha256-Hec3l+TYmE9ICUz7NxmRtfljUl6ludm8QKSdiW21WRg=",
"owner": "rytec-nl",
"repo": "nixpkgs",
"rev": "63686e66b7441ef5d5e7a6277d1c36c413548b05",
"type": "github"
},
"original": {
"owner": "rytec-nl",
"ref": "submit/add-nomachine-server",
"repo": "nixpkgs",
"type": "github"
}
},
"pamedia": { "pamedia": {
"inputs": { "inputs": {
"flake-utils": [ "flake-utils": [
@ -549,7 +533,6 @@
"nixinate": "nixinate", "nixinate": "nixinate",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nomachine": "nomachine",
"pamedia": "pamedia", "pamedia": "pamedia",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"rust-overlay": "rust-overlay_2", "rust-overlay": "rust-overlay_2",

View file

@ -78,10 +78,6 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nomachine = {
url = "github:rytec-nl/nixpkgs/submit/add-nomachine-server";
};
eww = { eww = {
url = "github:elkowar/eww"; url = "github:elkowar/eww";
inputs = { inputs = {
@ -151,12 +147,6 @@
{ {
nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; nix.nixPath = [ "nixpkgs=${nixpkgs}" ];
nixpkgs = nixpkgs =
let
nomachine-pkgs = import nomachine {
inherit system;
config.allowUnfree = true;
};
in
{ {
overlays = [ overlays = [
self.overlays.default self.overlays.default
@ -166,9 +156,6 @@
nil.overlays.default nil.overlays.default
inputs.eww.overlays.default inputs.eww.overlays.default
inputs.rust-overlay.overlays.default inputs.rust-overlay.overlays.default
(_final: _prev: {
nomachine = nomachine-pkgs.nomachine;
})
] ++ nixpkgs.lib.optional (system == "aarch64-linux") ] ++ nixpkgs.lib.optional (system == "aarch64-linux")
(_final: super: { (_final: super: {
makeModulesClosure = x: makeModulesClosure = x:

View file

@ -14,19 +14,38 @@ with lib; let
# swaylockcmd = "${pkgs.swaylock-effects}/bin/swaylock --ignore-empty-password --daemonize --show-failed-attempts --indicator-caps-lock --clock --image ${wallpapers.qhd} --fade-in 0.5 --scaling fill"; # swaylockcmd = "${pkgs.swaylock-effects}/bin/swaylock --ignore-empty-password --daemonize --show-failed-attempts --indicator-caps-lock --clock --image ${wallpapers.qhd} --fade-in 0.5 --scaling fill";
swaylockcmd = "${pkgs.swaylock}/bin/swaylock --ignore-empty-password --daemonize --show-failed-attempts --indicator-caps-lock --image ${wallpapers.qhd} --scaling fill"; swaylockcmd = "${pkgs.swaylock}/bin/swaylock --ignore-empty-password --daemonize --show-failed-attempts --indicator-caps-lock --image ${wallpapers.qhd} --scaling fill";
rofiPower = pkgs.writeShellScriptBin "rofi-power" (builtins.readFile ./powermenu.sh); rofiPower = pkgs.writeShellScriptBin "rofi-power" (builtins.readFile ./powermenu.sh);
ewwDaemon =
let
path = lib.makeBinPath (with pkgs; [ ha-now-playing jaq pamedia bash helvum pavucontrol ]);
in
pkgs.writeShellScript "eww-daemon" ''
export PATH=${path}:''${PATH}
${config.eboskma.programs.eww.package}/bin/eww kill
${config.eboskma.programs.eww.package}/bin/eww daemon
'';
in in
{ {
options.eboskma.programs.sway.enable = mkEnableOption "Enable sway"; options.eboskma.programs.sway = {
enable = mkEnableOption "Enable sway";
output = mkOption {
description = "An attribute set that defines output modules. See the sway-output(5) manpage for options";
type = types.attrsOf (types.attrsOf types.str);
default = { };
};
input = mkOption {
description = "An attribute set that defines input modules. See the sway-input(5) manpage for options";
type = types.attrsOf (types.attrsOf types.str);
default = { };
};
startup = mkOption {
description = "Commands that should be executed at startup.";
type = types.listOf (types.submodule {
options = {
command = mkOption {
type = types.str;
description = "Command that will be executed on startup.";
};
always = mkOption {
type = types.bool;
default = false;
description = "Whether to run command on each ${moduleName} restart.";
};
};
});
};
};
config = mkIf cfg.enable { config = mkIf cfg.enable {
wayland.windowManager.sway = { wayland.windowManager.sway = {
@ -36,9 +55,8 @@ in
assigns = { assigns = {
"1" = [{ app_id = "firefox"; }]; "1" = [{ app_id = "firefox"; }];
"2" = [{ app_id = "Alacritty"; } { app_id = "foot"; }]; "2" = [{ app_id = "foot"; }];
"3" = [{ class = "Code"; } { app_id = "emacs"; }]; "3" = [{ class = "Code"; } { app_id = "emacs"; }];
"9" = [{ class = "Steam"; }];
}; };
bars = [ ]; bars = [ ];
@ -106,28 +124,8 @@ in
smartBorders = "on"; smartBorders = "on";
}; };
input = { input = cfg.input;
"36125:40349:splitKB_Kyria" = { output = cfg.output;
xkb_layout = "us";
xkb_options = "lv3:ralt_switch,eurosign:5";
};
"1133:49291:Logitech_G502_HERO_SE" = {
natural_scroll = "enabled";
};
};
output = {
"Virtual-1" = {
bg = "${wallpapers.hd} fill";
mode = "1920x1080@60Hz";
};
"DP-2" = {
bg = "${./wallpapers/jwst-saturn-nircam-2560.png} fill";
mode = "2560x1440@165Hz";
adaptive_sync = "on";
max_render_time = "2";
};
};
# menu = "${pkgs.wofi}/bin/wofi --show drun -i | ${pkgs.findutils}/bin/xargs swaymsg exec --"; # menu = "${pkgs.wofi}/bin/wofi --show drun -i | ${pkgs.findutils}/bin/xargs swaymsg exec --";
menu = "${pkgs.rofi}/bin/rofi -show drun -no-lazy-grab"; menu = "${pkgs.rofi}/bin/rofi -show drun -no-lazy-grab";
@ -226,7 +224,6 @@ in
}; };
}; };
# terminal = "${pkgs.alacritty}/bin/alacritty";
terminal = "${pkgs.foot}/bin/foot"; terminal = "${pkgs.foot}/bin/foot";
window = { window = {
@ -242,10 +239,7 @@ in
}; };
}; };
startup = [ startup = cfg.startup;
{ command = toString ewwDaemon; always = true; }
{ command = "${config.eboskma.programs.eww.package}/bin/eww open bar-home"; always = true; }
];
}; };
extraConfig = '' extraConfig = ''
for_window [app_id="^.*"] inhibit_idle fullscreen for_window [app_id="^.*"] inhibit_idle fullscreen
@ -308,8 +302,8 @@ in
} }
{ {
timeout = 1200; timeout = 1200;
command = "${pkgs.sway}/bin/swaymsg 'output * dpms off'"; command = "${pkgs.sway}/bin/swaymsg 'output * power off'";
resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * dpms on'"; resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * power on'";
} }
]; ];
}; };

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

After

Width:  |  Height:  |  Size: 9.8 MiB

View file

@ -14,6 +14,25 @@ let
in in
''${pkgs.nitrogen}/bin/nitrogen --head=${monitor} --set-color=${cfg.backgroundColor} --set-tiled ${image}'') ''${pkgs.nitrogen}/bin/nitrogen --head=${monitor} --set-color=${cfg.backgroundColor} --set-tiled ${image}'')
(zipLists cfg.images (builtins.genList (x: x) (builtins.length cfg.images))))); (zipLists cfg.images (builtins.genList (x: x) (builtins.length cfg.images)))));
wallpaperConfig = {
options = {
name = mkOption {
description = "The base filename of the image, without size and extension.";
type = types.str;
};
sizes = mkOption {
description = "The sizes this wallpaper comes in, as specified in the filename.";
type = with types; listOf int;
};
extension = mkOption {
description = "The extension of the wallpaper";
type = types.enum [ "jpg" "png" "gif" ];
};
};
};
in in
{ {
options.eboskma.wallpapers = { options.eboskma.wallpapers = {
@ -25,8 +44,8 @@ in
example = "#ff0000"; example = "#ff0000";
}; };
images = mkOption { images = mkOption {
description = "Image(s) to use as wallpapers. For multiple monitors, either set a single image to use on all monitors, or set a list with as many images as monitors you have"; description = "Images to make available as wallpaper. The files should be named as `<name>-<size>.<ext>` and be placed in the `wallpapers` subdirectory";
type = with types; oneOf [ path (nonEmptyListOf path) ]; type = with types; listOf (submodule wallpaperConfig);
}; };
}; };
@ -39,7 +58,5 @@ in
notification = false; notification = false;
} }
]; ];
}; };
} }

View file

@ -359,10 +359,15 @@
statdPort = 4100; statdPort = 4100;
}; };
environment.systemPackages = with pkgs; [ environment = {
appimage-run sessionVariables = {
tailscale AMD_VULKAN_ICD = "RADV";
]; };
systemPackages = with pkgs; [
appimage-run
tailscale
];
};
sops.defaultSopsFile = ./secrets.yaml; sops.defaultSopsFile = ./secrets.yaml;
sops.secrets = { sops.secrets = {

View file

@ -2,7 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ nixos-hardware, nomachine, microvm, ... }: { nixos-hardware, microvm, ... }:
{ pkgs, config, ... }: { pkgs, config, ... }:
{ {
imports = imports =
@ -11,7 +11,7 @@
nixos-hardware.nixosModules.common-cpu-amd nixos-hardware.nixosModules.common-cpu-amd
nixos-hardware.nixosModules.common-cpu-amd-pstate nixos-hardware.nixosModules.common-cpu-amd-pstate
nixos-hardware.nixosModules.common-pc-ssd nixos-hardware.nixosModules.common-pc-ssd
"${nomachine}/nixos/modules/services/admin/nomachine.nix" # "${nomachine}/nixos/modules/services/admin/nomachine.nix"
microvm.nixosModules.host microvm.nixosModules.host
@ -38,6 +38,7 @@
desktop = { desktop = {
enable = true; enable = true;
wayland = true;
}; };
docker = { docker = {
enable = true; enable = true;
@ -46,13 +47,18 @@
}; };
fonts.enable = true; fonts.enable = true;
gnome.enable = true; gnome.enable = true;
greetd = {
enable = true;
sway = true;
wayvnc = true;
};
kanata = { kanata = {
enable = true; enable = true;
devices = [ devices = [
"/dev/input/by-id/usb-04d9_USB-HID_Keyboard-event-kbd" "/dev/input/by-id/usb-04d9_USB-HID_Keyboard-event-kbd"
]; ];
}; };
lightdm.enable = true; lightdm.enable = false;
networking.enable = true; networking.enable = true;
nix-common = { nix-common = {
enable = true; enable = true;
@ -93,7 +99,7 @@
nvidia = { nvidia = {
modesetting.enable = true; modesetting.enable = true;
powerManagement.enable = true; powerManagement.enable = true;
forceFullCompositionPipeline = true; # forceFullCompositionPipeline = true;
}; };
opengl = { opengl = {
@ -122,11 +128,16 @@
}; };
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
# This triggers a warning on stateVersions < 23.11 if set to true
swraid.enable = false;
}; };
time.timeZone = "Europe/Amsterdam"; time.timeZone = "Europe/Amsterdam";
console.useXkbConfig = true; console = {
font = "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz";
useXkbConfig = true;
};
networking = { networking = {
hostName = "mimir"; hostName = "mimir";
@ -239,6 +250,9 @@
}; };
# programs.ssh.startAgent = true; # programs.ssh.startAgent = true;
programs = {
gnome-disks.enable = true;
};
services = { services = {
openssh.enable = true; openssh.enable = true;
@ -249,6 +263,16 @@
tailscale.enable = true; tailscale.enable = true;
udisks2 = {
enable = true;
};
udev = {
extraRules = ''
ACTION=="add", ATTRS{idVendor}=="0781", ATTRS{idProduct}=="55b1", ATTRS{serial}=="A20033BEAC21B773", NAME="vault"
'';
};
xserver = { xserver = {
videoDrivers = [ "nvidia" ]; videoDrivers = [ "nvidia" ];
@ -270,11 +294,6 @@
}; };
}; };
nxserver = {
enable = true;
openFirewall = true;
};
icecream.daemon = { icecream.daemon = {
enable = true; enable = true;
@ -285,9 +304,15 @@
}; };
}; };
environment.systemPackages = with pkgs; [ environment = {
appimage-run systemPackages = with pkgs; [
]; appimage-run
];
sessionVariables = {
WLR_NO_HARDWARE_CURSORS = "1";
};
};
# sops = { # sops = {
# defaultSopsFile = ./secrets.yaml; # defaultSopsFile = ./secrets.yaml;

View file

@ -88,7 +88,6 @@ in
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
QT_QPA_PLATFORMTHEME = "qt5ct"; QT_QPA_PLATFORMTHEME = "qt5ct";
SDL_VIDEODRIVER = "wayland"; SDL_VIDEODRIVER = "wayland";
AMD_VULKAN_ICD = "RADV";
NIXOS_OZONE_WL = "1"; NIXOS_OZONE_WL = "1";
}) })
]; ];

View file

@ -8,11 +8,15 @@ with lib; let
style = builtins.replaceStrings [ "{WALLPAPER}" ] [ (builtins.toString ../../home-manager/modules/sway/wallpapers/river-2560.png) ] (builtins.readFile ./greetd.css); style = builtins.replaceStrings [ "{WALLPAPER}" ] [ (builtins.toString ../../home-manager/modules/sway/wallpapers/river-2560.png) ] (builtins.readFile ./greetd.css);
swaySession = pkgs.writeShellScript "sway-session" ''
${pkgs.sway}/bin/sway --unsupported-gpu
'';
in in
{ {
options.eboskma.greetd = { options.eboskma.greetd = {
enable = mkEnableOption "enable greetd"; enable = mkEnableOption "enable greetd";
sway = mkEnableOption "sway"; sway = mkEnableOption "sway";
wayvnc = mkEnableOption "wayvnc";
}; };
config = config =
@ -53,59 +57,61 @@ in
security.pam.services.greetd.u2fAuth = false; security.pam.services.greetd.u2fAuth = false;
environment.systemPackages = with pkgs; [ pantheon.elementary-gtk-theme pantheon.elementary-icon-theme ];
# exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -s /etc/greetd/gtkgreet.css; swaymsg exit" # exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -s /etc/greetd/gtkgreet.css; swaymsg exit"
environment.etc = { networking.firewall.allowedTCPPorts = lib.mkIf cfg.wayvnc [ 5900 ];
"greetd/sway-config" = {
text = '' environment = {
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet. systemPackages = with pkgs; [ pantheon.elementary-gtk-theme pantheon.elementary-icon-theme ];
exec "${pkgs.greetd.regreet}/bin/regreet; swaymsg exit" etc = {
# bindsym Mod4+shift+f exec swaynag \ "greetd/sway-config" = {
# -t warning \ text = lib.concatStringsSep "\n"
# -m 'What do you want to do?' \ ((lib.optional cfg.wayvnc "exec ${pkgs.wayvnc}/bin/wayvnc -g 0.0.0.0") ++
# -b 'Poweroff' 'systemctl poweroff' \ [
# -b 'Reboot' 'systemctl reboot' ''
include /etc/sway/config.d/* exec "${pkgs.greetd.regreet}/bin/regreet; swaymsg exit"
''; include /etc/sway/config.d/*
user = "greeter"; ''
group = "greeter"; ]);
}; user = "greeter";
"greetd/environments" = { group = "greeter";
text = concatStringsSep "\n" ((optional cfg.sway "${pkgs.sway}/bin/sway") };
++ [ "${pkgs.bash}/bin/bash" ]); "greetd/environments" = {
user = "greeter"; text = concatStringsSep "\n" ((optional cfg.sway "${swaySession}")
group = "greeter"; ++ [ "${pkgs.bash}/bin/bash" ]);
}; user = "greeter";
"greetd/gtkgreet.css" = { group = "greeter";
text = style; };
user = "greeter"; "greetd/gtkgreet.css" = {
group = "greeter"; text = style;
}; user = "greeter";
"sway/config.d/systemd-env.conf" = { group = "greeter";
text = '' };
exec_always --no-startup-id systemctl --user import-environment _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK "sway/config.d/systemd-env.conf" = {
exec_always --no-startup-id dbus-update-activation-environment --systemd _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK text = ''
''; exec_always --no-startup-id systemctl --user import-environment _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK
}; exec_always --no-startup-id dbus-update-activation-environment --systemd _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK
"xdg/gtk-3.0/settings.ini" = { '';
text = generators.toINI { } { };
Settings = { "xdg/gtk-3.0/settings.ini" = {
gtk-theme-name = "elementary"; text = generators.toINI { } {
gtk-icon-theme-name = "elementary"; Settings = {
gtk-cursor-theme-name = "elementary"; gtk-theme-name = "elementary";
gtk-application-prefer-dark-theme = "true"; gtk-icon-theme-name = "elementary";
gtk-cursor-theme-name = "elementary";
gtk-application-prefer-dark-theme = "true";
};
}; };
}; };
}; "xdg/gtk-4.0/settings.ini" = {
"xdg/gtk-4.0/settings.ini" = { text = generators.toINI { } {
text = generators.toINI { } { Settings = {
Settings = { gtk-theme-name = "elementary";
gtk-theme-name = "elementary"; gtk-icon-theme-name = "elementary";
gtk-icon-theme-name = "elementary"; gtk-cursor-theme-name = "elementary";
gtk-cursor-theme-name = "elementary"; gtk-application-prefer-dark-theme = "true";
gtk-application-prefer-dark-theme = "true"; };
}; };
}; };
}; };

View file

@ -2,12 +2,12 @@
with pkgs; with pkgs;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "rofi-wayland-unwrapped"; pname = "rofi-wayland-unwrapped";
version = "1.7.5"; version = "1.7.5+wayland2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lbonn"; owner = "lbonn";
repo = "rofi"; repo = "rofi";
rev = "${version}+wayland1"; rev = version;
fetchSubmodules = true; fetchSubmodules = true;
sha256 = "ddKLV7NvqgTQl5YlAEyBK0oalcJsLASK4z3qArQPUDQ="; sha256 = "ddKLV7NvqgTQl5YlAEyBK0oalcJsLASK4z3qArQPUDQ=";
}; };

View file

@ -2,6 +2,16 @@
with lib; let with lib; let
cfg = config.eboskma.users.erwin; cfg = config.eboskma.users.erwin;
bt = config.eboskma.bluetooth; bt = config.eboskma.bluetooth;
ewwDaemon =
let
path = lib.makeBinPath (with pkgs; [ ha-now-playing jaq pamedia bash helvum pavucontrol ]);
in
pkgs.writeShellScript "eww-daemon" ''
export PATH=${path}:''${PATH}
${config.home-manager.users.erwin.eboskma.programs.eww.package}/bin/eww $@
'';
in in
{ {
config = config =
@ -89,7 +99,29 @@ in
solvespace.enable = true; solvespace.enable = true;
ssh.enable = true; ssh.enable = true;
starship.enable = true; starship.enable = true;
sway.enable = true; sway = {
enable = true;
output = {
"DP-2" = {
# bg = "${./wallpapers/jwst-saturn-nircam-2560.png} fill";
mode = "2560x1440@165Hz";
adaptive_sync = "on";
max_render_time = "2";
};
};
input = {
"36125:40349:splitKB_Kyria" = {
xkb_layout = "us";
xkb_options = "lv3:ralt_switch,eurosign:5";
};
"1133:49291:Logitech_G502_HERO_SE" = {
natural_scroll = "enabled";
};
};
startup = [
{ command = "${ewwDaemon} --restart open bar-home"; always = true; }
];
};
swaynotificationcenter.enable = true; swaynotificationcenter.enable = true;
tea = { tea = {
enable = true; enable = true;

View file

@ -3,21 +3,30 @@ with lib;
let let
cfg = config.eboskma.users.erwin; cfg = config.eboskma.users.erwin;
remoteSessionScript = pkgs.writeShellScriptBin "remote-session" '' # remoteSessionScript = pkgs.writeShellScriptBin "remote-session" ''
${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --mode 2560x1440 # ${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --mode 2560x1440
${pkgs.xorg.xrandr}/bin/xrandr --output DP-4 --mode 2560x1440 --right-of DP-0 # ${pkgs.xorg.xrandr}/bin/xrandr --output DP-4 --mode 2560x1440 --right-of DP-0
${pkgs.nitrogen}/bin/nitrogen --head=0 --set-auto ${toString ./wallpapers/jwst-carina-cosmic-cliffs-nircam-2560.png} # ${pkgs.nitrogen}/bin/nitrogen --head=0 --set-auto ${toString ./wallpapers/jwst-carina-cosmic-cliffs-nircam-2560.png}
${pkgs.nitrogen}/bin/nitrogen --head=1 --set-auto ${toString ./wallpapers/jwst-southern-ring-nircam-miri-side-by-side-2560.png} # ${pkgs.nitrogen}/bin/nitrogen --head=1 --set-auto ${toString ./wallpapers/jwst-southern-ring-nircam-miri-side-by-side-2560.png}
systemctl --user restart polybar # systemctl --user restart polybar
''; # '';
localSessionScript = pkgs.writeShellScriptBin "local-session" '' # localSessionScript = pkgs.writeShellScriptBin "local-session" ''
${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --mode 3840x2160 # ${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --mode 3840x2160
${pkgs.xorg.xrandr}/bin/xrandr --output DP-4 --mode 3840x2160 --right-of DP-0 # ${pkgs.xorg.xrandr}/bin/xrandr --output DP-4 --mode 3840x2160 --right-of DP-0
${pkgs.nitrogen}/bin/nitrogen --head=0 --set-auto ${toString ./wallpapers/jwst-carina-cosmic-cliffs-nircam-3840.png} # ${pkgs.nitrogen}/bin/nitrogen --head=0 --set-auto ${toString ./wallpapers/jwst-carina-cosmic-cliffs-nircam-3840.png}
${pkgs.nitrogen}/bin/nitrogen --head=1 --set-auto ${toString ./wallpapers/jwst-southern-ring-nircam-miri-side-by-side-3840.png} # ${pkgs.nitrogen}/bin/nitrogen --head=1 --set-auto ${toString ./wallpapers/jwst-southern-ring-nircam-miri-side-by-side-3840.png}
systemctl --user restart polybar # systemctl --user restart polybar
''; # '';
ewwDaemon =
let
path = lib.makeBinPath (with pkgs; [ jaq pamedia bash helvum pavucontrol ]);
in
pkgs.writeShellScript "eww-daemon" ''
export PATH=${path}:''${PATH}
${config.home-manager.users.erwin.eboskma.programs.eww.package}/bin/eww $@
'';
in in
{ {
config = mkIf cfg.work { config = mkIf cfg.work {
@ -27,7 +36,7 @@ in
eboskma = { eboskma = {
var.workSystem = true; var.workSystem = true;
programs = { programs = {
alacritty.enable = true; alacritty.enable = false;
atuin.enable = true; atuin.enable = true;
bat.enable = true; bat.enable = true;
cargo = { cargo = {
@ -39,10 +48,10 @@ in
}; };
}; };
dropbox.enable = true; dropbox.enable = true;
dunst.enable = true; dunst.enable = false;
emacs = { emacs = {
enable = true; enable = true;
package = pkgs.emacs-unstable; package = pkgs.emacs-unstable-pgtk;
# .override { # .override {
# treeSitterPlugins = builtins.attrValues (filterAttrs (_: isDerivation) pkgs.tree-sitter-grammars); # treeSitterPlugins = builtins.attrValues (filterAttrs (_: isDerivation) pkgs.tree-sitter-grammars);
# }; # };
@ -50,12 +59,17 @@ in
}; };
eww = { eww = {
enable = true; enable = true;
package = pkgs.eww-wayland;
}; };
firefox = { firefox = {
enable = true; enable = true;
work = true; work = true;
}; };
fish.enable = true; fish.enable = true;
foot = {
enable = true;
server = false;
};
git = { git = {
enable = true; enable = true;
name = "Erwin Boskma"; name = "Erwin Boskma";
@ -65,7 +79,7 @@ in
}; };
gpg.enable = true; gpg.enable = true;
i3 = { i3 = {
enable = true; enable = false;
startupCommands = [ startupCommands = [
{ {
command = "${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --primary --left-of DP-4"; command = "${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --primary --left-of DP-4";
@ -82,10 +96,10 @@ in
]; ];
}; };
mpd.enable = true; mpd.enable = true;
nushell.enable = true;
picom.enable = true;
polybar.enable = true;
neovim.enable = true; neovim.enable = true;
nushell.enable = true;
picom.enable = false;
polybar.enable = false;
rclone = { rclone = {
enable = true; enable = true;
mounts = [ mounts = [
@ -103,25 +117,76 @@ in
}; };
rofi = { rofi = {
enable = true; enable = true;
terminal = config.home-manager.users.erwin.xsession.windowManager.i3.config.terminal; package = pkgs.rofi-wayland;
terminal = config.home-manager.users.erwin.wayland.windowManager.sway.config.terminal;
}; };
ssh.enable = true; ssh.enable = true;
starship.enable = true; starship.enable = true;
zellij = { sway = {
enable = true; enable = true;
copyCommand = "${pkgs.xsel}/bin/xsel --clipboard"; output = {
"DP-0" = {
# bg = "${./wallpapers/jwst-saturn-nircam-2560.png} fill";
mode = "3840x2160@60Hz";
position = "0 0";
};
"DP-4" = {
mode = "3840x2160@60Hz";
position = "3840 0";
};
};
input = {
"1241:662:USB-HID_Keyboard" = {
xkb_layout = "us";
xkb_options = "lv3:ralt_switch,eurosign:5";
};
"1133:49257:Logitech_USB_Laser_Mouse" = {
natural_scroll = "enabled";
pointer_accel = "1";
};
};
startup = [
{ command = "${ewwDaemon} --restart open bar-work"; always = true; }
{ command = "${pkgs.wayvnc}/bin/wayvnc -g 0.0.0.0"; }
];
};
swaynotificationcenter.enable = true;
zellij = {
enable = false;
copyCommand = "${pkgs.wl-clipboard}/bin/wl-copy";
}; };
}; };
services = { services = {
xbanish.enable = true; xbanish.enable = false;
}; };
}; };
programs.home-manager.enable = true; programs = {
programs.command-not-found.enable = true; home-manager.enable = true;
command-not-found.enable = true;
};
services = {
gnome-keyring = {
enable = true;
components = [ "pkcs11" "ssh" "secrets" ];
};
udiskie = {
enable = true;
tray = "auto";
notify = true;
settings = {
program_options = {
menu = "nested";
};
device_config = [
{
device_file = "/dev/loop*";
ignore = true;
}
];
};
};
services.gnome-keyring = {
enable = true;
components = [ "pkcs11" "ssh" "secrets" ];
}; };
home = { home = {
@ -172,8 +237,8 @@ in
zathura zathura
zeal zeal
localSessionScript # localSessionScript
remoteSessionScript # remoteSessionScript
] ]
++ (with gst_all_1; [ gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]); ++ (with gst_all_1; [ gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]);
@ -255,6 +320,11 @@ in
}; };
}; };
i18n.inputMethod = {
enabled = "fcitx5";
fcitx5.addons = with pkgs; [ fcitx5-m17n fcitx5-gtk fcitx5-configtool ];
};
imports = [ imports = [
../../modules/options ../../modules/options
] ++ (map (mod: (../../home-manager/modules + "/${mod}")) (builtins.attrNames (builtins.readDir ../../home-manager/modules))); ] ++ (map (mod: (../../home-manager/modules + "/${mod}")) (builtins.attrNames (builtins.readDir ../../home-manager/modules)));
@ -277,7 +347,7 @@ in
exportConfiguration = true; exportConfiguration = true;
windowManager.i3 = { windowManager.i3 = {
enable = true; enable = false;
package = pkgs.i3-gaps; package = pkgs.i3-gaps;
extraPackages = with pkgs; [ i3lock-color ]; extraPackages = with pkgs; [ i3lock-color ];
}; };