modules: Add kanshi, sway and mako config
This commit is contained in:
parent
2e19c185f6
commit
488dd977d1
112
modules/programs/kanshi/default.nix
Normal file
112
modules/programs/kanshi/default.nix
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
{
|
||||||
|
config
|
||||||
|
, lib
|
||||||
|
, writeShellScript
|
||||||
|
, kanshi
|
||||||
|
, wallpapersPath ? "/home/${config.system.singleUser}/Data/Wallpapers"
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
wallpapersHorizontal = "${wallpapersPath}/horizontal";
|
||||||
|
wallpapersVertical = "${wallpapersPath}/vertical";
|
||||||
|
wallpaperScript = writeShellScript "wallpaper.sh" ''
|
||||||
|
[[ $# -lt 1 ]] && echo "No profile specified" && exit 1
|
||||||
|
|
||||||
|
random_file() {
|
||||||
|
find "$1" -maxdepth 1 -type f | shuf -n 1
|
||||||
|
}
|
||||||
|
|
||||||
|
setbg() {
|
||||||
|
# Sets the background of $1 to $2
|
||||||
|
swaymsg "output \"$1\" background $2 fill"
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
homeMultihead)
|
||||||
|
horiz=$(random_file ${wallpapersHorizontal})
|
||||||
|
vert=$(random_file ${wallpapersVertical})
|
||||||
|
|
||||||
|
setbg "eDP-1" $horiz
|
||||||
|
setbg "HDMI-A-1" $vert
|
||||||
|
;;
|
||||||
|
genericMultihead)
|
||||||
|
horiz1=$(random_file ${wallpapersHorizontal})
|
||||||
|
horiz2=$(random_file ${wallpapersHorizontal})
|
||||||
|
|
||||||
|
setbg "eDP-1" $horiz1
|
||||||
|
setbg "HDMI-A-1" $horiz2
|
||||||
|
;;
|
||||||
|
laptop)
|
||||||
|
horiz=$(random_file ${wallpapersHorizontal})
|
||||||
|
|
||||||
|
setbg "eDP-1" $horiz
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
'';
|
||||||
|
mkProfile = name: outputs: {
|
||||||
|
outputs = outputs;
|
||||||
|
|
||||||
|
exec = "${wallpaperScript} ${name}";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
environment.systemPackages = [ kanshi ];
|
||||||
|
|
||||||
|
systemd.user.services.kanshi = {
|
||||||
|
description = "Dynamic display configuration tool";
|
||||||
|
wantedBy = [ "default.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${kanshi}/bin/kanshi";
|
||||||
|
Restart = "on-failure";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.users."${config.system.singleUser}".services.kanshi = {
|
||||||
|
enable = true;
|
||||||
|
profiles = let
|
||||||
|
horizontal = "Samsung Electric Company C27F398 H4ZN200596";
|
||||||
|
vertical = "Goldstar Company Ltd IPS235 Serial Number";
|
||||||
|
in {
|
||||||
|
homeMultihead = mkProfile "homeMultihead" [
|
||||||
|
{
|
||||||
|
criteria = vertical;
|
||||||
|
status = "enable";
|
||||||
|
mode = "1920x1080";
|
||||||
|
transform = "270";
|
||||||
|
position = "1920,-1080";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = horizontal;
|
||||||
|
status = "enable";
|
||||||
|
mode = "1920x1080";
|
||||||
|
position = "1920,-1080";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = "eDP-1";
|
||||||
|
status = "enable";
|
||||||
|
mode = "1920x1080";
|
||||||
|
position = "0,0";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
genericMultihead = mkProfile "genericMultihead" [
|
||||||
|
{
|
||||||
|
criteria = "eDP-1";
|
||||||
|
mode = "1920x1080";
|
||||||
|
status = "enable";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = "HDMI-A-1";
|
||||||
|
status = "enable";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
laptop = mkProfile "laptop" [
|
||||||
|
{
|
||||||
|
criteria = "eDP-1";
|
||||||
|
status = "enable";
|
||||||
|
mode = "1920x1080";
|
||||||
|
position = "0,0";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
12
modules/programs/mako/default.nix
Normal file
12
modules/programs/mako/default.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
config
|
||||||
|
, mako
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = [ mako ];
|
||||||
|
|
||||||
|
home-manager.users."${config.system.singleUser}".programs.mako = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
50
modules/programs/sway/default.nix
Normal file
50
modules/programs/sway/default.nix
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
config
|
||||||
|
, lib
|
||||||
|
, sway, mako
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = [ sway ];
|
||||||
|
|
||||||
|
home-manager.users."${config.system.singleUser}" = {
|
||||||
|
wayland.windowManager.sway = {
|
||||||
|
enable = true;
|
||||||
|
config = rec {
|
||||||
|
startup = [
|
||||||
|
{ command = "${mako}/bin/mako --default-timeout=3000"; }
|
||||||
|
];
|
||||||
|
modifier = "Mod1";
|
||||||
|
gaps = {
|
||||||
|
inner = 5;
|
||||||
|
outer = 7;
|
||||||
|
};
|
||||||
|
input = {
|
||||||
|
* = { xkb_layout = "de"; };
|
||||||
|
"2:7:SynPS/2_Synaptics_TouchPad" = {
|
||||||
|
tap = "enabled";
|
||||||
|
natural_scroll = "disabled";
|
||||||
|
dwt = "enabled";
|
||||||
|
};
|
||||||
|
"2:10:TPPS/2_Elan_TrackPoint" = { dwt = "enabled"; };
|
||||||
|
};
|
||||||
|
output = {
|
||||||
|
* = { adaptive_sync = "on"; };;
|
||||||
|
};
|
||||||
|
keybindings = lib.mkOptionDefault let
|
||||||
|
speakers = "alsa_output.pci-0000_00_1f.3.analog-stereo";
|
||||||
|
in {
|
||||||
|
"${modifier}+Return" = "exec alacritty";
|
||||||
|
"${modifier}+e" = "exec emacs";
|
||||||
|
"${modifier}+Shift+q" = "kill";
|
||||||
|
"${modifer}+f" = "exec firefox";
|
||||||
|
"F1" = "exec pactl set-sink-volume ${speakers} toggle";
|
||||||
|
"F2" = "exec pactl set-sink-volume ${speakers} -10%";
|
||||||
|
"F3" = "exec pactl set-sink-volume ${speakers} +10%";
|
||||||
|
"F5" = "exec brightnessctl --device=intel_backlight set 10%-";
|
||||||
|
"F6" = "exec brightnessctl --device=intel_backlight set +10%";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user