feat: sway & i3 overhaul
This commit is contained in:
parent
a6531caa7f
commit
ae60d53eba
9 changed files with 118 additions and 124 deletions
1
.gitattributes
vendored
1
.gitattributes
vendored
|
@ -1,3 +1,4 @@
|
|||
flake.lock -diff
|
||||
home/secrets/**/*.json -diff
|
||||
lazy-lock.json -diff
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
|
|
65
flake.lock
65
flake.lock
|
@ -111,11 +111,11 @@
|
|||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1679684476,
|
||||
"narHash": "sha256-WTYZFt9cJmOSp1n3hxAS+BQnu7smcBsC98RSgdp2qsE=",
|
||||
"lastModified": 1679786039,
|
||||
"narHash": "sha256-VNjswu0Q4bZOkWNuc0+dHvRdjUCj+MnDlRfw/Q0R3vI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "db37c537603d1d45d022cc0666ad45197455b364",
|
||||
"rev": "cf662b6c98a0da81e06066fff0ecf9cbd4627727",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -146,11 +146,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1679472241,
|
||||
"narHash": "sha256-VK2YDic2NjPvfsuneJCLIrWS38qUfoW8rLLimx0rWXA=",
|
||||
"lastModified": 1679748960,
|
||||
"narHash": "sha256-BP8XcYHyj1NxQi04RpyNW8e7KiXSoI+Fy1tXIK2GfdA=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9ef6e7727f4c31507627815d4f8679c5841efb00",
|
||||
"rev": "da26ae9f6ce2c9ab380c0f394488892616fc5a6a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -160,22 +160,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-master": {
|
||||
"locked": {
|
||||
"lastModified": 1679784606,
|
||||
"narHash": "sha256-n5wGxz4KN90Wv00PgH1R1ZxaSDmdPeZ/rA9+FKM5mPo=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2f0ff93fcff3f9675a7c6875742e7d16ad0d80a3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "master",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1678872516,
|
||||
|
@ -194,11 +178,11 @@
|
|||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1679163677,
|
||||
"narHash": "sha256-VC0tc3EjJZFPXgucFQAYMIHce5nJWYR0kVCk4TVg6gg=",
|
||||
"lastModified": 1679748960,
|
||||
"narHash": "sha256-BP8XcYHyj1NxQi04RpyNW8e7KiXSoI+Fy1tXIK2GfdA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c3912035d00ef755ab19394488b41feab95d2e40",
|
||||
"rev": "da26ae9f6ce2c9ab380c0f394488892616fc5a6a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -210,11 +194,11 @@
|
|||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1679614379,
|
||||
"narHash": "sha256-2KddLHHmcIlJu0PuS/vISLKxihTyICUwKWGn0R//028=",
|
||||
"lastModified": 1679793451,
|
||||
"narHash": "sha256-JafTtgMDATE8dZOImBhWMA9RCn9AP8FVOpN+9K/tTlg=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "994e2ef9e9c70b4dd7257f73452a94e871723685",
|
||||
"rev": "0cd51a933d91078775b300cf0f29aa3495231aa2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -242,11 +226,11 @@
|
|||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1678987615,
|
||||
"narHash": "sha256-lF4agoB7ysQGNHRXvOqxtSKIZrUZwClA85aASahQlYM=",
|
||||
"lastModified": 1679734080,
|
||||
"narHash": "sha256-z846xfGLlon6t9lqUzlNtBOmsgQLQIZvR6Lt2dImk1M=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "194c2aa446b2b059886bb68be15ef6736d5a8c31",
|
||||
"rev": "dbf5322e93bcc6cfc52268367a8ad21c09d76fea",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -274,11 +258,11 @@
|
|||
},
|
||||
"nur": {
|
||||
"locked": {
|
||||
"lastModified": 1679694339,
|
||||
"narHash": "sha256-KkoBTJK7XBUVWGYPFh4cHys2NHO6p5Jh5NLP1KYA+AQ=",
|
||||
"lastModified": 1679974621,
|
||||
"narHash": "sha256-oKr2h7gH6xOwr8pQs0EEJelQ1vddfqs2SLWuZVSTIOs=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "2cd23c2a269fd3ebbb3a312e19e2e56ad770da7f",
|
||||
"rev": "56069a9944ea44cc1bb7fe2459b4ec5afa696611",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -316,7 +300,6 @@
|
|||
"home-manager": "home-manager",
|
||||
"nekowinston-nur": "nekowinston-nur",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-master": "nixpkgs-master",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"nur": "nur",
|
||||
"pre-commit-hooks": "pre-commit-hooks",
|
||||
|
@ -330,11 +313,11 @@
|
|||
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1679377997,
|
||||
"narHash": "sha256-O8rmc/b/qgNgoHj2tL5+3Ovkj7A+Sok7gazRoWbpnqg=",
|
||||
"lastModified": 1679799335,
|
||||
"narHash": "sha256-YrnDyftm0Mk4JLuw3sDBPNfSjk054N0dqQx8FW4JqDM=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "d8827a8368c307fbc6ed594c9a31d619e7360bed",
|
||||
"rev": "4740f80ca6e756915aaaa0a9c5fbb61ba09cc145",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -349,11 +332,11 @@
|
|||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1679331631,
|
||||
"narHash": "sha256-tMoiwFO/AVTV7GoGMSu3XQimFnK8vv3yzf+D41kTJoE=",
|
||||
"lastModified": 1679872473,
|
||||
"narHash": "sha256-N9DbdFj4iehocp/Ysb29+UTbUGEdwjZNWGbeaFL9hQ4=",
|
||||
"owner": "willpower3309",
|
||||
"repo": "swayfx",
|
||||
"rev": "7d5d7a3022eb17835cea7af7290b1a5d2fe4b03a",
|
||||
"rev": "4d1af6500491bdc301b590916fd04f5d8ec6a2c2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-22.11";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||
nixpkgs-master.url = "github:nixos/nixpkgs/master";
|
||||
|
||||
darwin = {
|
||||
url = "github:lnl7/nix-darwin";
|
||||
|
@ -34,7 +33,6 @@
|
|||
nekowinston-nur,
|
||||
nixpkgs,
|
||||
nixpkgs-unstable,
|
||||
nixpkgs-master,
|
||||
nur,
|
||||
pre-commit-hooks,
|
||||
sops,
|
||||
|
@ -46,10 +44,6 @@
|
|||
system = prev.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
master = import nixpkgs-master {
|
||||
system = prev.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
nur = import nur {
|
||||
nurpkgs = prev;
|
||||
pkgs = prev;
|
||||
|
|
114
home/apps/i3.nix
114
home/apps/i3.nix
|
@ -27,6 +27,9 @@
|
|||
{
|
||||
command = "${lib.getExe pkgs._1password-gui} --silent";
|
||||
}
|
||||
{
|
||||
command = "${pkgs.volnoti}/bin/volnoti";
|
||||
}
|
||||
];
|
||||
workspaceAutoBackAndForth = true;
|
||||
terminal = "wezterm start --always-new-process";
|
||||
|
@ -46,9 +49,24 @@
|
|||
screenshot =
|
||||
if wayland
|
||||
then "${lib.getExe pkgs.sway-contrib.grimshot} copy area"
|
||||
else "${lib.getExe pkgs.flameshot} gui";
|
||||
else "${pkgs.flameshot}/bin/flameshot gui";
|
||||
playerctl = lib.getExe pkgs.playerctl;
|
||||
wpctl = pkgs.wireplumber + "/bin/wpctl";
|
||||
volnotify = pkgs.writeShellScript "volnotify" ''
|
||||
volumeRaw=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | head -n1)
|
||||
volume=$(echo $volumeRaw | sed 's/Volume: //' | awk '{printf "%.0f\n", $1 * 100}')
|
||||
if [[ "$volumeRaw" =~ "MUTED" ]]; then
|
||||
volnoti-show -m
|
||||
else
|
||||
volnoti-show $volume
|
||||
fi
|
||||
'';
|
||||
gopassRofi = pkgs.writeShellScript "gopass-rofi" ''
|
||||
${gopass} ls --flat | \
|
||||
${rofi} -dmenu -dpi $dpi | \
|
||||
${xargs} --no-run-if-empty ${gopass} show -o | \
|
||||
${xdotool} type --clearmodifiers --file -
|
||||
'';
|
||||
in {
|
||||
"${mod}+Shift+b" = "border none";
|
||||
"${mod}+b" = "border pixel 2";
|
||||
|
@ -62,8 +80,8 @@
|
|||
"${mod}+e" = "exec --no-startup-id ${thunar}";
|
||||
"${mod}+Ctrl+x" = "exec --no-startup-id ${lib.getExe pkgs.xorg.xkill}";
|
||||
# TODO: replace xdotool with wayland equivalent
|
||||
"${hyper}+space" = "exec --no-startup-id ${gopass} ls --flat | ${rofi} -dmenu -dpi $dpi | ${xargs} --no-run-if-empty ${gopass} show -o | ${xdotool} type --clearmodifiers --file -";
|
||||
"${hyper}+p" = "--release exec --no-startup-id ${screenshot}";
|
||||
"${hyper}+space" = "exec --no-startup-id ${gopassRofi}";
|
||||
"${hyper}+p" = "exec --no-startup-id ${screenshot}";
|
||||
|
||||
# change focus
|
||||
"${modFocus}+h" = "focus left";
|
||||
|
@ -143,9 +161,9 @@
|
|||
"${mod}+Shift+space" = "exec ${lib.getExe pkgs._1password-gui} --quick-access";
|
||||
|
||||
# audio
|
||||
"XF86AudioRaiseVolume" = "exec --no-startup-id ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 5%+ -l 1.0";
|
||||
"XF86AudioLowerVolume" = "exec --no-startup-id ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 5%- -l 1.0";
|
||||
"XF86AudioMute" = "exec --no-startup-id ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||
"XF86AudioRaiseVolume" = "exec --no-startup-id ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 5%+ -l 1.0 && ${volnotify}";
|
||||
"XF86AudioLowerVolume" = "exec --no-startup-id ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 5%- -l 1.0 && ${volnotify}";
|
||||
"XF86AudioMute" = "exec --no-startup-id ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle && ${volnotify}";
|
||||
"XF86AudioNext" = "exec --no-startup-id ${playerctl} next";
|
||||
"XF86AudioPrev" = "exec --no-startup-id ${playerctl} previous";
|
||||
"XF86AudioPause" = "exec --no-startup-id ${playerctl} play-pause";
|
||||
|
@ -190,8 +208,6 @@
|
|||
mode = "hide";
|
||||
# use waybar if wayland
|
||||
command = lib.mkIf wayland "${lib.getExe config.programs.waybar.package}";
|
||||
# otherwise use i3status-rust
|
||||
statusCommand = lib.mkIf (!wayland) "${config.programs.i3status-rust.package}/bin/i3status-rs ${config.xdg.configHome}/i3status-rust/config-default.toml";
|
||||
position = "top";
|
||||
workspaceNumbers = false;
|
||||
inherit fonts;
|
||||
|
@ -331,70 +347,22 @@ in {
|
|||
packages = with pkgs; [
|
||||
arandr
|
||||
blueberry
|
||||
flameshot
|
||||
pavucontrol
|
||||
sway-contrib.grimshot
|
||||
volnoti
|
||||
xclip
|
||||
];
|
||||
};
|
||||
|
||||
programs = lib.mkIf isLinux {
|
||||
i3status-rust = {
|
||||
enable = true;
|
||||
bars.default = {
|
||||
blocks = [
|
||||
{
|
||||
block = "taskwarrior";
|
||||
data_location = config.programs.taskwarrior.dataLocation;
|
||||
}
|
||||
{
|
||||
block = "pomodoro";
|
||||
notifier = "notifysend";
|
||||
notifier_path = "${lib.getExe pkgs.libnotify}";
|
||||
}
|
||||
{
|
||||
block = "sound";
|
||||
max_vol = 100;
|
||||
on_click = "${lib.getExe pkgs.pavucontrol}";
|
||||
}
|
||||
{
|
||||
block = "time";
|
||||
interval = 5;
|
||||
format = "%R";
|
||||
}
|
||||
];
|
||||
settings = {
|
||||
icons.name = "material-nf";
|
||||
icons.overrides = {
|
||||
pomodoro = " ";
|
||||
pomodoro_break = " ";
|
||||
};
|
||||
theme.overrides = {
|
||||
idle_fg = "#cdd6f4";
|
||||
info_fg = "#89b4fa";
|
||||
good_fg = "#a6e3a1";
|
||||
warning_fg = "#fab387";
|
||||
critical_fg = "#f38ba8";
|
||||
separator = " ";
|
||||
separator_bg = "auto";
|
||||
separator_fg = "auto";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
zathura.enable = true;
|
||||
};
|
||||
|
||||
services = lib.mkIf isLinux {
|
||||
dunst.enable = true;
|
||||
flameshot = {
|
||||
enable = true;
|
||||
settings.General.showStartupLaunchMessage = false;
|
||||
};
|
||||
gnome-keyring = {
|
||||
enable = true;
|
||||
components = ["secrets"];
|
||||
};
|
||||
picom = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
package = pkgs.nur.repos.nekowinston.picom-ft-labs;
|
||||
fade = false;
|
||||
backend = "glx";
|
||||
|
@ -425,13 +393,8 @@ in {
|
|||
];
|
||||
};
|
||||
};
|
||||
redshift = {
|
||||
enable = true;
|
||||
latitude = 48.2;
|
||||
longitude = 16.366667;
|
||||
};
|
||||
screen-locker = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
inactiveInterval = 5;
|
||||
lockCmd = "${lib.getExe pkgs.i3lock} -n -c 000000";
|
||||
};
|
||||
|
@ -453,7 +416,15 @@ in {
|
|||
windowManager.i3 = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.i3;
|
||||
config = commonConfig {wayland = false;};
|
||||
config =
|
||||
commonConfig {wayland = false;}
|
||||
// {
|
||||
startup = [
|
||||
{
|
||||
command = "${lib.getExe pkgs.flameshot}";
|
||||
}
|
||||
];
|
||||
};
|
||||
extraConfig = ''
|
||||
set_from_resource $dpi Xft.dpi 140
|
||||
${commonExtraConfig}
|
||||
|
@ -470,10 +441,15 @@ in {
|
|||
input."type:keyboard" = {
|
||||
xkb_options = "ctrl:nocaps";
|
||||
};
|
||||
output = {"*" = {scale = "2";};};
|
||||
output = {
|
||||
"*" = {
|
||||
scale = "2";
|
||||
bg = "${flakePath}/home/wallpapers/dhm_1610.png fill #171320";
|
||||
};
|
||||
};
|
||||
startup = [
|
||||
{
|
||||
command = "${lib.getExe pkgs.nur.repos.nekowinston.swww} init";
|
||||
command = "wl-paste -t text --watch clipman store";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
@ -6,11 +6,10 @@
|
|||
inherit (pkgs.stdenv.hostPlatform) isLinux;
|
||||
in {
|
||||
home.packages = lib.mkIf isLinux (with pkgs; [
|
||||
cliphist
|
||||
clipman
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
nur.repos.nekowinston.swww
|
||||
]);
|
||||
|
||||
programs.waybar = lib.mkIf isLinux {
|
||||
|
|
|
@ -86,6 +86,7 @@ in {
|
|||
enable = isLinux && machine.personal;
|
||||
package = pkgs.unstable.mangohud;
|
||||
};
|
||||
zathura.enable = true;
|
||||
};
|
||||
|
||||
xdg.configFile."ideavim/ideavimrc".source = config.lib.file.mkOutOfStoreSymlink "${flakePath}/home/apps/ideavim/ideavimrc";
|
||||
|
|
BIN
home/wallpapers/dhm_1610.png
(Stored with Git LFS)
Normal file
BIN
home/wallpapers/dhm_1610.png
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -9,4 +9,30 @@
|
|||
services.dbus.packages = [pkgs.gcr];
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.wlr.enable = true;
|
||||
|
||||
console.colors = [
|
||||
"1e1e2e"
|
||||
"585b70"
|
||||
|
||||
"bac2de"
|
||||
"a6adc8"
|
||||
|
||||
"f38ba8"
|
||||
"f38ba8"
|
||||
|
||||
"a6e3a1"
|
||||
"a6e3a1"
|
||||
|
||||
"f9e2af"
|
||||
"f9e2af"
|
||||
|
||||
"89b4fa"
|
||||
"89b4fa"
|
||||
|
||||
"f5c2e7"
|
||||
"f5c2e7"
|
||||
|
||||
"94e2d5"
|
||||
"94e2d5"
|
||||
];
|
||||
}
|
||||
|
|
|
@ -28,6 +28,21 @@
|
|||
udisks2.enable = true;
|
||||
devmon.enable = true;
|
||||
|
||||
greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = let
|
||||
swaycmd = pkgs.writeShellScript "swaycmd" ''
|
||||
export NIXOS_OZONE_WL=1 XDG_CURRENT_DESKTOP=sway
|
||||
sway > /tmp/sway.log 2>&1
|
||||
'';
|
||||
in {
|
||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd ${swaycmd}";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# thumbnails
|
||||
tumbler.enable = true;
|
||||
|
||||
|
@ -35,7 +50,7 @@
|
|||
|
||||
kanata = {
|
||||
enable = true;
|
||||
package = pkgs.master.kanata;
|
||||
package = pkgs.unstable.kanata;
|
||||
keyboards.keychron-k6 = {
|
||||
devices = ["/dev/input/by-id/usb-Keychron_Keychron_K6-event-kbd"];
|
||||
config = ''
|
||||
|
@ -62,11 +77,7 @@
|
|||
xserver = {
|
||||
enable = true;
|
||||
desktopManager.xterm.enable = false;
|
||||
displayManager = {
|
||||
gdm.enable = true;
|
||||
# one of these days, it'll be sway :COPIUM:
|
||||
defaultSession = "none+i3";
|
||||
};
|
||||
displayManager.startx.enable = true;
|
||||
libinput.enable = true;
|
||||
windowManager.i3 = {
|
||||
enable = true;
|
||||
|
|
Loading…
Reference in a new issue