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-focused 0xbd93f9
riverctl border-color-unfocused 0x282a36 riverctl border-color-unfocused 0x282a36
# Note: the "Super" modifier is also known as Logo, GUI, Windows, Mod4, etc. # Launch Shortcuts
riverctl map normal Super Return spawn "foot iitmux"
# Super+Shift+Return to start an instance of foot (https://codeberg.org/dnkl/foot) riverctl map normal Super+Shift Return spawn "foot"
riverctl map normal Super+Shift Return spawn "foot iitmux"
riverctl map normal Super Space spawn "iiwmenu" riverctl map normal Super Space spawn "iiwmenu"
# Super+Q to close the focused view # Focus Controls
riverctl map normal Super Q close riverctl map normal Super H focus-view previous
# 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
riverctl map normal Super J focus-view next riverctl map normal Super J focus-view next
riverctl map normal Super K focus-view previous 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 # Move Controls
# view in the layout stack riverctl map normal Super+Shift H zoom
riverctl map normal Super+Shift J swap next riverctl map normal Super+Shift J swap next
riverctl map normal Super+Shift K swap previous 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 # Layout Controls
riverctl map normal Super Tab focus-output next riverctl map normal Super+Alt H send-layout-cmd rivertile "main-ratio -0.05"
riverctl map normal Super+Shift Tab focus-output previous 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 # Floating Controls
riverctl map normal Super+Shift Period send-to-output next riverctl map normal Super+Shift F toggle-float
riverctl map normal Super+Shift Comma send-to-output previous riverctl map normal Super+Control H move left 100
riverctl map normal Super+Control J move down 100
# Super+Return to bump the focused view to the top of the layout stack riverctl map normal Super+Control K move up 100
riverctl map normal Super Return zoom riverctl map normal Super+Control L move right 100
riverctl map normal Super+Shift+Control H snap left
# Super+H and Super+L to decrease/increase the main ratio of rivertile(1) riverctl map normal Super+Shift+Control J snap down
riverctl map normal Super H send-layout-cmd rivertile "main-ratio -0.05" riverctl map normal Super+Shift+Control K snap up
riverctl map normal Super L send-layout-cmd rivertile "main-ratio +0.05" riverctl map normal Super+Shift+Control L snap right
# 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
riverctl map normal Super+Alt+Shift H resize horizontal -100 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 J resize vertical 100
riverctl map normal Super+Alt+Shift K resize vertical -100 riverctl map normal Super+Alt+Shift K resize vertical -100
riverctl map normal Super+Alt+Shift L resize horizontal 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 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 riverctl map-pointer normal Super BTN_RIGHT resize-view
# Super + Middle Mouse Button to toggle float # Close focused view
riverctl map-pointer normal Super BTN_MIDDLE toggle-float riverctl map normal Super Q close
# Exit River
riverctl map normal Super+Shift Q exit
for i in $(seq 1 9) for i in $(seq 1 9)
do do
@ -102,23 +88,18 @@ do
riverctl map normal Super+Shift+Control $i toggle-view-tags $tags riverctl map normal Super+Shift+Control $i toggle-view-tags $tags
done 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+0 to focus all tags
# Super+Shift+0 to tag focused view with all tags # Super+Shift+0 to tag focused view with all tags
all_tags=$(((1 << 32) - 1)) all_tags=$(((1 << 32) - 1))
riverctl map normal Super 0 set-focused-tags $all_tags riverctl map normal Super 0 set-focused-tags $all_tags
riverctl map normal Super+Shift 0 set-view-tags $all_tags riverctl map normal Super+Shift 0 set-view-tags $all_tags
# Super+Space to toggle float # Toggle fullscreen
riverctl map normal Super+Shift Space toggle-float
# Super+F to toggle fullscreen
riverctl map normal Super F toggle-fullscreen riverctl map normal Super F toggle-fullscreen
riverctl map normal None F11 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"
# Declare a passthrough mode. This mode has only a single mapping to return to # 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 # 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 # not have a modifier
for mode in normal locked for mode in normal locked
do do
# Eject the optical drive (well if you still have one that is)
riverctl map $mode None XF86Eject spawn 'eject -T' riverctl map $mode None XF86Eject spawn 'eject -T'
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer) # 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 # Make all views with app-id "bar" and any title use client-side decorations
riverctl rule-add -app-id "bar" csd riverctl rule-add -app-id "bar" csd
# Set the default layout generator to be rivertile and start it. # Global Configuration Settings
# River will send the process group of the init executable SIGTERM on exit.
riverctl default-layout rivertile riverctl default-layout rivertile
rivertile -view-padding 10 -outer-padding 10 & 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", "position": "top",
"height": 24, "height": 24,
"spacing": 8, "spacing": 8,
"modules-left": [ "modules-left": [
"river/tags", "river/tags",
"river/mode", "river/mode"
"clock",
"custom/weather"
], ],
"modules-center": ["river/window"], "modules-center": [
"river/window"
],
"modules-right": [ "modules-right": [
"wlr/taskbar", "wlr/taskbar",
"tray" "tray",
"custom/weather",
"clock",
], ],
"river/tags": { "river/tags": {
"num-tags": 4, "num-tags": 9,
"set-tags": [ "tag-labels": ["1","2","3","4","5","6","7","8","9"]
2147483649,
2147483650,
2147483652,
2147483656,
2147483664
]
}, },
"wlr/taskbar": { "wlr/taskbar": {
"on-click": "activate", "on-click": "activate",

View File

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

View File

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

View File

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

44
todo.md
View File

@ -1,16 +1,44 @@
- [ ] Create additional host configurations - [ ] Create additional host configurations
- [ ] Implement the Impermanence module - [ ] Implement the Impermanence module
* [Erase your darlings](https://grahamc.com/blog/erase-your-darlings/) - [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 home](https://elis.nu/blog/2020/06/nixos-tmpfs-as-home/)
* [tmpfs as root](https://elis.nu/blog/2020/05/nixos-tmpfs-as-root/) - [tmpfs as root](https://elis.nu/blog/2020/05/nixos-tmpfs-as-root/)
* [Impermanence - NixOS Wiki](https://nixos.wiki/wiki/Impermanence) - [Impermanence - NixOS Wiki](https://nixos.wiki/wiki/Impermanence)
- [ ] Implement [Agenix](https://nixos.wiki/wiki/Agenix) or Sopsnix - [ ] Implement [Agenix](https://nixos.wiki/wiki/Agenix) or Sopsnix
* [Agenix Git Repo](https://github.com/ryantm/agenix) - [Agenix Git Repo](https://github.com/ryantm/agenix)
* [Homeage Git Repo](https://github.com/jordanisaacs/homeage) - [Homeage Git Repo](https://github.com/jordanisaacs/homeage)
* [Handling Secrets in NixOS](https://lgug2z.com/articles/handling-secrets-in-nixos-an-overview/) - [Handling Secrets in NixOS](https://lgug2z.com/articles/handling-secrets-in-nixos-an-overview/)
* [NixOS Secrets Management](https://onion.tube/watch?v=G5f6GC7SnhU) - [NixOS Secrets Management](https://onion.tube/watch?v=G5f6GC7SnhU)
- [ ] Implement [Stylix](https://danth.github.io/stylix/) - [ ] Implement [Stylix](https://danth.github.io/stylix/)
- [ ] Implement [MicroVM.nix](https://github.com/astro/microvm.nix) - [ ] Implement [MicroVM.nix](https://github.com/astro/microvm.nix)
- [ ] Figure out urlview and yank conflict with tmux plugins - [ ] Figure out urlview and yank conflict with tmux plugins
- [ ] Implement [Nix-Colors](https://youtube.com/watch?v=jO2o0IN0LPE) - [ ] Implement [Nix-Colors](https://youtube.com/watch?v=jO2o0IN0LPE)
- [ ] Fix autoupdate with remote flake repo - [ ] 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.