Added xwayland, swaylock configuration, waybar configuration, and river configuration. Moved some wayland packages from environment to user installation.

This commit is contained in:
Thai Noodles 2024-01-10 17:52:10 -08:00
parent cc20358391
commit c17465ed1e
8 changed files with 136 additions and 119 deletions

View File

@ -18,72 +18,58 @@ riverctl spawn "mako"
riverctl border-color-focused 0xbd93f9
riverctl border-color-unfocused 0x282a36
# Note: the "Super" modifier is also known as Logo, GUI, Windows, Mod4, etc.
# Super+Shift+Return to start an instance of foot (https://codeberg.org/dnkl/foot)
riverctl map normal Super+Shift Return spawn "foot iitmux"
# Launch Shortcuts
riverctl map normal Super Return spawn "foot iitmux"
riverctl map normal Super+Shift Return spawn "foot"
riverctl map normal Super Space spawn "iiwmenu"
# Super+Q to close the focused view
riverctl map normal Super Q close
# Super+Shift+E to exit river
riverctl map normal Super+Shift Q exit
# Super+J and Super+K to focus the next/previous view in the layout stack
# Focus Controls
riverctl map normal Super H focus-view previous
riverctl map normal Super J focus-view next
riverctl map normal Super K focus-view previous
riverctl map normal Super L focus-view next
riverctl map normal Super Bracketright focus-output next
riverctl map normal Super Bracketleft focus-output previous
# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous
# view in the layout stack
# Move Controls
riverctl map normal Super+Shift H zoom
riverctl map normal Super+Shift J swap next
riverctl map normal Super+Shift K swap previous
riverctl map normal Super+Shift L swap next
riverctl map normal Super+Shift Bracketleft send-to-output previous
riverctl map normal Super+Shift Bracketright send-to-output next
# Super+Period and Super+Comma to focus the next/previous output
riverctl map normal Super Tab focus-output next
riverctl map normal Super+Shift Tab focus-output previous
# Layout Controls
riverctl map normal Super+Alt H send-layout-cmd rivertile "main-ratio -0.05"
riverctl map normal Super+Alt L send-layout-cmd rivertile "main-ratio +0.05"
riverctl map normal Super I send-layout-cmd rivertile "main-count +1"
riverctl map normal Super D send-layout-cmd rivertile "main-count -1"
riverctl map normal Super Up send-layout-cmd rivertile "main-location top"
riverctl map normal Super Right send-layout-cmd rivertile "main-location right"
riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom"
riverctl map normal Super Left send-layout-cmd rivertile "main-location left"
# Super+Shift+{Period,Comma} to send the focused view to the next/previous output
riverctl map normal Super+Shift Period send-to-output next
riverctl map normal Super+Shift Comma send-to-output previous
# Super+Return to bump the focused view to the top of the layout stack
riverctl map normal Super Return zoom
# Super+H and Super+L to decrease/increase the main ratio of rivertile(1)
riverctl map normal Super H send-layout-cmd rivertile "main-ratio -0.05"
riverctl map normal Super L send-layout-cmd rivertile "main-ratio +0.05"
# Super+Shift+H and Super+Shift+L to increment/decrement the main count of rivertile(1)
riverctl map normal Super+Shift H send-layout-cmd rivertile "main-count +1"
riverctl map normal Super+Shift L send-layout-cmd rivertile "main-count -1"
# Super+Alt+{H,J,K,L} to move views
riverctl map normal Super+Alt H move left 100
riverctl map normal Super+Alt J move down 100
riverctl map normal Super+Alt K move up 100
riverctl map normal Super+Alt L move right 100
# Super+Alt+Control+{H,J,K,L} to snap views to screen edges
riverctl map normal Super+Alt+Control H snap left
riverctl map normal Super+Alt+Control J snap down
riverctl map normal Super+Alt+Control K snap up
riverctl map normal Super+Alt+Control L snap right
# Super+Alt+Shift+{H,J,K,L} to resize views
# Floating Controls
riverctl map normal Super+Shift F toggle-float
riverctl map normal Super+Control H move left 100
riverctl map normal Super+Control J move down 100
riverctl map normal Super+Control K move up 100
riverctl map normal Super+Control L move right 100
riverctl map normal Super+Shift+Control H snap left
riverctl map normal Super+Shift+Control J snap down
riverctl map normal Super+Shift+Control K snap up
riverctl map normal Super+Shift+Control L snap right
riverctl map normal Super+Alt+Shift H resize horizontal -100
riverctl map normal Super+Alt+Shift J resize vertical 100
riverctl map normal Super+Alt+Shift K resize vertical -100
riverctl map normal Super+Alt+Shift L resize horizontal 100
# Super + Left Mouse Button to move views
riverctl map-pointer normal Super BTN_LEFT move-view
# Super + Right Mouse Button to resize views
riverctl map-pointer normal Super BTN_RIGHT resize-view
# Super + Middle Mouse Button to toggle float
riverctl map-pointer normal Super BTN_MIDDLE toggle-float
# Close focused view
riverctl map normal Super Q close
# Exit River
riverctl map normal Super+Shift Q exit
for i in $(seq 1 9)
do
@ -102,23 +88,18 @@ do
riverctl map normal Super+Shift+Control $i toggle-view-tags $tags
done
riverctl map normal Super Tab focus-previous-tags
riverctl map normal Super+Shift Tab send-to-previous-tags
# Super+0 to focus all tags
# Super+Shift+0 to tag focused view with all tags
all_tags=$(((1 << 32) - 1))
riverctl map normal Super 0 set-focused-tags $all_tags
riverctl map normal Super+Shift 0 set-view-tags $all_tags
# Super+Space to toggle float
riverctl map normal Super+Shift Space toggle-float
# Super+F to toggle fullscreen
# Toggle fullscreen
riverctl map normal Super F toggle-fullscreen
# Super+{Up,Right,Down,Left} to change layout orientation
riverctl map normal Super Up send-layout-cmd rivertile "main-location top"
riverctl map normal Super Right send-layout-cmd rivertile "main-location right"
riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom"
riverctl map normal Super Left send-layout-cmd rivertile "main-location left"
riverctl map normal None F11 toggle-fullscreen
# Declare a passthrough mode. This mode has only a single mapping to return to
# normal mode. This makes it useful for testing a nested wayland compositor
@ -134,7 +115,6 @@ riverctl map passthrough Super F11 enter-mode normal
# not have a modifier
for mode in normal locked
do
# Eject the optical drive (well if you still have one that is)
riverctl map $mode None XF86Eject spawn 'eject -T'
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
@ -162,7 +142,11 @@ riverctl rule-add -app-id 'float*' -title 'foo' float
# Make all views with app-id "bar" and any title use client-side decorations
riverctl rule-add -app-id "bar" csd
# Set the default layout generator to be rivertile and start it.
# River will send the process group of the init executable SIGTERM on exit.
# Global Configuration Settings
riverctl default-layout rivertile
rivertile -view-padding 10 -outer-padding 10 &
riverctl attach-mode bottom
riverctl hide-cursor timeout 10000
riverctl hide-cursor when-typing enabled
riverctl set-cursor-warp on-focus-change
riverctl focus-follows-cursor always

View File

@ -0,0 +1,28 @@
color=282a36
inside-color=1F202A
line-color=1F202A
ring-color=bd93f9
text-color=f8f8f2
layout-bg-color=1F202A
layout-text-color=f8f8f2
inside-clear-color=6272a4
line-clear-color=1F202A
ring-clear-color=6272a4
text-clear-color=1F202A
inside-ver-color=bd93f9
line-ver-color=1F202A
ring-ver-color=bd93f9
text-ver-color=1F202A
inside-wrong-color=ff5555
line-wrong-color=1F202A
ring-wrong-color=ff5555
text-wrong-color=1F202A
bs-hl-color=ff5555
key-hl-color=50fa7b
text-caps-lock-color=f8f8f2

View File

@ -1,28 +1,24 @@
{
"layer": "top",
"layer": "bottom",
"position": "top",
"height": 24,
"spacing": 8,
"modules-left": [
"river/tags",
"river/mode",
"clock",
"custom/weather"
"river/mode"
],
"modules-center": ["river/window"],
"modules-center": [
"river/window"
],
"modules-right": [
"wlr/taskbar",
"tray"
"tray",
"custom/weather",
"clock",
],
"river/tags": {
"num-tags": 4,
"set-tags": [
2147483649,
2147483650,
2147483652,
2147483656,
2147483664
]
"num-tags": 9,
"tag-labels": ["1","2","3","4","5","6","7","8","9"]
},
"wlr/taskbar": {
"on-click": "activate",

View File

@ -33,5 +33,5 @@ window#waybar {
}
#clock {
padding: 0 4px;
background: @background;
background: @comment;
}

View File

@ -20,6 +20,11 @@
target = "river";
recursive = true;
};
"swaylock" = {
source = ./dots/swaylock;
target = "swaylock";
recursive = true;
};
"waybar" = {
source = ./dots/waybar;
target = "waybar";

View File

@ -35,26 +35,26 @@
river = {
enable = true;
};
};
security.pam.services.swaylock = {
xwayland = {
enable = true;
};
};
users.users.${user.name}.packages = with pkgs; [
bemoji
cliphist
grimblast
imv
swww
tessen
wl-clipboard
];
environment.systemPackages = with pkgs; [
bemenu
bemoji
cliphist
foot
grimblast
hyprpicker
mako
swaylock
swww
tessen
waybar
way-displays
wl-clipboard
wtype
];
}

44
todo.md
View File

@ -1,16 +1,44 @@
- [ ] Create additional host configurations
- [ ] Implement the Impermanence module
* [Erase your darlings](https://grahamc.com/blog/erase-your-darlings/)
* [tmpfs as home](https://elis.nu/blog/2020/06/nixos-tmpfs-as-home/)
* [tmpfs as root](https://elis.nu/blog/2020/05/nixos-tmpfs-as-root/)
* [Impermanence - NixOS Wiki](https://nixos.wiki/wiki/Impermanence)
- [Erase your darlings](https://grahamc.com/blog/erase-your-darlings/)
- [tmpfs as home](https://elis.nu/blog/2020/06/nixos-tmpfs-as-home/)
- [tmpfs as root](https://elis.nu/blog/2020/05/nixos-tmpfs-as-root/)
- [Impermanence - NixOS Wiki](https://nixos.wiki/wiki/Impermanence)
- [ ] Implement [Agenix](https://nixos.wiki/wiki/Agenix) or Sopsnix
* [Agenix Git Repo](https://github.com/ryantm/agenix)
* [Homeage Git Repo](https://github.com/jordanisaacs/homeage)
* [Handling Secrets in NixOS](https://lgug2z.com/articles/handling-secrets-in-nixos-an-overview/)
* [NixOS Secrets Management](https://onion.tube/watch?v=G5f6GC7SnhU)
- [Agenix Git Repo](https://github.com/ryantm/agenix)
- [Homeage Git Repo](https://github.com/jordanisaacs/homeage)
- [Handling Secrets in NixOS](https://lgug2z.com/articles/handling-secrets-in-nixos-an-overview/)
- [NixOS Secrets Management](https://onion.tube/watch?v=G5f6GC7SnhU)
- [ ] Implement [Stylix](https://danth.github.io/stylix/)
- [ ] Implement [MicroVM.nix](https://github.com/astro/microvm.nix)
- [ ] Figure out urlview and yank conflict with tmux plugins
- [ ] Implement [Nix-Colors](https://youtube.com/watch?v=jO2o0IN0LPE)
- [ ] Fix autoupdate with remote flake repo
- [ ] Wayland monitors swap positions after turning off and turning back on
- [ ] GPG unlock prompt not happening on Wayland anymore
https://github.com/alex-courtis/way-displays
Configure
Restart the compositor and run way-displays -g or look at /tmp/way-displays.1.me.log.
Tweak cfg.yaml to your liking and save it. Changes will be immediately applied.
Alternatively, use the command line to make your changes then persist them with way-displays -w.
You might want to tail -f /tmp/way-displays.1.me.log whilst you are tweaking.
Usage
See Configuration for details on cfg.yaml and the command line.
Start the way-displays server by running once with no arguments after your wayland compositor has been started.
It will remain in the background, responding to changes, such as plugging in a display, and will terminate when you exit the compositor.
It will print messages to inform you of everything that is going on.
You can interact with the server via the command line
The server responds to IPC requests to fetch and mutate state.

View File

@ -1,24 +0,0 @@
https://github.com/alex-courtis/way-displays
Configure
Restart the compositor and run way-displays -g or look at /tmp/way-displays.1.me.log.
Tweak cfg.yaml to your liking and save it. Changes will be immediately applied.
Alternatively, use the command line to make your changes then persist them with way-displays -w.
You might want to tail -f /tmp/way-displays.1.me.log whilst you are tweaking.
Usage
See Configuration for details on cfg.yaml and the command line.
Start the way-displays server by running once with no arguments after your wayland compositor has been started.
It will remain in the background, responding to changes, such as plugging in a display, and will terminate when you exit the compositor.
It will print messages to inform you of everything that is going on.
You can interact with the server via the command line
The server responds to IPC requests to fetch and mutate state.