mirror of
https://github.com/fscotto/infra.git
synced 2026-05-30 15:39:58 +00:00
Compare commits
15 Commits
2d3fb543de
...
feature/mi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c6a8ca4a5a | ||
|
|
b23123ae4e | ||
|
|
25379afe2e | ||
|
|
b84a57fc5b | ||
|
|
63cd774f6f | ||
|
|
e5a2b4ee41 | ||
|
|
2065164459 | ||
|
|
85bf7cfd03 | ||
|
|
b7c1cb4482 | ||
|
|
69efe18e2b | ||
|
|
0910ecbd87 | ||
|
|
a6fc0573f2 | ||
|
|
47a45cb285 | ||
|
|
ae8c311044 | ||
|
|
b827ea97a1 |
@@ -6,6 +6,7 @@ desktop_sessions_enabled:
|
||||
|
||||
desktop_default_session: i3
|
||||
desktop_default_session_env: xorg
|
||||
desktop_prompt_for_session: true
|
||||
|
||||
desktop_source_tools:
|
||||
- name: gf
|
||||
@@ -161,10 +162,6 @@ desktop_sway_dotfiles:
|
||||
src: .config/sway/
|
||||
dest: .config/sway/
|
||||
mode: preserve
|
||||
- name: Sway session launcher
|
||||
src: .local/bin/start-sway
|
||||
dest: .local/bin/start-sway
|
||||
mode: "0755"
|
||||
- name: dunst config
|
||||
src: .config/dunst/
|
||||
dest: .config/dunst/
|
||||
@@ -182,11 +179,6 @@ desktop_sway_dotfiles:
|
||||
dest: .config/alacritty/
|
||||
mode: preserve
|
||||
|
||||
noctalia_bar_monitors:
|
||||
- DP-1
|
||||
|
||||
noctalia_screen_overrides: []
|
||||
|
||||
desktop_flatpak_packages:
|
||||
- be.alexandervanhee.gradia
|
||||
- ch.protonmail.protonmail-bridge
|
||||
|
||||
@@ -130,10 +130,6 @@ desktop_void_dotfiles:
|
||||
src: .local/bin/update-turnstile-env
|
||||
dest: .local/bin/update-turnstile-env
|
||||
mode: "0755"
|
||||
- name: Noctalia config
|
||||
src: .config/noctalia/
|
||||
dest: .config/noctalia/
|
||||
mode: preserve
|
||||
|
||||
desktop_common_packages:
|
||||
- blueman
|
||||
@@ -178,16 +174,19 @@ desktop_i3_packages:
|
||||
desktop_sway_packages:
|
||||
- cliphist
|
||||
- dunst
|
||||
- flameshot
|
||||
- grim
|
||||
- jq
|
||||
- kanshi
|
||||
- rofi
|
||||
- slurp
|
||||
- swayfx
|
||||
- swaybg
|
||||
- swayidle
|
||||
- swaylock-effects
|
||||
- swaylock
|
||||
- SwayOSD
|
||||
- waybar
|
||||
- Waybar
|
||||
- wl-clipboard
|
||||
- xfce4-screenshooter
|
||||
- xdg-desktop-portal-wlr
|
||||
- xorg-server-xwayland
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ hostname: ikaros
|
||||
|
||||
desktop_sessions_enabled:
|
||||
- i3
|
||||
- sway
|
||||
|
||||
desktop_default_session: i3
|
||||
desktop_default_session_env: xorg
|
||||
|
||||
@@ -3,6 +3,7 @@ hostname: nymph
|
||||
|
||||
desktop_sessions_enabled:
|
||||
- i3
|
||||
- sway
|
||||
|
||||
desktop_default_session: i3
|
||||
desktop_default_session_env: xorg
|
||||
@@ -30,3 +31,14 @@ host_i3_dotfiles:
|
||||
- src: .config/wireplumber/wireplumber.conf.d/60-camera-priority.conf
|
||||
dest: .config/wireplumber/wireplumber.conf.d/60-camera-priority.conf
|
||||
mode: "0644"
|
||||
|
||||
host_sway_dotfiles:
|
||||
- src: .config/sway/host.conf
|
||||
dest: .config/sway/host.conf
|
||||
mode: "0644"
|
||||
- src: .config/sway/session-env
|
||||
dest: .config/sway/session-env
|
||||
mode: "0644"
|
||||
- src: .config/kanshi/
|
||||
dest: .config/kanshi/
|
||||
mode: preserve
|
||||
|
||||
@@ -464,6 +464,28 @@
|
||||
- (desktop_flatpak_extensions | default([])) | length > 0
|
||||
- item | length > 0
|
||||
|
||||
- name: Ensure /etc/flatpak/overrides exists
|
||||
tags: [packages, flatpak, theme]
|
||||
ansible.builtin.file:
|
||||
path: /etc/flatpak/overrides
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
when: (desktop_flatpak_packages | default([])) | length > 0
|
||||
|
||||
- name: Force dark GTK theme for Flatpak applications
|
||||
tags: [packages, flatpak, theme]
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/flatpak/overrides/global
|
||||
content: |
|
||||
[Environment]
|
||||
GTK_THEME={{ desktop_flatpak_gtk_theme | default('Yaru-Blue-dark') }}
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
when: (desktop_flatpak_packages | default([])) | length > 0
|
||||
|
||||
- name: Bootstrap rustup toolchain installer
|
||||
tags: [packages]
|
||||
block:
|
||||
|
||||
@@ -19,3 +19,18 @@
|
||||
- "'i3' in (desktop_sessions_enabled | default([]))"
|
||||
- (host_i3_dotfiles | default([])) | length > 0
|
||||
|
||||
- name: Copy host-specific sway dotfiles
|
||||
tags: [dotfiles, dotfiles:desktop, dotfiles:host, sway]
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../dotfiles/{{ hostname }}/{{ item.src }}"
|
||||
dest: "{{ user_home }}/{{ item.dest }}"
|
||||
owner: "{{ username }}"
|
||||
group: "{{ user_group }}"
|
||||
mode: "{{ item.mode }}"
|
||||
loop: "{{ host_sway_dotfiles | default([]) }}"
|
||||
loop_control:
|
||||
label: "{{ item.dest }}"
|
||||
when:
|
||||
- "'sway' in (desktop_sessions_enabled | default([]))"
|
||||
- (host_sway_dotfiles | default([])) | length > 0
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
[preferred]
|
||||
default=gtk
|
||||
org.freedesktop.impl.portal.Screenshot=wlr
|
||||
org.freedesktop.impl.portal.ScreenCast=wlr
|
||||
@@ -1,5 +1,5 @@
|
||||
[Desktop Entry]
|
||||
Name=Sway
|
||||
Comment=SwayFX (Wayland)
|
||||
Exec=start-sway
|
||||
Exec=/usr/local/bin/start-sway
|
||||
Type=Application
|
||||
|
||||
@@ -27,6 +27,36 @@
|
||||
mode: "0644"
|
||||
when: "'sway' in (desktop_sessions_enabled | default([]))"
|
||||
|
||||
- name: Install Sway session launcher in /usr/local/bin
|
||||
tags: [packages, services, sway]
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../dotfiles/desktop/.local/bin/start-sway"
|
||||
dest: /usr/local/bin/start-sway
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
when: "'sway' in (desktop_sessions_enabled | default([]))"
|
||||
|
||||
- name: Ensure /etc/xdg/xdg-desktop-portal exists
|
||||
tags: [packages, services, sway, portal]
|
||||
ansible.builtin.file:
|
||||
path: /etc/xdg/xdg-desktop-portal
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
when: "'sway' in (desktop_sessions_enabled | default([]))"
|
||||
|
||||
- name: Configure xdg-desktop-portal backend preferences for sway
|
||||
tags: [packages, services, sway, portal]
|
||||
ansible.builtin.copy:
|
||||
src: sway-portals.conf
|
||||
dest: /etc/xdg/xdg-desktop-portal/sway-portals.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
when: "'sway' in (desktop_sessions_enabled | default([]))"
|
||||
|
||||
- name: Copy sway desktop dotfiles
|
||||
tags: [dotfiles, dotfiles:desktop, sway]
|
||||
ansible.builtin.copy:
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"mError": "#d95757",
|
||||
"mHover": "#39bae6",
|
||||
"mOnError": "#0b0e14",
|
||||
"mOnHover": "#0b0e14",
|
||||
"mOnPrimary": "#0b0e14",
|
||||
"mOnSecondary": "#0b0e14",
|
||||
"mOnSurface": "#d1d1c7",
|
||||
"mOnSurfaceVariant": "#8e959e",
|
||||
"mOnTertiary": "#0b0e14",
|
||||
"mOutline": "#565b66",
|
||||
"mPrimary": "#e6b450",
|
||||
"mSecondary": "#aad94c",
|
||||
"mShadow": "#000000",
|
||||
"mSurface": "#0b0e14",
|
||||
"mSurfaceVariant": "#1e222a",
|
||||
"mTertiary": "#39bae6"
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
{
|
||||
"dark": {
|
||||
"mPrimary": "#b58fff",
|
||||
"mOnPrimary": "#000000",
|
||||
"mSecondary": "#c79aff",
|
||||
"mOnSecondary": "#000000",
|
||||
"mTertiary": "#d8b4ff",
|
||||
"mOnTertiary": "#000000",
|
||||
"mError": "#ff6f9b",
|
||||
"mOnError": "#000000",
|
||||
"mSurface": "#000000",
|
||||
"mOnSurface": "#e8d8ff",
|
||||
"mSurfaceVariant": "#110d1a",
|
||||
"mOnSurfaceVariant": "#b58fff",
|
||||
"mOutline": "#4c3a70",
|
||||
"mShadow": "#000000",
|
||||
"terminal": {
|
||||
"foreground": "#e8d8ff",
|
||||
"background": "#000000",
|
||||
"selectionFg": "#e8d8ff",
|
||||
"selectionBg": "#4c3a70",
|
||||
"cursorText": "#000000",
|
||||
"cursor": "#e8d8ff",
|
||||
"normal": {
|
||||
"black": "#000000",
|
||||
"red": "#ff6f9b",
|
||||
"green": "#a8e6cf",
|
||||
"yellow": "#d8b4ff",
|
||||
"blue": "#b58fff",
|
||||
"magenta": "#c79aff",
|
||||
"cyan": "#e0c1ff",
|
||||
"white": "#e8d8ff"
|
||||
},
|
||||
"bright": {
|
||||
"black": "#4c3a70",
|
||||
"red": "#ff8cb3",
|
||||
"green": "#b8f0d8",
|
||||
"yellow": "#e6d1ff",
|
||||
"blue": "#c9a8ff",
|
||||
"magenta": "#d4b8ff",
|
||||
"cyan": "#f0e0ff",
|
||||
"white": "#f5f0ff"
|
||||
}
|
||||
}
|
||||
},
|
||||
"light": {
|
||||
"mPrimary": "#8a56d4",
|
||||
"mOnPrimary": "#ffffff",
|
||||
"mSecondary": "#a074ff",
|
||||
"mOnSecondary": "#ffffff",
|
||||
"mTertiary": "#c79aff",
|
||||
"mOnTertiary": "#ffffff",
|
||||
"mError": "#ff6f9b",
|
||||
"mOnError": "#ffffff",
|
||||
"mSurface": "#fbf8ff",
|
||||
"mOnSurface": "#1a1428",
|
||||
"mSurfaceVariant": "#e8e0f8",
|
||||
"mOnSurfaceVariant": "#8a56d4",
|
||||
"mOutline": "#9b85c2",
|
||||
"mShadow": "#e2d8f5",
|
||||
"terminal": {
|
||||
"foreground": "#1a1428",
|
||||
"background": "#fbf8ff",
|
||||
"selectionFg": "#1a1428",
|
||||
"selectionBg": "#e8e0f8",
|
||||
"cursorText": "#fbf8ff",
|
||||
"cursor": "#1a1428",
|
||||
"normal": {
|
||||
"black": "#6b5b95",
|
||||
"red": "#ff6f9b",
|
||||
"green": "#6fb58f",
|
||||
"yellow": "#c79aff",
|
||||
"blue": "#8a56d4",
|
||||
"magenta": "#a074ff",
|
||||
"cyan": "#b89fff",
|
||||
"white": "#1a1428"
|
||||
},
|
||||
"bright": {
|
||||
"black": "#9b85c2",
|
||||
"red": "#ff8cb3",
|
||||
"green": "#85d7a8",
|
||||
"yellow": "#e0c1ff",
|
||||
"blue": "#b58fff",
|
||||
"magenta": "#c79aff",
|
||||
"cyan": "#d8b4ff",
|
||||
"white": "#120f1f"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
{
|
||||
"dark": {
|
||||
"mPrimary": "#ff8cb3",
|
||||
"mOnPrimary": "#000000",
|
||||
"mSecondary": "#ffb3cc",
|
||||
"mOnSecondary": "#000000",
|
||||
"mTertiary": "#ffcce0",
|
||||
"mOnTertiary": "#000000",
|
||||
"mError": "#ff99b8",
|
||||
"mOnError": "#000000",
|
||||
"mSurface": "#000000",
|
||||
"mOnSurface": "#ffe0eb",
|
||||
"mSurfaceVariant": "#1a0f16",
|
||||
"mOnSurfaceVariant": "#ff8cb3",
|
||||
"mOutline": "#5a3f4d",
|
||||
"mShadow": "#000000",
|
||||
"terminal": {
|
||||
"foreground": "#ffe0eb",
|
||||
"background": "#000000",
|
||||
"selectionFg": "#ffe0eb",
|
||||
"selectionBg": "#5a3f4d",
|
||||
"cursorText": "#000000",
|
||||
"cursor": "#ffe0eb",
|
||||
"normal": {
|
||||
"black": "#000000",
|
||||
"red": "#ff99b8",
|
||||
"green": "#ffccdd",
|
||||
"yellow": "#ffcce0",
|
||||
"blue": "#ff8cb3",
|
||||
"magenta": "#ffb3cc",
|
||||
"cyan": "#ffd6e8",
|
||||
"white": "#ffe0eb"
|
||||
},
|
||||
"bright": {
|
||||
"black": "#5a3f4d",
|
||||
"red": "#ffb8cc",
|
||||
"green": "#ffd6e8",
|
||||
"yellow": "#ffe0f0",
|
||||
"blue": "#ffa8c2",
|
||||
"magenta": "#ffccdd",
|
||||
"cyan": "#ffe8f2",
|
||||
"white": "#fff0f5"
|
||||
}
|
||||
}
|
||||
},
|
||||
"light": {
|
||||
"mPrimary": "#e57399",
|
||||
"mOnPrimary": "#ffffff",
|
||||
"mSecondary": "#ff99b8",
|
||||
"mOnSecondary": "#ffffff",
|
||||
"mTertiary": "#ffb3cc",
|
||||
"mOnTertiary": "#ffffff",
|
||||
"mError": "#ff99b8",
|
||||
"mOnError": "#ffffff",
|
||||
"mSurface": "#fff5fa",
|
||||
"mOnSurface": "#2c1822",
|
||||
"mSurfaceVariant": "#f5d6e3",
|
||||
"mOnSurfaceVariant": "#e57399",
|
||||
"mOutline": "#b38099",
|
||||
"mShadow": "#f0d0e0",
|
||||
"terminal": {
|
||||
"foreground": "#2c1822",
|
||||
"background": "#fff5fa",
|
||||
"selectionFg": "#2c1822",
|
||||
"selectionBg": "#f5d6e3",
|
||||
"cursorText": "#fff5fa",
|
||||
"cursor": "#2c1822",
|
||||
"normal": {
|
||||
"black": "#8c6075",
|
||||
"red": "#ff99b8",
|
||||
"green": "#e599b3",
|
||||
"yellow": "#ffb3cc",
|
||||
"blue": "#e57399",
|
||||
"magenta": "#ff99b8",
|
||||
"cyan": "#ffb8d1",
|
||||
"white": "#2c1822"
|
||||
},
|
||||
"bright": {
|
||||
"black": "#b38099",
|
||||
"red": "#ffb8cc",
|
||||
"green": "#ffccdd",
|
||||
"yellow": "#ffcce0",
|
||||
"blue": "#ff8cb3",
|
||||
"magenta": "#ffb3cc",
|
||||
"cyan": "#ffd6e8",
|
||||
"white": "#1a1015"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,94 +0,0 @@
|
||||
{
|
||||
"dark": {
|
||||
"mPrimary": "#FFC799",
|
||||
"mOnPrimary": "#000000",
|
||||
"mSecondary": "#99FFE4",
|
||||
"mOnSecondary": "#000000",
|
||||
"mTertiary": "#FBADFF",
|
||||
"mOnTertiary": "#000000",
|
||||
"mError": "#FF8080",
|
||||
"mOnError": "#000000",
|
||||
"mSurface": "#0C0C0C",
|
||||
"mOnSurface": "#FFFFFF",
|
||||
"mSurfaceVariant": "#1C1C1C",
|
||||
"mOnSurfaceVariant": "#A0A0A0",
|
||||
"mOutline": "#505050",
|
||||
"mShadow": "#000000",
|
||||
"mHover": "#282828",
|
||||
"mOnHover": "#FFFFFF",
|
||||
"terminal": {
|
||||
"foreground": "#FFFFFF",
|
||||
"background": "#0C0C0C",
|
||||
"normal": {
|
||||
"black": "#0C0C0C",
|
||||
"red": "#FF8080",
|
||||
"green": "#99FFE4",
|
||||
"yellow": "#FFC799",
|
||||
"blue": "#80B3FF",
|
||||
"magenta": "#FBADFF",
|
||||
"cyan": "#99FFE4",
|
||||
"white": "#A0A0A0"
|
||||
},
|
||||
"bright": {
|
||||
"black": "#505050",
|
||||
"red": "#FF8080",
|
||||
"green": "#99FFE4",
|
||||
"yellow": "#FFC799",
|
||||
"blue": "#80B3FF",
|
||||
"magenta": "#FBADFF",
|
||||
"cyan": "#99FFE4",
|
||||
"white": "#FFFFFF"
|
||||
},
|
||||
"cursor": "#FFFFFF",
|
||||
"cursorText": "#000000",
|
||||
"selectionFg": "#000000",
|
||||
"selectionBg": "#FFC799"
|
||||
}
|
||||
},
|
||||
"light": {
|
||||
"mPrimary": "#FFB170",
|
||||
"mOnPrimary": "#0C0C0C",
|
||||
"mSecondary": "#00CC99",
|
||||
"mOnSecondary": "#0C0C0C",
|
||||
"mTertiary": "#FBADFF",
|
||||
"mOnTertiary": "#0C0C0C",
|
||||
"mError": "#FF8080",
|
||||
"mOnError": "#0C0C0C",
|
||||
"mSurface": "#F2F2F2",
|
||||
"mOnSurface": "#0C0C0C",
|
||||
"mSurfaceVariant": "#E5E5E5",
|
||||
"mOnSurfaceVariant": "#282828",
|
||||
"mOutline": "#505050",
|
||||
"mShadow": "#D9D9D9",
|
||||
"mHover": "#E0E0E0",
|
||||
"mOnHover": "#0C0C0C",
|
||||
"terminal": {
|
||||
"foreground": "#0C0C0C",
|
||||
"background": "#F2F2F2",
|
||||
"normal": {
|
||||
"black": "#F2F2F2",
|
||||
"red": "#FF8080",
|
||||
"green": "#00CC99",
|
||||
"yellow": "#FFC799",
|
||||
"blue": "#004A77",
|
||||
"magenta": "#FBADFF",
|
||||
"cyan": "#006B57",
|
||||
"white": "#505050"
|
||||
},
|
||||
"bright": {
|
||||
"black": "#A0A0A0",
|
||||
"red": "#FF8080",
|
||||
"green": "#00CC99",
|
||||
"yellow": "#FFC799",
|
||||
"blue": "#80B3FF",
|
||||
"magenta": "#FBADFF",
|
||||
"cyan": "#99FFE4",
|
||||
"white": "#0C0C0C"
|
||||
},
|
||||
"cursor": "#0C0C0C",
|
||||
"cursorText": "#F2F2F2",
|
||||
"selectionFg": "#F2F2F2",
|
||||
"selectionBg": "#FFC799"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"enabled": true,
|
||||
"name": "Noctalia Plugins",
|
||||
"url": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||
}
|
||||
],
|
||||
"states": {
|
||||
"clipper": {
|
||||
"enabled": true,
|
||||
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||
},
|
||||
"polkit-agent": {
|
||||
"enabled": true,
|
||||
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||
},
|
||||
"screenshot": {
|
||||
"enabled": true,
|
||||
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||
},
|
||||
"usb-drive-manager": {
|
||||
"enabled": true,
|
||||
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||
}
|
||||
},
|
||||
"version": 2
|
||||
}
|
||||
@@ -1,84 +0,0 @@
|
||||
{
|
||||
"message": "Clipboard Panel",
|
||||
"backgroundColor": "#fabd2f",
|
||||
"cardColors": {
|
||||
"Text": {
|
||||
"bg": "mOutline",
|
||||
"separator": "mSurface",
|
||||
"fg": "mOnSurface"
|
||||
},
|
||||
"Image": {
|
||||
"bg": "mTertiary",
|
||||
"separator": "mSurface",
|
||||
"fg": "mOnTertiary"
|
||||
},
|
||||
"Link": {
|
||||
"bg": "mPrimary",
|
||||
"separator": "mSurface",
|
||||
"fg": "mOnPrimary"
|
||||
},
|
||||
"Code": {
|
||||
"bg": "mSecondary",
|
||||
"separator": "mSurface",
|
||||
"fg": "mOnSecondary"
|
||||
},
|
||||
"Color": {
|
||||
"bg": "mSecondary",
|
||||
"separator": "mSurface",
|
||||
"fg": "mOnSecondary"
|
||||
},
|
||||
"Emoji": {
|
||||
"bg": "mHover",
|
||||
"separator": "mSurface",
|
||||
"fg": "mOnHover"
|
||||
},
|
||||
"File": {
|
||||
"bg": "mError",
|
||||
"separator": "mSurface",
|
||||
"fg": "mOnError"
|
||||
}
|
||||
},
|
||||
"customColors": {
|
||||
"Text": {
|
||||
"bg": "#555555",
|
||||
"separator": "#000000",
|
||||
"fg": "#e9e4f0"
|
||||
},
|
||||
"Image": {
|
||||
"bg": "#e0b7c9",
|
||||
"separator": "#000000",
|
||||
"fg": "#20161f"
|
||||
},
|
||||
"Link": {
|
||||
"bg": "#c7a1d8",
|
||||
"separator": "#000000",
|
||||
"fg": "#1a151f"
|
||||
},
|
||||
"Code": {
|
||||
"bg": "#a984c4",
|
||||
"separator": "#000000",
|
||||
"fg": "#f3edf7"
|
||||
},
|
||||
"Color": {
|
||||
"bg": "#a984c4",
|
||||
"separator": "#000000",
|
||||
"fg": "#f3edf7"
|
||||
},
|
||||
"Emoji": {
|
||||
"bg": "#e0b7c9",
|
||||
"separator": "#000000",
|
||||
"fg": "#20161f"
|
||||
},
|
||||
"File": {
|
||||
"bg": "#e9899d",
|
||||
"separator": "#000000",
|
||||
"fg": "#1e1418"
|
||||
}
|
||||
},
|
||||
"enableTodoIntegration": true,
|
||||
"autoOpenPinnedPanel": false,
|
||||
"pincardsEnabled": true,
|
||||
"notecardsEnabled": true,
|
||||
"showCloseButton": true,
|
||||
"closeOnBackgroundClick": true
|
||||
}
|
||||
@@ -10,17 +10,20 @@ set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
|
||||
# Workspaces (etichette in numeri romani)
|
||||
set $ws1 "1: I"
|
||||
set $ws2 "2: II"
|
||||
set $ws3 "3: III"
|
||||
set $ws4 "4: IV"
|
||||
set $ws5 "5: V"
|
||||
set $ws6 "6: VI"
|
||||
set $ws7 "7: VII"
|
||||
set $ws8 "8: VIII"
|
||||
set $ws9 "9: IX"
|
||||
set $ws10 "10: X"
|
||||
# Default terminal (hosts can override via host.conf — e.g. nymph wraps it in prime-run)
|
||||
set $terminal alacritty
|
||||
|
||||
# Workspaces (waybar formatta i numeri in romani via format-icons)
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
# Input devices
|
||||
input * {
|
||||
@@ -32,7 +35,7 @@ input * {
|
||||
seat * xcursor_theme Yaru 24
|
||||
|
||||
# Outputs
|
||||
output * bg ~/.config/sway/wallpapers/wallpaper-161664.jpg fill
|
||||
output * bg ~/.config/sway/wallpapers/wallpaper-161664.jpg center
|
||||
|
||||
# SwayFX effects
|
||||
corner_radius 8
|
||||
@@ -49,13 +52,11 @@ xwayland enable
|
||||
focus_follows_mouse no
|
||||
mouse_warping none
|
||||
floating_modifier $mod
|
||||
tiling_drag modifier titlebar
|
||||
tiling_drag enable
|
||||
|
||||
# Borders
|
||||
default_border pixel 2
|
||||
default_floating_border pixel 2
|
||||
new_window pixel 2
|
||||
new_float pixel 2
|
||||
hide_edge_borders none
|
||||
|
||||
# Gaps
|
||||
@@ -64,6 +65,14 @@ gaps outer 4
|
||||
smart_gaps on
|
||||
smart_borders on
|
||||
|
||||
# Per-host overrides (terminal wrapper, gaps tweaks, workspace→output bindings, …)
|
||||
include ~/.config/sway/host.conf
|
||||
|
||||
# Window rules
|
||||
for_window [app_id="(?i)polkit"] floating enable
|
||||
for_window [class="(?i)polkit"] floating enable
|
||||
for_window [title="^Authentication Required"] floating enable
|
||||
|
||||
# Autostart — XDG and session services
|
||||
exec dex --autostart --environment sway
|
||||
exec gnome-keyring-daemon --start --components=secrets
|
||||
@@ -76,7 +85,7 @@ exec pipewire-pulse
|
||||
exec wireplumber
|
||||
|
||||
# Status bar
|
||||
exec_always waybar
|
||||
exec waybar
|
||||
|
||||
# OSD daemon (volume/brightness/caps-lock)
|
||||
exec swayosd-server
|
||||
@@ -87,16 +96,25 @@ exec /usr/libexec/xfce-polkit
|
||||
exec nm-applet
|
||||
exec blueman-applet
|
||||
exec udiskie
|
||||
exec flameshot
|
||||
|
||||
# Clipboard manager (Wayland-native)
|
||||
exec wl-paste --type text --watch cliphist store
|
||||
exec wl-paste --type image --watch cliphist store
|
||||
|
||||
# Lock on suspend
|
||||
exec swayidle -w before-sleep '~/.config/sway/scripts/lockscreen'
|
||||
# Idle / lock policy
|
||||
# 5 min idle → lock
|
||||
# 10 min idle → screen off (DPMS)
|
||||
# resume → screen on
|
||||
# before sleep → lock
|
||||
exec swayidle -w \
|
||||
timeout 300 '~/.config/sway/scripts/lockscreen' \
|
||||
timeout 600 'swaymsg "output * dpms off"' \
|
||||
resume 'swaymsg "output * dpms on"' \
|
||||
before-sleep '~/.config/sway/scripts/lockscreen'
|
||||
|
||||
# Terminal
|
||||
bindsym $mod+Return exec alacritty
|
||||
bindsym $mod+Return exec $terminal
|
||||
|
||||
# Emacs client
|
||||
bindsym $mod+Shift+e exec emacsclient -c -n
|
||||
@@ -119,10 +137,13 @@ bindsym $mod+Shift+x exec ~/.config/sway/scripts/lockscreen
|
||||
# Kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# Screenshot (xfce4-screenshooter via xdg-desktop-portal-wlr)
|
||||
bindsym Print exec xfce4-screenshooter
|
||||
bindsym Shift+Print exec xfce4-screenshooter -r
|
||||
bindsym Alt+Print exec xfce4-screenshooter -w
|
||||
# Screenshot
|
||||
# Print → flameshot GUI (annotations, save + clipboard via portal)
|
||||
# Shift+Print → grim+slurp region → clipboard
|
||||
# Alt+Print → grim focused output → clipboard
|
||||
bindsym Print exec flameshot gui --path "$HOME/Pictures/Screenshots" --clipboard
|
||||
bindsym Shift+Print exec ~/.config/sway/scripts/screenshot region
|
||||
bindsym Alt+Print exec ~/.config/sway/scripts/screenshot output
|
||||
|
||||
# Focus
|
||||
bindsym $mod+$left focus left
|
||||
|
||||
3
dotfiles/desktop/.config/sway/host.conf
Normal file
3
dotfiles/desktop/.config/sway/host.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
# Per-host sway overrides. Empty by default; hosts that need tuning
|
||||
# ship their own version via host_sway_dotfiles, which overwrites this
|
||||
# placeholder during deploy.
|
||||
@@ -1,12 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
exec swaylock-effects \
|
||||
--image "$HOME/.config/sway/wallpapers/wallpaper-161664.jpg" \
|
||||
exec swaylock \
|
||||
--image "$HOME/.config/sway/wallpapers/maxresdefault.jpg" \
|
||||
--scaling fill \
|
||||
--clock \
|
||||
--indicator \
|
||||
--effect-blur 7x5 \
|
||||
--fade-in 0.3 \
|
||||
--indicator-idle-visible \
|
||||
--ring-color 2f4058 \
|
||||
--inside-color 1f1f28 \
|
||||
--line-color 00000000 \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
choice="$(printf "⏻ Shutdown\n Reboot\n Logout\n Lock\n⏾ Suspend" \
|
||||
choice="$(printf "⏻ Shutdown\n Reboot\n Logout\n Lock\n⏾ Suspend" \
|
||||
| rofi -dmenu \
|
||||
-i \
|
||||
-p "Power" \
|
||||
|
||||
40
dotfiles/desktop/.config/sway/scripts/screenshot
Executable file
40
dotfiles/desktop/.config/sway/scripts/screenshot
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
# Quick screenshot helpers for sway. Captures via grim, saves to disk and
|
||||
# also copies to the Wayland clipboard. Use the flameshot binding for
|
||||
# annotations / fancy capture.
|
||||
#
|
||||
# Usage: screenshot {full|region|output|window}
|
||||
|
||||
set -eu
|
||||
|
||||
mode="${1:-full}"
|
||||
dir="$HOME/Pictures/Screenshots"
|
||||
mkdir -p "$dir"
|
||||
file="$dir/$(date +%Y%m%d_%H%M%S).png"
|
||||
|
||||
case "$mode" in
|
||||
full)
|
||||
grim "$file"
|
||||
;;
|
||||
region)
|
||||
grim -g "$(slurp)" "$file"
|
||||
;;
|
||||
output)
|
||||
out=$(swaymsg -t get_outputs --raw \
|
||||
| jq -r '.[] | select(.focused) | .name')
|
||||
grim -o "$out" "$file"
|
||||
;;
|
||||
window)
|
||||
geom=$(swaymsg -t get_tree \
|
||||
| jq -r '.. | select(.focused? == true)
|
||||
| "\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)"')
|
||||
grim -g "$geom" "$file"
|
||||
;;
|
||||
*)
|
||||
printf 'Usage: %s {full|region|output|window}\n' "$0" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
wl-copy < "$file"
|
||||
notify-send "Screenshot saved" "$file" -i image-x-generic >/dev/null 2>&1 || true
|
||||
BIN
dotfiles/desktop/.config/sway/wallpapers/maxresdefault.jpg
Executable file
BIN
dotfiles/desktop/.config/sway/wallpapers/maxresdefault.jpg
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 116 KiB |
@@ -5,8 +5,8 @@
|
||||
"spacing": 4,
|
||||
|
||||
"modules-left": ["sway/workspaces"],
|
||||
"modules-center": ["clock"],
|
||||
"modules-right": ["cpu", "memory", "disk", "temperature", "backlight", "network", "pulseaudio", "battery", "tray"],
|
||||
"modules-center": [],
|
||||
"modules-right": ["cpu", "memory", "disk", "temperature", "backlight", "network", "pulseaudio", "battery", "tray", "clock"],
|
||||
|
||||
"sway/workspaces": {
|
||||
"disable-scroll": true,
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
"clock": {
|
||||
"interval": 60,
|
||||
"format": " {:%Y-%m-%d %H:%M}",
|
||||
"format": "{:%Y-%m-%d %H:%M}",
|
||||
"tooltip-format": "<tt>{calendar}</tt>"
|
||||
},
|
||||
|
||||
@@ -74,9 +74,9 @@
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": " muted",
|
||||
"format-bluetooth": "{icon} {volume}% ",
|
||||
"format-icons": { "default": ["", "", ""] },
|
||||
"format-muted": " muted",
|
||||
"format-bluetooth": "{icon} {volume}% ",
|
||||
"format-icons": { "default": ["", "", ""] },
|
||||
"on-click": "swayosd-client --output-volume mute-toggle",
|
||||
"on-click-right": "pavucontrol"
|
||||
},
|
||||
|
||||
@@ -57,7 +57,7 @@ window#waybar {
|
||||
#network { color: #4a90d9; }
|
||||
#network.disconnected { color: #3a3a46; }
|
||||
#pulseaudio { color: #7dcfff; }
|
||||
#pulseaudio.muted { color: #3a3a46; }
|
||||
#pulseaudio.muted { color: #8e8e9a; }
|
||||
#battery { color: #d0d0d0; }
|
||||
#battery.charging { color: #9ec07c; }
|
||||
#battery.warning { color: #e0af68; }
|
||||
|
||||
@@ -15,6 +15,9 @@ export GDK_BACKEND='wayland,x11'
|
||||
|
||||
export SSH_AUTH_SOCK="$HOME/.local/state/ssh-agent/socket"
|
||||
|
||||
# Per-host session environment (GPU / Wayland tuning, etc.)
|
||||
[ -r "$HOME/.config/sway/session-env" ] && . "$HOME/.config/sway/session-env"
|
||||
|
||||
exec dbus-run-session sh -eu -c '
|
||||
umask 077
|
||||
printf "%s\n" "$DBUS_SESSION_BUS_ADDRESS" > "$HOME/.dbus-session-bus-address"
|
||||
|
||||
17
dotfiles/nymph/.config/kanshi/config
Normal file
17
dotfiles/nymph/.config/kanshi/config
Normal file
@@ -0,0 +1,17 @@
|
||||
profile solo {
|
||||
output DP-1 disable
|
||||
output DP-2 disable
|
||||
output HDMI-A-1 disable
|
||||
output HDMI-A-2 disable
|
||||
output eDP-1 enable mode 1920x1080 position 0,0
|
||||
exec swaymsg "workspace 1, move workspace to output eDP-1; workspace 2, move workspace to output eDP-1; workspace 3, move workspace to output eDP-1; workspace 4, move workspace to output eDP-1; workspace 5, move workspace to output eDP-1; workspace 6, move workspace to output eDP-1; workspace 7, move workspace to output eDP-1; workspace 8, move workspace to output eDP-1; workspace 9, move workspace to output eDP-1; workspace 10, move workspace to output eDP-1"
|
||||
}
|
||||
|
||||
profile dual {
|
||||
output DP-2 disable
|
||||
output HDMI-A-1 disable
|
||||
output HDMI-A-2 disable
|
||||
output eDP-1 enable mode 1920x1080 position 0,0
|
||||
output DP-1 enable mode 3440x1440@100Hz position 1920,0
|
||||
exec swaymsg "workspace 1, move workspace to output eDP-1; workspace 2, move workspace to output DP-1; workspace 3, move workspace to output DP-1; workspace 4, move workspace to output DP-1; workspace 5, move workspace to output DP-1; workspace 6, move workspace to output DP-1; workspace 7, move workspace to output DP-1; workspace 8, move workspace to output DP-1; workspace 9, move workspace to output DP-1; workspace 10, move workspace to output DP-1"
|
||||
}
|
||||
15
dotfiles/nymph/.config/sway/host.conf
Normal file
15
dotfiles/nymph/.config/sway/host.conf
Normal file
@@ -0,0 +1,15 @@
|
||||
set $terminal ~/.local/bin/prime-run /usr/bin/alacritty
|
||||
|
||||
# Multi-monitor profile switching (laptop standalone vs dock)
|
||||
exec kanshi
|
||||
|
||||
workspace 1 output eDP-1
|
||||
workspace 2 output DP-1
|
||||
workspace 3 output DP-1
|
||||
workspace 4 output DP-1
|
||||
workspace 5 output DP-1
|
||||
workspace 6 output DP-1
|
||||
workspace 7 output DP-1
|
||||
workspace 8 output DP-1
|
||||
workspace 9 output DP-1
|
||||
workspace 10 output DP-1
|
||||
6
dotfiles/nymph/.config/sway/session-env
Normal file
6
dotfiles/nymph/.config/sway/session-env
Normal file
@@ -0,0 +1,6 @@
|
||||
export LIBVA_DRIVER_NAME=iHD
|
||||
export QT_QPA_PLATFORM=wayland
|
||||
export QT_QPA_PLATFORMTHEME=qt6ct
|
||||
export SWAY_UNSUPPORTED_GPU=1
|
||||
export WLR_DRM_DEVICES=/dev/dri/card0:/dev/dri/card1
|
||||
export WLR_NO_HARDWARE_CURSORS=1
|
||||
103
scripts/cleanup-i3.sh
Executable file
103
scripts/cleanup-i3.sh
Executable file
@@ -0,0 +1,103 @@
|
||||
#!/usr/bin/env sh
|
||||
# Remove i3 session artifacts: exclusive packages, dotfiles and the emptty
|
||||
# xsessions entry. Shared resources with sway (dunst, rofi, alacritty,
|
||||
# xfce4-screenshooter) are left untouched.
|
||||
|
||||
set -eu
|
||||
|
||||
I3_PACKAGES="
|
||||
arandr
|
||||
autorandr
|
||||
feh
|
||||
i3
|
||||
i3blocks
|
||||
i3blocks-blocklets
|
||||
i3lock-color
|
||||
i3status
|
||||
picom
|
||||
polybar
|
||||
scrot
|
||||
setxkbmap
|
||||
volumeicon
|
||||
xclip
|
||||
xfce4-clipman-plugin
|
||||
xkbutils
|
||||
xorg-fonts
|
||||
xorg-minimal
|
||||
xss-lock
|
||||
xdotool
|
||||
"
|
||||
|
||||
I3_DOTFILES="
|
||||
$HOME/.config/i3
|
||||
$HOME/.config/i3blocks
|
||||
$HOME/.config/picom
|
||||
$HOME/.config/polybar
|
||||
$HOME/.xinitrc
|
||||
"
|
||||
|
||||
EMPTTY_SESSION=/etc/emptty/xsessions/i3.desktop
|
||||
|
||||
confirm() {
|
||||
printf '%s [y/N] ' "$1"
|
||||
read -r answer
|
||||
case "$answer" in
|
||||
y|Y|yes|YES) return 0 ;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
filter_installed() {
|
||||
for p in $1; do
|
||||
if xbps-query -p pkgver "$p" >/dev/null 2>&1; then
|
||||
printf '%s\n' "$p"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
if ! command -v xbps-remove >/dev/null 2>&1; then
|
||||
printf 'Error: xbps-remove not found (not a Void host?)\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
installed=$(filter_installed "$I3_PACKAGES" | tr '\n' ' ' | sed 's/ *$//')
|
||||
|
||||
printf '== i3 cleanup ==\n\n'
|
||||
printf 'Packages to remove (installed only):\n'
|
||||
if [ -n "$installed" ]; then
|
||||
printf ' %s\n' $installed
|
||||
else
|
||||
printf ' (none)\n'
|
||||
fi
|
||||
printf '\nDotfiles to remove:\n'
|
||||
for d in $I3_DOTFILES; do
|
||||
if [ -e "$d" ] || [ -L "$d" ]; then
|
||||
printf ' %s\n' "$d"
|
||||
fi
|
||||
done
|
||||
printf '\nEmptty session entry:\n'
|
||||
if [ -e "$EMPTTY_SESSION" ]; then
|
||||
printf ' %s\n' "$EMPTTY_SESSION"
|
||||
else
|
||||
printf ' (absent)\n'
|
||||
fi
|
||||
printf '\nShared (NOT removed): dunst, rofi, alacritty, xfce4-screenshooter and their configs.\n\n'
|
||||
|
||||
confirm 'Proceed?' || { printf 'Aborted.\n'; exit 0; }
|
||||
|
||||
if [ -n "$installed" ]; then
|
||||
# shellcheck disable=SC2086
|
||||
sudo xbps-remove -Ry $installed
|
||||
fi
|
||||
|
||||
for d in $I3_DOTFILES; do
|
||||
if [ -e "$d" ] || [ -L "$d" ]; then
|
||||
rm -rf -- "$d"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -e "$EMPTTY_SESSION" ]; then
|
||||
sudo rm -f -- "$EMPTTY_SESSION"
|
||||
fi
|
||||
|
||||
printf '\nDone.\n'
|
||||
101
scripts/cleanup-sway.sh
Executable file
101
scripts/cleanup-sway.sh
Executable file
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env sh
|
||||
# Remove sway session artifacts: exclusive packages, dotfiles, runtime state
|
||||
# and the emptty wayland-sessions entry. Shared resources with i3 (dunst,
|
||||
# rofi, alacritty, xfce4-screenshooter) are left untouched.
|
||||
|
||||
set -eu
|
||||
|
||||
SWAY_PACKAGES="
|
||||
cliphist
|
||||
flameshot
|
||||
grim
|
||||
jq
|
||||
kanshi
|
||||
slurp
|
||||
swayfx
|
||||
swaybg
|
||||
swayidle
|
||||
swaylock
|
||||
SwayOSD
|
||||
Waybar
|
||||
wl-clipboard
|
||||
xdg-desktop-portal-wlr
|
||||
xorg-server-xwayland
|
||||
"
|
||||
|
||||
SWAY_DOTFILES="
|
||||
$HOME/.config/sway
|
||||
$HOME/.config/waybar
|
||||
$HOME/.cache/cliphist
|
||||
"
|
||||
|
||||
SWAY_SYSTEM_FILES="
|
||||
/etc/emptty/wayland-sessions/sway.desktop
|
||||
/usr/local/bin/start-sway
|
||||
"
|
||||
|
||||
confirm() {
|
||||
printf '%s [y/N] ' "$1"
|
||||
read -r answer
|
||||
case "$answer" in
|
||||
y|Y|yes|YES) return 0 ;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
filter_installed() {
|
||||
for p in $1; do
|
||||
if xbps-query -p pkgver "$p" >/dev/null 2>&1; then
|
||||
printf '%s\n' "$p"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
if ! command -v xbps-remove >/dev/null 2>&1; then
|
||||
printf 'Error: xbps-remove not found (not a Void host?)\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
installed=$(filter_installed "$SWAY_PACKAGES" | tr '\n' ' ' | sed 's/ *$//')
|
||||
|
||||
printf '== sway cleanup ==\n\n'
|
||||
printf 'Packages to remove (installed only):\n'
|
||||
if [ -n "$installed" ]; then
|
||||
printf ' %s\n' $installed
|
||||
else
|
||||
printf ' (none)\n'
|
||||
fi
|
||||
printf '\nDotfiles / state to remove:\n'
|
||||
for d in $SWAY_DOTFILES; do
|
||||
if [ -e "$d" ] || [ -L "$d" ]; then
|
||||
printf ' %s\n' "$d"
|
||||
fi
|
||||
done
|
||||
printf '\nSystem files to remove:\n'
|
||||
for f in $SWAY_SYSTEM_FILES; do
|
||||
if [ -e "$f" ] || [ -L "$f" ]; then
|
||||
printf ' %s\n' "$f"
|
||||
fi
|
||||
done
|
||||
printf '\nShared (NOT removed): dunst, rofi, alacritty, xfce4-screenshooter and their configs.\n\n'
|
||||
|
||||
confirm 'Proceed?' || { printf 'Aborted.\n'; exit 0; }
|
||||
|
||||
if [ -n "$installed" ]; then
|
||||
# shellcheck disable=SC2086
|
||||
sudo xbps-remove -Ry $installed
|
||||
fi
|
||||
|
||||
for d in $SWAY_DOTFILES; do
|
||||
if [ -e "$d" ] || [ -L "$d" ]; then
|
||||
rm -rf -- "$d"
|
||||
fi
|
||||
done
|
||||
|
||||
for f in $SWAY_SYSTEM_FILES; do
|
||||
if [ -e "$f" ] || [ -L "$f" ]; then
|
||||
sudo rm -f -- "$f"
|
||||
fi
|
||||
done
|
||||
|
||||
printf '\nDone.\n'
|
||||
Reference in New Issue
Block a user