fixup sway and add mimeapps

This commit is contained in:
tristan 2024-01-08 02:12:09 +00:00
parent 879489efcb
commit 829c8d9392
9 changed files with 71 additions and 33 deletions

View file

@ -48,6 +48,7 @@
vm-sway = vm-sway =
builtins.trace '' builtins.trace ''
I haven't finished configuring sway yet. I haven't finished configuring sway yet.
use alt+enter to start a terminal. use alt+enter to start a terminal.
use alt+d to launch applications use alt+d to launch applications

View file

@ -9,9 +9,6 @@ in {
home-manager.users.${user}.imports = [ home-manager.users.${user}.imports = [
{ {
home.stateVersion = "24.05"; home.stateVersion = "24.05";
# so it won't conflict with the host
windowManager.modifierKey = "ALT";
} }
]; ];

View file

@ -33,6 +33,7 @@
home.homeDirectory = "/home/${config.home.username}"; home.homeDirectory = "/home/${config.home.username}";
xdg.userDirs.enable = true; xdg.userDirs.enable = true;
xdg.mimeApps.enable = true;
manual.html.enable = true; manual.html.enable = true;

View file

@ -5,6 +5,7 @@
... ...
}: let }: let
term = config.programs.terminal; term = config.programs.terminal;
termcmd = "${ config.programs.terminal }/bin/${config.programs.terminal.pname}";
in { in {
options.programs = { options.programs = {
terminal = lib.mkPackageOption pkgs "foot" { terminal = lib.mkPackageOption pkgs "foot" {
@ -19,5 +20,6 @@ in {
}; };
home.packages = [term]; home.packages = [term];
home.sessionVariables.TERMINAL = termcmd;
}; };
} }

View file

@ -1,4 +1,9 @@
{ {
home.sessionVariables.BROWSER = "qutebrowser";
xdg.mimeApps.defaultApplications = {
"application/xhtml+xml" = "org.qutebrowser.qutebrowser.desktop";
"text/html" = "org.qutebrowser.qutebrowser.desktop";
};
programs.qutebrowser = { programs.qutebrowser = {
enable = true; enable = true;
searchEngines = { searchEngines = {

View file

@ -5,6 +5,7 @@
... ...
}: let }: let
modifier = config.windowManager.modifierKey; modifier = config.windowManager.modifierKey;
in { in {
imports = [ imports = [
(import ./swaylock.nix) (import ./swaylock.nix)
@ -171,6 +172,14 @@ in {
bind = ${modifier}, R, submap,reset bind = ${modifier}, R, submap,reset
bind = CONTROL, C, submap,reset bind = CONTROL, C, submap,reset
submap = reset submap = reset
bind = ${modifier}_CONTROL, V, submap, passthrough
submap = passthrough
bind = ${modifier}_CONTROL, V, submap, reset
bind = SUPER, escape, submap, reset
submap = reset
''; '';
}; };

View file

@ -64,10 +64,12 @@ in {
echo "$items" | ${my-deps.menu} | xargs -I_ rbw get --field username _ \ echo "$items" | ${my-deps.menu} | xargs -I_ rbw get --field username _ \
| awk '{print $2}' | wl-copy | awk '{print $2}' | wl-copy
''; '';
hotkeys = [{ hotkeys = [
modifier = "${modifier}_CONTROL"; {
key = "P"; modifier = "${modifier}_CONTROL";
}]; key = "P";
}
];
install = false; install = false;
} }
{ {

View file

@ -1,4 +1,17 @@
{pkgs, ...}: { {
pkgs,
config,
...
}: let
term = "${ config.programs.terminal }/bin/${config.programs.terminal.pname}";
modKeyName = config.windowManager.modifierKey;
modifier =
if modKeyName == "SUPER"
then "Mod4"
else if modKeyName == "ALT"
then "Mod1"
else null;
in {
imports = [ imports = [
(import ./swaylock.nix) (import ./swaylock.nix)
(import ./swayidle.nix) (import ./swayidle.nix)
@ -12,6 +25,10 @@
wayland.windowManager.sway = { wayland.windowManager.sway = {
enable = true; enable = true;
config = {
inherit modifier;
bars = [];
};
}; };
services.swayidle = { services.swayidle = {

View file

@ -8,8 +8,28 @@ with lib; let
user = config.user; user = config.user;
cfg = config.displays; cfg = config.displays;
renderDisplaysForHyprland = displays: (map displayHyprlandSetting (builtins.filter (d: d.enable) displays)); renderDisplaysForHyprland = displays: (map displayHyprlandSetting (builtins.filter (d: d.enable) displays));
swaybgJob = displays: {
Unit = {
Description = "SwayBG";
};
Service = {
ExecStart =
"${pkgs.swaybg}/bin/swaybg "
+ builtins.concatStringsSep " " (map swaybgCmd displays);
};
Install = {
WantedBy = ["graphical-session.target"];
};
};
swaybgCmd = display:
if (display.enable && display ? wallpaper && display.wallpaper != null)
then "-o ${display.name} -i ${display.wallpaper} -m fill"
else "";
displayHyprlandSetting = display: displayHyprlandSetting = display:
specificDisplay display specificDisplay display
+ ", " + ", "
@ -22,25 +42,6 @@ with lib; let
+ "transform," + "transform,"
+ toString display.rotation; + toString display.rotation;
swaybgJob = displays: {
Unit = {
Description = "SwayBG";
};
Service = {
ExecStart =
"${pkgs.swaybg}/bin/swaybg "
+ concatStringsSep " " (map swaybgCmd displays);
};
Install = {
WantedBy = ["graphical-session.target"];
};
};
swaybgCmd = display:
if (display.wallpaper != "")
then "-o ${display.name} -i ${display.wallpaper} -m fill"
else "";
specificDisplay = display: specificDisplay = display:
if display.description == "" if display.description == ""
then display.name then display.name
@ -55,7 +56,7 @@ with lib; let
else toString x + "x" + toString y; else toString x + "x" + toString y;
renderDisplaysForSway = displays: renderDisplaysForSway = displays:
listToAttrs (map displaySwaySetting displays); listToAttrs (map displaySwaySetting (builtins.filter (d: d.enable) displays));
displaySwaySetting = display: { displaySwaySetting = display: {
name = display.name; name = display.name;
@ -65,9 +66,12 @@ with lib; let
mode = mode =
mkIf (!resUnset res) mkIf (!resUnset res)
"${toString res.x}x${toString res.y}@${toString res.freq}Hz"; "${toString res.x}x${toString res.y}@${toString res.freq}Hz";
bg = display.wallpaper + " fill";
scale = toString display.scaling; scale = toString display.scaling;
}; }
// lib.mkIf ( display ? wallpaper && display.wallpaper != null ) {
bg = "${ display.wallpaper } fill";
}
;
}; };
resolutionType = types.submodule { resolutionType = types.submodule {
@ -124,7 +128,7 @@ with lib; let
}; };
wallpaper = mkOption { wallpaper = mkOption {
description = "path to wallpaper"; description = "path to wallpaper";
default = ""; default = null;
}; };
workspaces = mkOption { workspaces = mkOption {
default = {}; default = {};
@ -173,10 +177,10 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
home-manager.users.${user}.imports = [ home-manager.users.${user}.imports = [
{ {
systemd.user.services.swaybg = swaybgJob (attrValues cfg.displays);
programs.waybar.settings.mainBar."hyprland/workspaces".persistent_workspaces = waybarWorkspaceConf (attrValues cfg.displays); programs.waybar.settings.mainBar."hyprland/workspaces".persistent_workspaces = waybarWorkspaceConf (attrValues cfg.displays);
systemd.user.services.swaybg = swaybgJob (builtins.attrValues cfg.displays);
wayland.windowManager = mkIf (cfg.displays != {}) { wayland.windowManager = mkIf (cfg.displays != {}) {
hyprland.settings = { hyprland.settings = {
monitor = renderDisplaysForHyprland (attrValues cfg.displays); monitor = renderDisplaysForHyprland (attrValues cfg.displays);