chore: nixfmt *
This commit is contained in:
parent
dc761a5271
commit
d039179898
161 changed files with 2688 additions and 3024 deletions
|
@ -1,8 +1,6 @@
|
|||
{ pkgs
|
||||
, ...
|
||||
}:
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
let
|
||||
in {
|
||||
# TODO: re-enable this with the appropriate version
|
||||
# programs.home-manager.enable = true;
|
||||
|
@ -18,9 +16,9 @@ in {
|
|||
home.keyboard = {
|
||||
layout = "us";
|
||||
variant = "altgr-intl";
|
||||
options = [
|
||||
options = [
|
||||
"nodeadkeys"
|
||||
# "caps:swapescape"
|
||||
# "caps:swapescape"
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -36,19 +34,18 @@ in {
|
|||
programs.command-not-found.enable = true;
|
||||
programs.fzf.enable = true;
|
||||
|
||||
home.packages =
|
||||
[] ++ (with pkgs; [
|
||||
# git helpers
|
||||
git-crypt
|
||||
home.packages = [ ] ++ (with pkgs; [
|
||||
# git helpers
|
||||
git-crypt
|
||||
|
||||
vcsh
|
||||
# Authentication
|
||||
cacert
|
||||
openssl
|
||||
mkpasswd
|
||||
vcsh
|
||||
# Authentication
|
||||
cacert
|
||||
openssl
|
||||
mkpasswd
|
||||
|
||||
just
|
||||
ripgrep
|
||||
du-dust
|
||||
]);
|
||||
just
|
||||
ripgrep
|
||||
du-dust
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
{ pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
{ pkgs, config, ... }:
|
||||
|
||||
let
|
||||
vcshActivationScript = pkgs.callPackage ./dotfiles/vcsh.nix {};
|
||||
let vcshActivationScript = pkgs.callPackage ./dotfiles/vcsh.nix { };
|
||||
|
||||
in {
|
||||
# TODO: fix the dotfiles
|
||||
|
|
|
@ -1,39 +1,36 @@
|
|||
{ pkgs
|
||||
, repoHttps ? "https://gitlab.com/steveeJ/dotfiles.git"
|
||||
, repoSsh ? "git@gitlab.com:/steveeJ/dotfiles.git"
|
||||
, ...
|
||||
}:
|
||||
{ pkgs, repoHttps ? "https://gitlab.com/steveeJ/dotfiles.git"
|
||||
, repoSsh ? "git@gitlab.com:/steveeJ/dotfiles.git", ... }:
|
||||
|
||||
let
|
||||
repoBareLocal = pkgs.runCommand "fetchbare" {
|
||||
outputHashMode = "recursive";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = "0000000000000000000000000000000000000000000000000000";
|
||||
} ''
|
||||
outputHashMode = "recursive";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = "0000000000000000000000000000000000000000000000000000";
|
||||
} ''
|
||||
(
|
||||
set -xe
|
||||
export GIT_SSL_CAINFO=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt
|
||||
export SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt
|
||||
${pkgs.git}/bin/git clone --mirror ${repoHttps} $out
|
||||
)
|
||||
'';
|
||||
'';
|
||||
|
||||
in pkgs.writeScript "activation-script" ''
|
||||
export HOST=$(hostname -s)
|
||||
export HOST=$(hostname -s)
|
||||
|
||||
function set_remotes {
|
||||
${pkgs.vcsh}/bin/vcsh dotfiles remote set-url origin $1
|
||||
${pkgs.vcsh}/bin/vcsh dotfiles remote set-url --push origin $2
|
||||
}
|
||||
function set_remotes {
|
||||
${pkgs.vcsh}/bin/vcsh dotfiles remote set-url origin $1
|
||||
${pkgs.vcsh}/bin/vcsh dotfiles remote set-url --push origin $2
|
||||
}
|
||||
|
||||
if ! test -d $HOME/.config/vcsh/repo.d/dotfiles.git; then
|
||||
echo Cloning dotfiles for $HOST...
|
||||
${pkgs.vcsh}/bin/vcsh clone -b $HOST ${repoBareLocal} dotfiles
|
||||
set_remotes ${repoHttps} ${repoSsh}
|
||||
else
|
||||
set_remotes ${repoBareLocal} ${repoSsh}
|
||||
echo Updating dotfiles for $HOST...
|
||||
${pkgs.vcsh}/bin/vcsh pull $HOST || true
|
||||
set_remotes ${repoHttps} ${repoSsh}
|
||||
fi
|
||||
''
|
||||
if ! test -d $HOME/.config/vcsh/repo.d/dotfiles.git; then
|
||||
echo Cloning dotfiles for $HOST...
|
||||
${pkgs.vcsh}/bin/vcsh clone -b $HOST ${repoBareLocal} dotfiles
|
||||
set_remotes ${repoHttps} ${repoSsh}
|
||||
else
|
||||
set_remotes ${repoBareLocal} ${repoSsh}
|
||||
echo Updating dotfiles for $HOST...
|
||||
${pkgs.vcsh}/bin/vcsh pull $HOST || true
|
||||
set_remotes ${repoHttps} ${repoSsh}
|
||||
fi
|
||||
''
|
||||
|
|
|
@ -1,28 +1,27 @@
|
|||
{ pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
{ pkgs, config, ... }:
|
||||
|
||||
let
|
||||
in {
|
||||
home.file.".nix-channels".text = ''
|
||||
'';
|
||||
home.file.".nix-channels".text = "";
|
||||
|
||||
home.activation.removeExistingNixChannels = config.lib.dag.entryBefore ["checkLinkTargets"] ''
|
||||
$DRY_RUN_CMD ${pkgs.writeScript "activation-script" ''
|
||||
set -ex
|
||||
if test -f $HOME/.nix-channels; then
|
||||
echo Uninstalling available channels...
|
||||
if test -f $HOME/.nix-channel; then
|
||||
while read url channel; do
|
||||
nix-channel --remove $channel
|
||||
done < $HOME/.nix-channel
|
||||
fi
|
||||
echo Moving existing file away...
|
||||
touch $HOME/.nix-channels.dummy
|
||||
mv --backup=numbered $HOME/.nix-channels.dummy $HOME/.nix-channels
|
||||
rm $HOME/.nix-channels
|
||||
fi
|
||||
''};
|
||||
'';
|
||||
home.activation.removeExistingNixChannels =
|
||||
config.lib.dag.entryBefore [ "checkLinkTargets" ] ''
|
||||
$DRY_RUN_CMD ${
|
||||
pkgs.writeScript "activation-script" ''
|
||||
set -ex
|
||||
if test -f $HOME/.nix-channels; then
|
||||
echo Uninstalling available channels...
|
||||
if test -f $HOME/.nix-channel; then
|
||||
while read url channel; do
|
||||
nix-channel --remove $channel
|
||||
done < $HOME/.nix-channel
|
||||
fi
|
||||
echo Moving existing file away...
|
||||
touch $HOME/.nix-channels.dummy
|
||||
mv --backup=numbered $HOME/.nix-channels.dummy $HOME/.nix-channels
|
||||
rm $HOME/.nix-channels
|
||||
fi
|
||||
''
|
||||
};
|
||||
'';
|
||||
}
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
{ pkgs
|
||||
, ...
|
||||
}:
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (import ../lib.nix { })
|
||||
mkSimpleTrayService
|
||||
;
|
||||
inherit (import ../lib.nix { }) mkSimpleTrayService;
|
||||
|
||||
audio = pkgs.writeShellScript "audio" ''
|
||||
export PATH=${with pkgs; lib.makeBinPath [
|
||||
pulseaudio findutils gnugrep
|
||||
]}:$PATH
|
||||
export PATH=${
|
||||
with pkgs;
|
||||
lib.makeBinPath [ pulseaudio findutils gnugrep ]
|
||||
}:$PATH
|
||||
|
||||
export MUTEFILE=''${TEMPDIR:-/tmp}/.qtilemute
|
||||
case $1 in
|
||||
|
@ -34,9 +31,7 @@ let
|
|||
terminalCommand = "${pkgs.alacritty}/bin/alacritty";
|
||||
|
||||
dpmsScript = pkgs.writeShellScript "dpmsScript" ''
|
||||
export PATH=${with pkgs; lib.makeBinPath [
|
||||
xorg.xset
|
||||
]}:$PATH
|
||||
export PATH=${with pkgs; lib.makeBinPath [ xorg.xset ]}:$PATH
|
||||
|
||||
set -xe
|
||||
|
||||
|
@ -59,9 +54,7 @@ let
|
|||
'';
|
||||
|
||||
screenLockCommand = pkgs.writeShellScript "screenLock" ''
|
||||
export PATH=${with pkgs; lib.makeBinPath [
|
||||
i3lock
|
||||
]}:$PATH
|
||||
export PATH=${with pkgs; lib.makeBinPath [ i3lock ]}:$PATH
|
||||
|
||||
revert() {
|
||||
${dpmsScript} default
|
||||
|
@ -82,186 +75,185 @@ let
|
|||
'';
|
||||
|
||||
qtileConfig = pkgs.writeScript "qtile_config.py" ''
|
||||
from libqtile.config import Key, Screen, Group, Drag, Click
|
||||
from libqtile.command import lazy
|
||||
from libqtile import layout, bar, widget
|
||||
from libqtile import hook
|
||||
from libqtile.config import Key, Screen, Group, Drag, Click
|
||||
from libqtile.command import lazy
|
||||
from libqtile import layout, bar, widget
|
||||
from libqtile import hook
|
||||
|
||||
import logging, os
|
||||
logger = logging.getLogger()
|
||||
logger.setLevel(logging.WARN)
|
||||
import logging, os
|
||||
logger = logging.getLogger()
|
||||
logger.setLevel(logging.WARN)
|
||||
|
||||
handler = logging.handlers.RotatingFileHandler(
|
||||
os.path.join(os.getenv('TEMPDIR', default="/tmp"), '.qtilelog'), maxBytes=10240000,
|
||||
backupCount=7
|
||||
)
|
||||
handler.setLevel(logging.WARN)
|
||||
logger.addHandler(handler)
|
||||
|
||||
key_super = "mod4"
|
||||
key_alt = "mod1"
|
||||
key_control = "control"
|
||||
|
||||
keys = [
|
||||
# https://github.com/qtile/qtile/blob/master/libqtile/backend/x11/xkeysyms.py
|
||||
Key([key_super], "Return", lazy.spawn("${terminalCommand}")),
|
||||
Key([key_super], "r", lazy.spawncmd()),
|
||||
Key([key_super], "w", lazy.window.kill()),
|
||||
|
||||
Key([key_alt, key_super], "l", lazy.spawn('${pkgs.bash}/bin/sh -c "loginctl lock-session $XDG_SESSION_ID"')),
|
||||
Key([key_alt, key_super], "s", lazy.spawn("${pkgs.systemd}/bin/systemctl suspend")),
|
||||
|
||||
Key([key_super, key_control], "r", lazy.spawn("${initScreen}")),
|
||||
Key([key_super, key_control], "q", lazy.shutdown()),
|
||||
|
||||
# Toggle between different layouts as defined below
|
||||
Key([key_super], "Tab", lazy.next_layout()),
|
||||
|
||||
# this is usefull when floating windows get buried
|
||||
Key([key_super], "Escape", lazy.window.bring_to_front()),
|
||||
|
||||
# common to all layouts
|
||||
Key([key_control, key_alt], "h", lazy.layout.grow_left()),
|
||||
Key([key_control, key_alt], "j", lazy.layout.grow_down()),
|
||||
Key([key_control, key_alt], "k", lazy.layout.grow_up()),
|
||||
Key([key_control, key_alt], "l", lazy.layout.grow_right()),
|
||||
Key([key_super], "n", lazy.layout.normalize()),
|
||||
Key([key_super], "o", lazy.layout.maximize()),
|
||||
|
||||
# MonadTall keybindings
|
||||
Key([key_super], "h", lazy.layout.left().when(layout="monad")),
|
||||
Key([key_super], "l", lazy.layout.right().when(layout="monad")),
|
||||
Key([key_super], "j", lazy.layout.down().when(layout="monad")),
|
||||
Key([key_super], "k", lazy.layout.up().when(layout="monad")),
|
||||
Key([key_super, key_control], "h", lazy.layout.shuffle_left().when(layout="monad")),
|
||||
Key([key_super, key_control], "l", lazy.layout.shuffle_right().when(layout="monad")),
|
||||
Key([key_super, key_control], "j", lazy.layout.shuffle_down().when(layout="monad")),
|
||||
Key([key_super, key_control], "k", lazy.layout.shuffle_up().when(layout="monad")),
|
||||
Key([key_super, key_control], "space", lazy.layout.toggle_split().when(layout="monad")),
|
||||
|
||||
# Stack
|
||||
Key([key_super], "h", lazy.layout.previous().when(layout='stack')),
|
||||
Key([key_super], "l", lazy.layout.next().when(layout='stack')),
|
||||
Key([key_super], "j", lazy.layout.up().when(layout='stack')),
|
||||
Key([key_super], "k", lazy.layout.down().when(layout='stack')),
|
||||
Key([key_super, key_control], "j", lazy.layout.shuffle_up().when(layout='stack')),
|
||||
Key([key_super, key_control], "k", lazy.layout.shuffle_down().when(layout='stack')),
|
||||
Key([key_super, key_control], "h", lazy.layout.client_to_previous().when(layout='stack')),
|
||||
Key([key_super, key_control], "l", lazy.layout.client_to_next().when(layout='stack')),
|
||||
|
||||
# Columns
|
||||
Key([key_super], "h", lazy.layout.left().when(layout="columns")),
|
||||
Key([key_super], "l", lazy.layout.right().when(layout="columns")),
|
||||
Key([key_super], "j", lazy.layout.next().when(layout="columns")),
|
||||
Key([key_super], "k", lazy.layout.previous().when(layout="columns")),
|
||||
Key([key_super, key_control], "j", lazy.layout.shuffle_down().when(layout="columns")),
|
||||
Key([key_super, key_control], "k", lazy.layout.shuffle_up().when(layout="columns")),
|
||||
Key([key_super, key_control], "h", lazy.layout.shuffle_left().when(layout="columns")),
|
||||
Key([key_super, key_control], "l", lazy.layout.shuffle_right().when(layout="columns")),
|
||||
Key([key_super, key_control], "space", lazy.layout.toggle_split().when(layout="columns")),
|
||||
|
||||
# Max
|
||||
Key([key_super], "j", lazy.layout.down().when(layout="max")),
|
||||
Key([key_super], "k", lazy.layout.up().when(layout="max")),
|
||||
|
||||
# TODO: these are required to make the 'columns' layout work, but why?
|
||||
Key([key_super], "j", lazy.layout.next()),
|
||||
Key([key_super], "k", lazy.layout.previous()),
|
||||
|
||||
# Multimedia Keys
|
||||
Key([], "XF86AudioPlay", lazy.spawn("${pkgs.playerctl}/bin/playerctl play-pause")),
|
||||
Key([], "XF86AudioPrev", lazy.spawn("${pkgs.playerctl}/bin/playerctl previous")),
|
||||
Key([], "XF86AudioNext", lazy.spawn("${pkgs.playerctl}/bin/playerctl next")),
|
||||
# TODO: the next two don't work yet
|
||||
Key([], "XF86AudioRewind", lazy.spawn("${pkgs.playerctl}/bin/playerctl offset 10-")),
|
||||
Key([], "XF86BackForward", lazy.spawn("${pkgs.playerctl}/bin/playerctl offset 10+")),
|
||||
Key([], "XF86AudioMute", lazy.spawn("${audio} mute")),
|
||||
Key([], "XF86AudioLowerVolume", lazy.spawn("${audio} lower")),
|
||||
Key([], "XF86AudioRaiseVolume", lazy.spawn("${audio} raise")),
|
||||
Key([], "Print", lazy.spawn("${pkgs.flameshot}/bin/flameshot gui")),
|
||||
]
|
||||
groups = [Group(i) for i in "1234567890"]
|
||||
|
||||
for i in groups:
|
||||
# super + letter of group = switch to group
|
||||
keys.append(
|
||||
Key([key_super], i.name, lazy.group[i.name].toscreen())
|
||||
handler = logging.handlers.RotatingFileHandler(
|
||||
os.path.join(os.getenv('TEMPDIR', default="/tmp"), '.qtilelog'), maxBytes=10240000,
|
||||
backupCount=7
|
||||
)
|
||||
handler.setLevel(logging.WARN)
|
||||
logger.addHandler(handler)
|
||||
|
||||
# super + shift + letter of group = switch to & move focused window to group
|
||||
keys.append(
|
||||
Key([key_super, key_control], i.name, lazy.window.togroup(i.name))
|
||||
)
|
||||
key_super = "mod4"
|
||||
key_alt = "mod1"
|
||||
key_control = "control"
|
||||
|
||||
layouts = [
|
||||
layout.Columns(num_columns=3, border_focus='#00ff00', border_width=2),
|
||||
layout.Max(),
|
||||
# layout.Stack(num_stacks=3, border_focus='#00ff00', border_width=2, autosplit=True, previous_on_rm=True),
|
||||
# layout.Wmii(border_focus='#00ff00'),
|
||||
# layout.MonadTall(ratio=0.6, border_focus='#00ff00'),
|
||||
]
|
||||
keys = [
|
||||
# https://github.com/qtile/qtile/blob/master/libqtile/backend/x11/xkeysyms.py
|
||||
Key([key_super], "Return", lazy.spawn("${terminalCommand}")),
|
||||
Key([key_super], "r", lazy.spawncmd()),
|
||||
Key([key_super], "w", lazy.window.kill()),
|
||||
|
||||
widget_defaults = dict(
|
||||
font='Arial',
|
||||
fontsize=16,
|
||||
padding=3,
|
||||
)
|
||||
Key([key_alt, key_super], "l", lazy.spawn('${pkgs.bash}/bin/sh -c "loginctl lock-session $XDG_SESSION_ID"')),
|
||||
Key([key_alt, key_super], "s", lazy.spawn("${pkgs.systemd}/bin/systemctl suspend")),
|
||||
|
||||
screens_count = 4
|
||||
screens = []
|
||||
for i in range(0, screens_count+1):
|
||||
j = i+1
|
||||
widgets = [
|
||||
widget.TextBox("Screen %i" % j, name="Screen %i" % j),
|
||||
widget.GroupBox(),
|
||||
widget.WindowName(),
|
||||
widget.Prompt(),
|
||||
widget.CPUGraph(),
|
||||
widget.ThermalSensor(),
|
||||
widget.Memory(),
|
||||
widget.Net(interface='eth0'),
|
||||
widget.Net(interface='wlan0'),
|
||||
widget.Clock(format='%Y-%m-%d %a %I:%M %p'),
|
||||
Key([key_super, key_control], "r", lazy.spawn("${initScreen}")),
|
||||
Key([key_super, key_control], "q", lazy.shutdown()),
|
||||
|
||||
# Toggle between different layouts as defined below
|
||||
Key([key_super], "Tab", lazy.next_layout()),
|
||||
|
||||
# this is usefull when floating windows get buried
|
||||
Key([key_super], "Escape", lazy.window.bring_to_front()),
|
||||
|
||||
# common to all layouts
|
||||
Key([key_control, key_alt], "h", lazy.layout.grow_left()),
|
||||
Key([key_control, key_alt], "j", lazy.layout.grow_down()),
|
||||
Key([key_control, key_alt], "k", lazy.layout.grow_up()),
|
||||
Key([key_control, key_alt], "l", lazy.layout.grow_right()),
|
||||
Key([key_super], "n", lazy.layout.normalize()),
|
||||
Key([key_super], "o", lazy.layout.maximize()),
|
||||
|
||||
# MonadTall keybindings
|
||||
Key([key_super], "h", lazy.layout.left().when(layout="monad")),
|
||||
Key([key_super], "l", lazy.layout.right().when(layout="monad")),
|
||||
Key([key_super], "j", lazy.layout.down().when(layout="monad")),
|
||||
Key([key_super], "k", lazy.layout.up().when(layout="monad")),
|
||||
Key([key_super, key_control], "h", lazy.layout.shuffle_left().when(layout="monad")),
|
||||
Key([key_super, key_control], "l", lazy.layout.shuffle_right().when(layout="monad")),
|
||||
Key([key_super, key_control], "j", lazy.layout.shuffle_down().when(layout="monad")),
|
||||
Key([key_super, key_control], "k", lazy.layout.shuffle_up().when(layout="monad")),
|
||||
Key([key_super, key_control], "space", lazy.layout.toggle_split().when(layout="monad")),
|
||||
|
||||
# Stack
|
||||
Key([key_super], "h", lazy.layout.previous().when(layout='stack')),
|
||||
Key([key_super], "l", lazy.layout.next().when(layout='stack')),
|
||||
Key([key_super], "j", lazy.layout.up().when(layout='stack')),
|
||||
Key([key_super], "k", lazy.layout.down().when(layout='stack')),
|
||||
Key([key_super, key_control], "j", lazy.layout.shuffle_up().when(layout='stack')),
|
||||
Key([key_super, key_control], "k", lazy.layout.shuffle_down().when(layout='stack')),
|
||||
Key([key_super, key_control], "h", lazy.layout.client_to_previous().when(layout='stack')),
|
||||
Key([key_super, key_control], "l", lazy.layout.client_to_next().when(layout='stack')),
|
||||
|
||||
# Columns
|
||||
Key([key_super], "h", lazy.layout.left().when(layout="columns")),
|
||||
Key([key_super], "l", lazy.layout.right().when(layout="columns")),
|
||||
Key([key_super], "j", lazy.layout.next().when(layout="columns")),
|
||||
Key([key_super], "k", lazy.layout.previous().when(layout="columns")),
|
||||
Key([key_super, key_control], "j", lazy.layout.shuffle_down().when(layout="columns")),
|
||||
Key([key_super, key_control], "k", lazy.layout.shuffle_up().when(layout="columns")),
|
||||
Key([key_super, key_control], "h", lazy.layout.shuffle_left().when(layout="columns")),
|
||||
Key([key_super, key_control], "l", lazy.layout.shuffle_right().when(layout="columns")),
|
||||
Key([key_super, key_control], "space", lazy.layout.toggle_split().when(layout="columns")),
|
||||
|
||||
# Max
|
||||
Key([key_super], "j", lazy.layout.down().when(layout="max")),
|
||||
Key([key_super], "k", lazy.layout.up().when(layout="max")),
|
||||
|
||||
# TODO: these are required to make the 'columns' layout work, but why?
|
||||
Key([key_super], "j", lazy.layout.next()),
|
||||
Key([key_super], "k", lazy.layout.previous()),
|
||||
|
||||
# Multimedia Keys
|
||||
Key([], "XF86AudioPlay", lazy.spawn("${pkgs.playerctl}/bin/playerctl play-pause")),
|
||||
Key([], "XF86AudioPrev", lazy.spawn("${pkgs.playerctl}/bin/playerctl previous")),
|
||||
Key([], "XF86AudioNext", lazy.spawn("${pkgs.playerctl}/bin/playerctl next")),
|
||||
# TODO: the next two don't work yet
|
||||
Key([], "XF86AudioRewind", lazy.spawn("${pkgs.playerctl}/bin/playerctl offset 10-")),
|
||||
Key([], "XF86BackForward", lazy.spawn("${pkgs.playerctl}/bin/playerctl offset 10+")),
|
||||
Key([], "XF86AudioMute", lazy.spawn("${audio} mute")),
|
||||
Key([], "XF86AudioLowerVolume", lazy.spawn("${audio} lower")),
|
||||
Key([], "XF86AudioRaiseVolume", lazy.spawn("${audio} raise")),
|
||||
Key([], "Print", lazy.spawn("${pkgs.flameshot}/bin/flameshot gui")),
|
||||
]
|
||||
if i is 0:
|
||||
widgets.insert(-1, widget.Systray())
|
||||
groups = [Group(i) for i in "1234567890"]
|
||||
|
||||
screens.append(Screen(bottom=bar.Bar(widgets, 30)))
|
||||
for i in groups:
|
||||
# super + letter of group = switch to group
|
||||
keys.append(
|
||||
Key([key_super], i.name, lazy.group[i.name].toscreen())
|
||||
)
|
||||
|
||||
keys.append(Key([key_super, "shift"], "%i" % (i+1), lazy.to_screen(i)))
|
||||
# super + shift + letter of group = switch to & move focused window to group
|
||||
keys.append(
|
||||
Key([key_super, key_control], i.name, lazy.window.togroup(i.name))
|
||||
)
|
||||
|
||||
dgroups_key_binder = None
|
||||
dgroups_app_rules = []
|
||||
follow_mouse_focus = False
|
||||
bring_front_click = False
|
||||
cursor_warp = False
|
||||
auto_fullscreen = True
|
||||
auto_minimize = False
|
||||
# focus_on_window_activation = "urgent"
|
||||
layouts = [
|
||||
layout.Columns(num_columns=3, border_focus='#00ff00', border_width=2),
|
||||
layout.Max(),
|
||||
# layout.Stack(num_stacks=3, border_focus='#00ff00', border_width=2, autosplit=True, previous_on_rm=True),
|
||||
# layout.Wmii(border_focus='#00ff00'),
|
||||
# layout.MonadTall(ratio=0.6, border_focus='#00ff00'),
|
||||
]
|
||||
|
||||
widget_defaults = dict(
|
||||
font='Arial',
|
||||
fontsize=16,
|
||||
padding=3,
|
||||
)
|
||||
|
||||
screens_count = 4
|
||||
screens = []
|
||||
for i in range(0, screens_count+1):
|
||||
j = i+1
|
||||
widgets = [
|
||||
widget.TextBox("Screen %i" % j, name="Screen %i" % j),
|
||||
widget.GroupBox(),
|
||||
widget.WindowName(),
|
||||
widget.Prompt(),
|
||||
widget.CPUGraph(),
|
||||
widget.ThermalSensor(),
|
||||
widget.Memory(),
|
||||
widget.Net(interface='eth0'),
|
||||
widget.Net(interface='wlan0'),
|
||||
widget.Clock(format='%Y-%m-%d %a %I:%M %p'),
|
||||
]
|
||||
if i is 0:
|
||||
widgets.insert(-1, widget.Systray())
|
||||
|
||||
screens.append(Screen(bottom=bar.Bar(widgets, 30)))
|
||||
|
||||
keys.append(Key([key_super, "shift"], "%i" % (i+1), lazy.to_screen(i)))
|
||||
|
||||
dgroups_key_binder = None
|
||||
dgroups_app_rules = []
|
||||
follow_mouse_focus = False
|
||||
bring_front_click = False
|
||||
cursor_warp = False
|
||||
auto_fullscreen = True
|
||||
auto_minimize = False
|
||||
# focus_on_window_activation = "urgent"
|
||||
|
||||
|
||||
# Drag floating layouts.
|
||||
mouse = [
|
||||
# Drag([key_super,key_control], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()),
|
||||
# Drag([key_super,key_control], "Button2", lazy.window.set_size_floating(), start=lazy.window.get_size()),
|
||||
Click([key_super,key_control], "Button3", lazy.window.disable_floating())
|
||||
]
|
||||
# Drag floating layouts.
|
||||
mouse = [
|
||||
# Drag([key_super,key_control], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()),
|
||||
# Drag([key_super,key_control], "Button2", lazy.window.set_size_floating(), start=lazy.window.get_size()),
|
||||
Click([key_super,key_control], "Button3", lazy.window.disable_floating())
|
||||
]
|
||||
|
||||
# disable any floating
|
||||
@hook.subscribe.client_new
|
||||
def disable_floating_for_all_new_windows(window):
|
||||
window.floating = False
|
||||
# disable any floating
|
||||
@hook.subscribe.client_new
|
||||
def disable_floating_for_all_new_windows(window):
|
||||
window.floating = False
|
||||
|
||||
@hook.subscribe.client_new
|
||||
def print_new_window(window):
|
||||
print("new window: ", window)
|
||||
'';
|
||||
@hook.subscribe.client_new
|
||||
def print_new_window(window):
|
||||
print("new window: ", window)
|
||||
'';
|
||||
|
||||
in {
|
||||
systemd.user = {
|
||||
startServices = true;
|
||||
services = {
|
||||
};
|
||||
services = { };
|
||||
};
|
||||
|
||||
services = {
|
||||
|
@ -306,50 +298,46 @@ in {
|
|||
enable = true;
|
||||
settings = {
|
||||
matches = let
|
||||
playerctl = ''${pkgs.coreutils}/bin/env DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(${pkgs.coreutils}/bin/id -u)/bus" ${pkgs.playerctl}/bin/playerctl'';
|
||||
playerctl = ''
|
||||
${pkgs.coreutils}/bin/env DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(${pkgs.coreutils}/bin/id -u)/bus" ${pkgs.playerctl}/bin/playerctl'';
|
||||
in [
|
||||
{
|
||||
trigger = ":vpos";
|
||||
replace = "{{output}}";
|
||||
vars = [
|
||||
{
|
||||
name = "output";
|
||||
type = "script";
|
||||
params = {
|
||||
args = [
|
||||
(pkgs.writeScript "espanso" ''
|
||||
#! ${pkgs.python3}/bin/python
|
||||
import subprocess, os, math, datetime
|
||||
vars = [{
|
||||
name = "output";
|
||||
type = "script";
|
||||
params = {
|
||||
args = [
|
||||
(pkgs.writeScript "espanso" ''
|
||||
#! ${pkgs.python3}/bin/python
|
||||
import subprocess, os, math, datetime
|
||||
|
||||
id=str(os.getuid())
|
||||
result=subprocess.run(args=["${pkgs.playerctl}/bin/playerctl", "position"], env={"DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/"+id+"/bus"},capture_output=True)
|
||||
result.check_returncode()
|
||||
id=str(os.getuid())
|
||||
result=subprocess.run(args=["${pkgs.playerctl}/bin/playerctl", "position"], env={"DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/"+id+"/bus"},capture_output=True)
|
||||
result.check_returncode()
|
||||
|
||||
position_secs = math.trunc(float(result.stdout))
|
||||
position_human = datetime.timedelta(seconds=position_secs)
|
||||
print("%s - %s" % (position_human, position_secs))
|
||||
'')
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
position_secs = math.trunc(float(result.stdout))
|
||||
position_human = datetime.timedelta(seconds=position_secs)
|
||||
print("%s - %s" % (position_human, position_secs))
|
||||
'')
|
||||
];
|
||||
};
|
||||
}];
|
||||
}
|
||||
{
|
||||
trigger = ":vtit";
|
||||
replace = "{{output}}";
|
||||
vars = [
|
||||
{
|
||||
name = "output";
|
||||
type = "script";
|
||||
params = {
|
||||
args = [
|
||||
(pkgs.writeShellScript "espanso" ''
|
||||
${playerctl} metadata title''
|
||||
)
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
vars = [{
|
||||
name = "output";
|
||||
type = "script";
|
||||
params = {
|
||||
args = [
|
||||
(pkgs.writeShellScript "espanso"
|
||||
"${playerctl} metadata title")
|
||||
];
|
||||
};
|
||||
}];
|
||||
}
|
||||
{
|
||||
trigger = ":dunno";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue