diff --git a/.bashrc b/.bashrc index eb0ed1e6..87b58e44 100755 --- a/.bashrc +++ b/.bashrc @@ -15,3 +15,7 @@ export PATH + +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion diff --git a/.config/autostart/xmodmap.desktop b/.config/autostart/xmodmap.desktop new file mode 100644 index 00000000..82526219 --- /dev/null +++ b/.config/autostart/xmodmap.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Name[en_US]=Xmodmap +Comment[en_US]=xmodmap ~/.xmodmap +Exec=/usr/bin/xmodmap ~/.xmodmap +Icon=application-default-icon +X-GNOME-Autostart-enabled=true +Type=Application \ No newline at end of file diff --git a/.local/bin/initial-setup b/.local/bin/initial-setup index c6e8f43c..ebe8fcde 100755 --- a/.local/bin/initial-setup +++ b/.local/bin/initial-setup @@ -5,6 +5,9 @@ echo -e "Starting initial setup for Fedora..." # Install ansible and run playbook sudo dnf -y update && sudo dnf install -y ansible +# Install ansible extensions +ansible-galaxy install -r ~/.dotfiles/provision/requirements.yml + # Goto playbook and run it cd ~/.dotfiles/provision ansible-playbook setup.yml -i hosts --ask-become-pass diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..1669169b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "jest.jestCommandLine": "npm run test --" +} \ No newline at end of file diff --git a/.xmodmap b/.xmodmap new file mode 100644 index 00000000..dbacbd17 --- /dev/null +++ b/.xmodmap @@ -0,0 +1,5 @@ +keycode 66 = Mode_switch +keysym h = h H Left +keysym l = l L Right +keysym k = k K Up +keysym j = j J Down \ No newline at end of file diff --git a/provision/requirements.yml b/provision/requirements.yml new file mode 100644 index 00000000..ffd4d2fa --- /dev/null +++ b/provision/requirements.yml @@ -0,0 +1,2 @@ +# Ansible Galaxy Roles +- src: https://github.com/starr-dusT/ansible-role-customize-gnome \ No newline at end of file diff --git a/provision/tasks/desktop/_main.yml b/provision/tasks/desktop/_main.yml index ed4c5653..eb24ea8a 100644 --- a/provision/tasks/desktop/_main.yml +++ b/provision/tasks/desktop/_main.yml @@ -2,6 +2,8 @@ tags: ["configs"] - import_tasks: packages.yml tags: ["packages"] +- import_tasks: gnome-settings/extensions.yml + tags: ["gnome-extensions"] - import_tasks: gnome-settings/keybinds.yml tags: ["configs"] - import_tasks: gnome-settings/window-management.yml diff --git a/provision/tasks/desktop/gnome-settings/extensions.yml b/provision/tasks/desktop/gnome-settings/extensions.yml new file mode 100644 index 00000000..9c6649f8 --- /dev/null +++ b/provision/tasks/desktop/gnome-settings/extensions.yml @@ -0,0 +1,14 @@ +- name: Install gnome extensions + include_role: + name: ansible-role-customize-gnome + vars: + gnome_extensions: + - id: 779 + enable: yes + - id: 4362 + enable: yes + - id: 1460 + enable: yes + - id: 7 + enable: yes + gnome_user: "{{ user }}" diff --git a/provision/tasks/desktop/gnome-settings/keybinds.yml b/provision/tasks/desktop/gnome-settings/keybinds.yml index fc783c7d..19f2cb91 100644 --- a/provision/tasks/desktop/gnome-settings/keybinds.yml +++ b/provision/tasks/desktop/gnome-settings/keybinds.yml @@ -1,4 +1,4 @@ -- name: Change gnome specific keybinds +- name: Change existing gnome keybinds dconf: key: "{{ item.key }}" value: "{{ item.value }}" @@ -11,6 +11,12 @@ - {key: "/org/gnome/shell/keybindings/switch-to-application-5", value: [""]} - {key: "/org/gnome/desktop/wm/keybindings/switch-input-source", value: [""]} - {key: "/org/gnome/desktop/wm/keybindings/switch-input-source-backwards", value: [""]} + - {key: "/org/gnome/settings-daemon/plugins/media-keys/screensaver", value: [""]} + + - {key: "/org/gnome/desktop/wm/keybindings/switch-applications", value: [""]} + - {key: "/org/gnome/desktop/wm/keybindings/switch-applications-backward", value: [""]} + - {key: "/org/gnome/desktop/wm/keybindings/switch-windows", value: [""]} + - {key: "/org/gnome/desktop/wm/keybindings/switch-windows-backward", value: [""]} - {key: "/org/gnome/desktop/wm/keybindings/switch-to-workspace-1", value: ["1"]} - {key: "/org/gnome/desktop/wm/keybindings/switch-to-workspace-2", value: ["2"]} @@ -24,10 +30,50 @@ - {key: "/org/gnome/desktop/wm/keybindings/move-to-workspace-4", value: ["4"]} - {key: "/org/gnome/desktop/wm/keybindings/move-to-workspace-5", value: ["5"]} - - {key: "/org/gnome/desktop/wm/keybindings/minimize", value: [""]} + - {key: "/org/gnome/desktop/wm/keybindings/minimize", value: ["Space"]} - {key: "/org/gnome/desktop/wm/keybindings/toggle-fullscreen", value: ["F"]} - {key: "/org/gnome/desktop/wm/keybindings/close", value: ["Q"]} - # - {key: "/org/gnome/desktop/wm/keybindings/maximize-horizontally", value: ["H"]} - # - {key: "/org/gnome/desktop/wm/keybindings/maximize-vertically", value: ["V"]} - # - {key: "/org/gnome/desktop/wm/keybindings/move-to-center", value: ["C"]} \ No newline at end of file + - {key: "/org/gnome/desktop/wm/keybindings/maximize-horizontally", value: ["H"]} + - {key: "/org/gnome/desktop/wm/keybindings/maximize-vertically", value: ["V"]} + - {key: "/org/gnome/desktop/wm/keybindings/move-to-center", value: ["C"]} + + - {key: "/org/gnome/desktop/wm/keybindings/switch-windows", value: ["Tab"]} + - {key: "/org/gnome/desktop/wm/keybindings/switch-windows-backward", value: ["Tab"]} + + - {key: "/org/gnome/settings-daemon/plugins/media-keys/screensaver", value: ["L"]} + +- name: Create custom gnome keybinds + dconf: + key: "{{ item.key }}" + value: "{{ item.value }}" + state: present + with_items: + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/binding', value: "'Return'" } + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/command', value: "'gnome-terminal'" } + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/name', value: "'Open Gnome Terminal'" } + + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/binding', value: "'B'" } + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/command', value: "'brave-browser'" } + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/name', value: "'Open Web Browser'" } + + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/binding', value: "'V'" } + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/command', value: "'code'" } + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/name', value: "'Open VSCode'" } + + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/binding', value: "'U'" } + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/command', value: "'xdotool mousemove 1280 720'" } + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/name', value: "'Focus Monitor Left'" } + + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/binding', value: "'I'" } + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/command', value: "'xdotool mousemove 3840 720'" } + - { key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/name', value: "'Focus Monitor Right'" } + +- name: Set custom gnome keybinds + dconf: + key: /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings + value: "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', + '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/', + '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/', + '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/', + '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/']" \ No newline at end of file diff --git a/provision/tasks/desktop/packages.yml b/provision/tasks/desktop/packages.yml index 63b66e3b..969c8be4 100644 --- a/provision/tasks/desktop/packages.yml +++ b/provision/tasks/desktop/packages.yml @@ -33,4 +33,16 @@ dnf: name: keepassxc state: present + become: true + +- name: Install xdotool + dnf: + name: xdotool + state: present + become: true + +- name: Install xmodmap + dnf: + name: xmodmap + state: present become: true \ No newline at end of file diff --git a/provision/tasks/engineering/.placeholder b/provision/tasks/engineering/.placeholder new file mode 100644 index 00000000..e69de29b diff --git a/provision/tasks/system/packages.yml b/provision/tasks/system/packages.yml index c21d2487..551f3019 100644 --- a/provision/tasks/system/packages.yml +++ b/provision/tasks/system/packages.yml @@ -1,26 +1,26 @@ - name: Install base system packages dnf: name: - - "git" - - "python-psutil" + - git + - python-psutil state: present become: true - name: Install proprietary nvidia drivers dnf: - name: "akmod-nvidia" + name: akmod-nvidia state: present become: true - name: Install syncthing dnf: - name: "syncthing" + name: syncthing state: present become: true - name: Install flatpak dnf: - name: "flatpak" + name: flatpak state: present become: true @@ -28,4 +28,10 @@ flatpak: name: com.github.tchx84.Flatseal state: present - become: true \ No newline at end of file + become: true + +- name: Install pipewire-codec-aptx for bluetooth audio + dnf: + name: pipewire-codec-aptx + state: present + become: true diff --git a/readme.md b/readme.md index c3797751..4217a261 100644 --- a/readme.md +++ b/readme.md @@ -32,4 +32,7 @@ Random notes about things to change on a new system: ## TODO -- Add sxhkd for non-gnome keybinds \ No newline at end of file +- Change syncthing to user .service file rather than ansible +- manage gnome extensions with ansible +- add wireguard +- remove things that require xOrg (and replace) \ No newline at end of file