fixup sway and add mimeapps
This commit is contained in:
parent
879489efcb
commit
829c8d9392
9 changed files with 71 additions and 33 deletions
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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";
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 = {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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 = {
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue