add sway
This commit is contained in:
parent
de41738380
commit
349355938e
1
home.nix
1
home.nix
|
@ -7,6 +7,7 @@ in
|
|||
./fish/settings.nix
|
||||
./variables.nix
|
||||
./i3/settings.nix
|
||||
./sway/settings.nix
|
||||
./kitty/settings.nix
|
||||
./rofi/settings.nix
|
||||
./i3/i3status-rust.nix
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,58 @@
|
|||
import subprocess
|
||||
|
||||
|
||||
def show_now_playing():
|
||||
id = ["-r", "3984938"]
|
||||
|
||||
try:
|
||||
status = subprocess.Popen(
|
||||
["playerctl", "status"],
|
||||
stdout=subprocess.PIPE,
|
||||
)
|
||||
now_playing = subprocess.Popen(
|
||||
[
|
||||
"playerctl",
|
||||
"metadata",
|
||||
"--format",
|
||||
"{artist}\n\n{title}".format(
|
||||
artist="🧑🎨 {{artist}}",
|
||||
title="🎵 {{title}}",
|
||||
),
|
||||
],
|
||||
stdout=subprocess.PIPE,
|
||||
)
|
||||
|
||||
subprocess.run(
|
||||
[
|
||||
"dunstify",
|
||||
"⏯ {}".format(status.communicate()[0].decode()),
|
||||
now_playing.communicate()[0],
|
||||
]
|
||||
+ id
|
||||
)
|
||||
except:
|
||||
subprocess.run(["dunstify", "⏯ ", "🦗 nothing to see here..."] + id)
|
||||
|
||||
|
||||
def get_amixer_volume() -> int:
|
||||
s: str = str(subprocess.check_output(["amixer", "get", "Master"]))
|
||||
try:
|
||||
# turns the front left argument into an int
|
||||
return int(
|
||||
# the thing we're looking for is in the fifth line
|
||||
s.split(r"\n")[5]
|
||||
.strip()
|
||||
# and is the 4th word
|
||||
.split(" ")[4]
|
||||
.replace("[", "")
|
||||
.replace("]", "")
|
||||
.replace("%", "")
|
||||
)
|
||||
except:
|
||||
return -1
|
||||
|
||||
|
||||
def display_volume(volume: int):
|
||||
subprocess.call(
|
||||
["dunstify", "volume 蓼", "-h", "int:value:" + str(volume), "-r", "39489384"]
|
||||
)
|
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/env python
|
||||
import subprocess
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("brightnesschange")
|
||||
args = parser.parse_args()
|
||||
|
||||
|
||||
def get_brightness() -> str:
|
||||
return str(
|
||||
(
|
||||
int(
|
||||
subprocess.check_output(
|
||||
["cat", "/sys/class/backlight/intel_backlight/brightness"]
|
||||
)
|
||||
)
|
||||
/ int(
|
||||
subprocess.check_output(
|
||||
["cat", "/sys/class/backlight/intel_backlight/max_brightness"]
|
||||
)
|
||||
)
|
||||
* 100
|
||||
).__round__()
|
||||
)
|
||||
|
||||
|
||||
subprocess.check_output(
|
||||
[
|
||||
"brightnessctl",
|
||||
"set",
|
||||
args.brightnesschange,
|
||||
]
|
||||
)
|
||||
|
||||
print(get_brightness())
|
||||
|
||||
subprocess.call(
|
||||
[
|
||||
"dunstify",
|
||||
"brightness",
|
||||
"-h",
|
||||
"int:value:" + get_brightness(),
|
||||
"-r",
|
||||
"294893284",
|
||||
]
|
||||
)
|
|
@ -0,0 +1,234 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
mod = "Mod4";
|
||||
term = "kitty";
|
||||
color_bg = "#${config.color.background}";
|
||||
color_fg = "#${config.color.foreground}";
|
||||
color_active = "#${config.color.green}";
|
||||
color_inactive = "#${config.color.cyan}";
|
||||
color_indicator = "#${config.color.magenta}";
|
||||
color_evil = "#${config.color.red}";
|
||||
ws1 = "1";
|
||||
ws2 = "2";
|
||||
ws3 = "3";
|
||||
ws4 = "4";
|
||||
ws5 = "5";
|
||||
ws6 = "6";
|
||||
ws7 = "7";
|
||||
ws8 = "8";
|
||||
ws9 = "9";
|
||||
ws10 = "10";
|
||||
in
|
||||
{
|
||||
home-manager.users.zoe.wayland.windowManager.sway.config = {
|
||||
modifier = mod;
|
||||
terminal = term;
|
||||
menu =
|
||||
"exec rofi -combi-modi window#drun#ssh -show-icons -show combi -modi combi";
|
||||
fonts = {
|
||||
names = [ "CaskaydiaCove Nerd Font" ];
|
||||
size = 11.0;
|
||||
};
|
||||
|
||||
colors = {
|
||||
background = color_bg;
|
||||
focused = {
|
||||
background = color_bg;
|
||||
border = color_active;
|
||||
childBorder = color_active;
|
||||
indicator = color_indicator;
|
||||
text = color_fg;
|
||||
};
|
||||
focusedInactive = {
|
||||
background = color_bg;
|
||||
border = color_inactive;
|
||||
childBorder = color_inactive;
|
||||
indicator = color_indicator;
|
||||
text = color_fg;
|
||||
};
|
||||
unfocused = {
|
||||
background = color_bg;
|
||||
border = color_inactive;
|
||||
childBorder = color_inactive;
|
||||
indicator = color_indicator;
|
||||
text = color_fg;
|
||||
};
|
||||
urgent = {
|
||||
background = color_bg;
|
||||
border = color_evil;
|
||||
childBorder = color_evil;
|
||||
indicator = color_indicator;
|
||||
text = color_fg;
|
||||
};
|
||||
};
|
||||
|
||||
keybindings = lib.mkOptionDefault {
|
||||
# launch things
|
||||
## calculator
|
||||
"${mod}+c" = "exec rofi -show calc";
|
||||
## emoji
|
||||
"${mod}+period" = "exec kaokao | xclip -selection clipboard";
|
||||
## THE PICTURES
|
||||
"${mod}+s" = "exec flameshot gui --clipboard";
|
||||
|
||||
## find mouse cursor
|
||||
"${mod}+x" =
|
||||
"exec find-cursor --color '#282828' -o 2 --outline-color '#EBDBB2'";
|
||||
|
||||
## modes
|
||||
"${mod}+r" = "mode resize";
|
||||
"${mod}+b" = "mode brightness";
|
||||
"${mod}+m" = "mode media";
|
||||
"${mod}+w" = "mode move";
|
||||
"${mod}+v" = "mode focus";
|
||||
|
||||
## workspaces
|
||||
"${mod}+Tab" = "workspace next";
|
||||
"${mod}+q" = "exec i3layouts-rofi";
|
||||
|
||||
## tablet to next screen
|
||||
"${mod}+p" = "exec xsetwacom set 'Wacom Intuos S 2 Pen stylus' MapToOutput next";
|
||||
};
|
||||
|
||||
modes = {
|
||||
resize = {
|
||||
Escape = "mode default";
|
||||
v = "mode focus";
|
||||
w = "mode move";
|
||||
j = "resize grow height 10 px or 10 ppt";
|
||||
l = "resize shrink width 10 px or 10 ppt";
|
||||
h = "resize grow width 10 px or 10 ppt";
|
||||
k = "resize shrink height 10 px or 10 ppt";
|
||||
};
|
||||
brightness = {
|
||||
Escape = "mode default";
|
||||
k = "exec /etc/nixos/i3/brightness.py 10+";
|
||||
j = "exec /etc/nixos/i3/brightness.py 10-";
|
||||
};
|
||||
media = {
|
||||
Escape = "mode default";
|
||||
j = "exec --no-startup-id python3 /etc/nixos/i3/volume.py 1%-";
|
||||
k = "exec --no-startup-id python3 /etc/nixos/i3/volume.py 1%+";
|
||||
m = "exec --no-startup-id amixer set Master toggle";
|
||||
n = "exec --no-startup-id amixer set Capture toggle";
|
||||
p = "exec --no-startup-id playerctld shift";
|
||||
"Shift+j" = "exec --no-startup-id playerctl volume 0.05-";
|
||||
"Shift+k" = "exec --no-startup-id playerctl volume 0.05+";
|
||||
space = "exec --no-startup-id playerctl play-pause";
|
||||
l = "exec playerctl next";
|
||||
h = "exec playerctl previous";
|
||||
};
|
||||
move = {
|
||||
Escape = "mode default";
|
||||
v = "mode focus";
|
||||
r = "mode resize";
|
||||
j = "exec i3l move down";
|
||||
k = "exec i3l move up";
|
||||
h = "exec i3l move left";
|
||||
l = "exec i3l move right";
|
||||
s = "exec i3l swap container with previous";
|
||||
Tab = "exec i3-msg move workspace next && i3-msg workspace next";
|
||||
"1" = "move workspace ${ws1}";
|
||||
"2" = "move workspace ${ws2}";
|
||||
"3" = "move workspace ${ws3}";
|
||||
"4" = "move workspace ${ws4}";
|
||||
"5" = "move workspace ${ws5}";
|
||||
"6" = "move workspace ${ws6}";
|
||||
"7" = "move workspace ${ws7}";
|
||||
"8" = "move workspace ${ws8}";
|
||||
"9" = "move workspace ${ws9}";
|
||||
"0" = "move workspace ${ws10}";
|
||||
};
|
||||
focus = {
|
||||
Escape = "mode default";
|
||||
w = "mode move";
|
||||
r = "mode resize";
|
||||
h = "focus left";
|
||||
j = "focus down";
|
||||
k = "focus up";
|
||||
l = "focus right";
|
||||
Tab = "workspace next";
|
||||
"1" = "workspace ${ws1}";
|
||||
"2" = "workspace ${ws2}";
|
||||
"3" = "workspace ${ws3}";
|
||||
"4" = "workspace ${ws4}";
|
||||
"5" = "workspace ${ws5}";
|
||||
"6" = "workspace ${ws6}";
|
||||
"7" = "workspace ${ws7}";
|
||||
"8" = "workspace ${ws8}";
|
||||
"9" = "workspace ${ws9}";
|
||||
"0" = "workspace ${ws10}";
|
||||
};
|
||||
};
|
||||
|
||||
window = {
|
||||
titlebar = false;
|
||||
border = 4;
|
||||
};
|
||||
gaps = {
|
||||
inner = 0;
|
||||
outer = 0;
|
||||
};
|
||||
|
||||
bars = [{
|
||||
position = "top";
|
||||
command = "waybar";
|
||||
statusCommand =
|
||||
"i3status-rs $HOME/.config/i3status-rust/config-main.toml";
|
||||
fonts = {
|
||||
names = [ "CaskaydiaCove Nerd Font" ];
|
||||
size = 11.0;
|
||||
};
|
||||
colors = {
|
||||
background = color_bg;
|
||||
activeWorkspace = {
|
||||
border = color_active;
|
||||
background = color_bg;
|
||||
text = color_active;
|
||||
};
|
||||
inactiveWorkspace = {
|
||||
border = color_bg;
|
||||
background = color_bg;
|
||||
text = color_inactive;
|
||||
};
|
||||
focusedWorkspace = {
|
||||
border = color_active;
|
||||
background = color_active;
|
||||
text = color_bg;
|
||||
};
|
||||
bindingMode = {
|
||||
background = color_bg;
|
||||
border = color_bg;
|
||||
text = color_fg;
|
||||
};
|
||||
};
|
||||
}];
|
||||
|
||||
startup = [
|
||||
{
|
||||
command = "--no-startup-id feh --bg-scale /etc/nixos/wallpaper.png";
|
||||
always = true;
|
||||
}
|
||||
{
|
||||
command = "picom --experimental-backends";
|
||||
always = true;
|
||||
}
|
||||
{
|
||||
command = "--no-startup-id i3-layouts";
|
||||
always = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
home-manager.users.zoe.xsession.windowManager.i3.extraConfig = ''
|
||||
set $i3l companion to workspace 1
|
||||
set $i3l companion to workspace 2
|
||||
set $i3l companion to workspace 3
|
||||
set $i3l companion to workspace 4
|
||||
set $i3l companion to workspace 5
|
||||
set $i3l companion to workspace 6
|
||||
set $i3l companion to workspace 7
|
||||
set $i3l companion to workspace 8
|
||||
set $i3l companion to workspace 9
|
||||
set $i3l companion to workspace 10
|
||||
'';
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{ pkgs, ... }: {
|
||||
imports = [ ./mainbar.nix ];
|
||||
|
||||
home-manager.users.zoe.programs.i3status-rust = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.i3status-rust;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,88 @@
|
|||
{ config, ... }:
|
||||
let
|
||||
music = {
|
||||
block = "music";
|
||||
format = "{$icon $player {$volume_icon $volume|} $play $combo.str(max_w:25,rot_interval:0.5)|}";
|
||||
};
|
||||
pomodoro = {
|
||||
block = "pomodoro";
|
||||
};
|
||||
in
|
||||
{
|
||||
home-manager.users.zoe.programs.i3status-rust.bars.main = {
|
||||
blocks = [
|
||||
music
|
||||
# audio in
|
||||
{
|
||||
block = "sound";
|
||||
device_kind = "source";
|
||||
format = "$icon";
|
||||
driver = "pulseaudio";
|
||||
step_width = 1;
|
||||
}
|
||||
|
||||
# audio out
|
||||
{
|
||||
block = "sound";
|
||||
format = "{$icon $volume|$icon}";
|
||||
driver = "pulseaudio";
|
||||
headphones_indicator = true;
|
||||
step_width = 1;
|
||||
}
|
||||
|
||||
# brightness
|
||||
{
|
||||
block = "backlight";
|
||||
}
|
||||
|
||||
# network
|
||||
{
|
||||
block = "net";
|
||||
format = "$icon $device {$signal_strength $ssid |}";
|
||||
}
|
||||
|
||||
# battery
|
||||
{
|
||||
block = "battery";
|
||||
driver = "upower";
|
||||
format = "$icon $percentage $power";
|
||||
full_format = "$icon $percentage $power";
|
||||
empty_format = "$icon $percentage $power";
|
||||
not_charging_format = "$icon $percentage $power";
|
||||
}
|
||||
pomodoro
|
||||
# time
|
||||
{
|
||||
block = "time";
|
||||
format = "$icon $timestamp.datetime(f:%R)";
|
||||
timezone = "Europe/Berlin";
|
||||
interval = 60;
|
||||
}
|
||||
];
|
||||
|
||||
settings = {
|
||||
icons = {icons = "material-nf";};
|
||||
theme = {
|
||||
theme = "gruvbox-light";
|
||||
overrides = {
|
||||
separator = " ";
|
||||
# background
|
||||
good_bg = "#${config.color.background}";
|
||||
critical_bg = "#${config.color.background}";
|
||||
idle_bg = "#${config.color.background}";
|
||||
info_bg = "#${config.color.background}";
|
||||
seperator_bg = "#${config.color.background}";
|
||||
warning_bg = "#${config.color.background}";
|
||||
|
||||
# foreground
|
||||
critical_fg = "#${config.color.red}";
|
||||
good_fg = "#${config.color.green}";
|
||||
info_fg = "#${config.color.foreground}";
|
||||
idle_fg = "#${config.color.cyan}";
|
||||
separator_fg = "#${config.color.foreground}";
|
||||
warning_fg = "#${config.color.yellow}";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
import subprocess
|
||||
import audiotools
|
||||
|
||||
try:
|
||||
subprocess.Popen(["playerctl", "play-pause"]).wait()
|
||||
audiotools.show_now_playing()
|
||||
except:
|
||||
pass
|
|
@ -0,0 +1,7 @@
|
|||
{ pkgs, lib, ... }: {
|
||||
imports = [ ./config.nix ];
|
||||
home-manager.users.zoe.wayland.windowManager.sway = {
|
||||
package = pkgs.sway;
|
||||
enable = true;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
# script that changes the volume and then shows a notfication with it using dunst
|
||||
import subprocess
|
||||
import argparse
|
||||
import audiotools
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("volchange")
|
||||
args = parser.parse_args()
|
||||
|
||||
subprocess.check_output(["amixer", "set", "Master", args.volchange])
|
||||
audiotools.display_volume(audiotools.get_amixer_volume())
|
2
sync.sh
2
sync.sh
|
@ -7,7 +7,7 @@ git pull
|
|||
# cp -r /etc/nixos/ ./backup
|
||||
|
||||
# copy over all the files to /etc/nixos/
|
||||
sudo cp -ru ./flake.nix ./configuration.nix ./wallpaper.png ./dunst ./helix ./rofi ./i3 ./fish ./kitty ./nvim/ ./disks.nix ./variables.nix ./programs.nix ./defaults.nix ./packages.nix ./home.nix ./services.nix ./user.nix /etc/nixos/
|
||||
sudo cp -ru ./flake.nix ./configuration.nix ./wallpaper.png ./dunst ./helix ./rofi ./i3 ./sway ./fish ./kitty ./nvim/ ./disks.nix ./variables.nix ./programs.nix ./defaults.nix ./packages.nix ./home.nix ./services.nix ./user.nix /etc/nixos/
|
||||
|
||||
cp -u ./.xinitrc $HOME
|
||||
|
||||
|
|
Loading…
Reference in New Issue