diff --git a/config/automatrop/host_vars/curacao.geoffrey.frogeye.fr b/config/automatrop/host_vars/curacao.geoffrey.frogeye.fr index fe7b3db..7fa997f 100644 --- a/config/automatrop/host_vars/curacao.geoffrey.frogeye.fr +++ b/config/automatrop/host_vars/curacao.geoffrey.frogeye.fr @@ -4,6 +4,7 @@ dev_stuffs: - ansible - docker - network + - perl - php - python - shell diff --git a/config/automatrop/host_vars/gho.geoffrey.frogeye.fr b/config/automatrop/host_vars/gho.geoffrey.frogeye.fr index 3aebfe0..4b885a1 100644 --- a/config/automatrop/host_vars/gho.geoffrey.frogeye.fr +++ b/config/automatrop/host_vars/gho.geoffrey.frogeye.fr @@ -4,9 +4,11 @@ dev_stuffs: - shell - network - ansible + - perl - python extensions: - gh x11_screens: - HDMI-1 - HDMI-2 +base16_scheme: solarized-light diff --git a/config/automatrop/roles/desktop_environment/vars/main.yml b/config/automatrop/roles/desktop_environment/default/main.yml similarity index 100% rename from config/automatrop/roles/desktop_environment/vars/main.yml rename to config/automatrop/roles/desktop_environment/default/main.yml diff --git a/config/automatrop/roles/desktop_environment/tasks/main.yml b/config/automatrop/roles/desktop_environment/tasks/main.yml index 31a7f92..ce68c8e 100644 --- a/config/automatrop/roles/desktop_environment/tasks/main.yml +++ b/config/automatrop/roles/desktop_environment/tasks/main.yml @@ -55,6 +55,7 @@ register: base16_schemes tags: - color + - i3 - name: Configure Alacritty template: @@ -106,6 +107,7 @@ - i3-reload tags: - color + - i3 when: display_server == 'x11' - name: Set base16 theme for rofi diff --git a/config/automatrop/roles/software/templates/snippets/pm_dev_ansible.j2 b/config/automatrop/roles/software/templates/snippets/pm_dev_ansible.j2 index c0a684d..373384a 100644 --- a/config/automatrop/roles/software/templates/snippets/pm_dev_ansible.j2 +++ b/config/automatrop/roles/software/templates/snippets/pm_dev_ansible.j2 @@ -1,3 +1,4 @@ ansible ansible-lint +ansible-language-server {# EOF #} diff --git a/config/automatrop/roles/software/templates/snippets/pm_dev_perl.j2 b/config/automatrop/roles/software/templates/snippets/pm_dev_perl.j2 new file mode 100644 index 0000000..7349969 --- /dev/null +++ b/config/automatrop/roles/software/templates/snippets/pm_dev_perl.j2 @@ -0,0 +1,3 @@ +{% if arch_based %} +perl-perl-languageserver +{% endif %} diff --git a/config/automatrop/roles/system/files/xorg/intel_backlight.conf b/config/automatrop/roles/system/files/xorg/intel_backlight.conf index 6b68693..36f6eb5 100644 --- a/config/automatrop/roles/system/files/xorg/intel_backlight.conf +++ b/config/automatrop/roles/system/files/xorg/intel_backlight.conf @@ -1,5 +1,5 @@ Section "Device" - Identifier "intel" + Identifier "Intel Graphics" Driver "intel" Option "Backlight" "intel_backlight" EndSection diff --git a/config/automatrop/roles/system/handlers/main.yaml b/config/automatrop/roles/system/handlers/main.yaml index b7065d7..595a97f 100644 --- a/config/automatrop/roles/system/handlers/main.yaml +++ b/config/automatrop/roles/system/handlers/main.yaml @@ -39,3 +39,8 @@ debug: msg: "The Panfrost display driver configuration was changed, but needs a reboot to be applied." listen: panfrost config changed + +- name: Reload systemd-logind + command: systemctl kill -s HUP systemd-logind + become: yes + listen: systemd-logind config changed diff --git a/config/automatrop/roles/system/tasks/main.yml b/config/automatrop/roles/system/tasks/main.yml index 262ff40..aade07b 100644 --- a/config/automatrop/roles/system/tasks/main.yml +++ b/config/automatrop/roles/system/tasks/main.yml @@ -356,6 +356,19 @@ - etc changed - systemd changed +- name: Disable power button + lineinfile: + path: /etc/systemd/logind.conf + line: 'HandlePowerKey=ignore' + regexp: '^#? *HandlePowerKey=' + insertafter: '^\[Login\]$' + become: yes + notify: systemd-logind config changed + # Reason: I sometimes press it accidentally + # (hoping to start it when it's already started, + # or really accidentally on the Pinebook). + # Suspend would be nice, but it doesn't have the locker then + # TODO Hibernation, if that's relevant # $ sudo blkid | grep 'TYPE="swap"' # $ sudoedit /etc/default/grub diff --git a/config/automatrop/roles/vim/templates/plugins/nvim_lspconfig.j2 b/config/automatrop/roles/vim/templates/plugins/nvim_lspconfig.j2 index 1c23972..ec9f88e 100644 --- a/config/automatrop/roles/vim/templates/plugins/nvim_lspconfig.j2 +++ b/config/automatrop/roles/vim/templates/plugins/nvim_lspconfig.j2 @@ -3,44 +3,49 @@ lua << EOF local nvim_lsp = require('lspconfig') +-- Mappings. +-- See `:help vim.diagnostic.*` for documentation on any of the below functions +local opts = { noremap=true, silent=true } +vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) +vim.keymap.set('n', '[e', vim.diagnostic.goto_prev, opts) +vim.keymap.set('n', ']e', vim.diagnostic.goto_next, opts) +-- vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) + -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer local on_attach = function(client, bufnr) - - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end - - --Enable completion triggered by - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') + -- Enable completion triggered by + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') -- Mappings. - local opts = { noremap=true, silent=true } - -- See `:help vim.lsp.*` for documentation on any of the below functions - buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) --- buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) - buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) - buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) - buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) - buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) - buf_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) - buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) - buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', opts) - buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) --- buf_set_keymap('n', 'ca', 'lua vim.lsp.buf.code_action()', opts) --- buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', opts) - buf_set_keymap('n', 'e', 'lua vim.lsp.diagnostic.show_line_diagnostics()', opts) - buf_set_keymap('n', '[e', 'lua vim.lsp.diagnostic.goto_prev()', opts) - buf_set_keymap('n', ']e', 'lua vim.lsp.diagnostic.goto_next()', opts) --- buf_set_keymap('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', opts) - buf_set_keymap("n", "f", "lua vim.lsp.buf.formatting()", opts) - buf_set_keymap("v", "f", "lua vim.lsp.buf.range_formatting()", opts) - + local bufopts = { noremap=true, silent=true, buffer=bufnr } + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) +-- vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) + vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) + vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) + vim.keymap.set('n', 'wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, bufopts) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) + vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) +-- vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) +-- vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) + vim.keymap.set('n', 'f', function() vim.lsp.buf.format { async = true } end, bufopts) end -- Use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches local servers = { +{% if 'ansible' in dev_stuffs %} + "ansiblels", +{% endif %} +{% if 'perl' in dev_stuffs %} + "perlls", +{% endif %} {% if 'python' in dev_stuffs %} "pylsp", {% endif %} @@ -56,7 +61,6 @@ for _, lsp in ipairs(servers) do on_attach = on_attach, flags = { debounce_text_changes = 150, - } } end diff --git a/config/automatrop/roles/vim/templates/plugins/telescope.j2 b/config/automatrop/roles/vim/templates/plugins/telescope.j2 index ef9eadc..c8424ca 100644 --- a/config/automatrop/roles/vim/templates/plugins/telescope.j2 +++ b/config/automatrop/roles/vim/templates/plugins/telescope.j2 @@ -23,6 +23,7 @@ vnoremap ga Telescope lsp_range_code_actions noremap ge Telescope lsp_document_diagnostics noremap gE Telescope lsp_workspace_diagnostics noremap gd Telescope lsp_definitions +noremap gs Telescope lsp_document_symbols lua << EOF require('telescope').setup{ diff --git a/config/automatrop/roles/vim/templates/plugins/treesitter.j2 b/config/automatrop/roles/vim/templates/plugins/treesitter.j2 index be789d8..c4ded51 100644 --- a/config/automatrop/roles/vim/templates/plugins/treesitter.j2 +++ b/config/automatrop/roles/vim/templates/plugins/treesitter.j2 @@ -5,7 +5,44 @@ #} lua < "${file}" diff --git a/config/scripts/camera_name_date b/config/scripts/camera_name_date index eed88e3..0001baa 100755 --- a/config/scripts/camera_name_date +++ b/config/scripts/camera_name_date @@ -67,8 +67,8 @@ def main(args: argparse.Namespace) -> None: new_filename = ( f"{m['Y']}-{m['M']}-{m['D']}_" f"{m['h']}-{m['m']}-{m['s']}" - f"{m.get('dup', '')}" - f"{m.get('spec', '')}" + f"{m.get('dup') or ''}" + f"{m.get('spec') or ''}" f"{args.suffix}" f".{m['ext']}" ) diff --git a/config/scripts/crepuscule b/config/scripts/crepuscule index a4b372d..abf456b 100755 --- a/config/scripts/crepuscule +++ b/config/scripts/crepuscule @@ -1,7 +1,10 @@ #!/usr/bin/env bash -# TODO De-hardcode - -echo 3000 | sudo tee /sys/class/backlight/edp-backlight/brightness -xrandr --output DP-1 --brightness 1 +if [ "$(cat /etc/hostname)" = "curacao.geoffrey.frogeye.fr" ] +then + echo 10000 | sudo tee /sys/class/backlight/intel_backlight/brightness +elif [ "$(cat /etc/hostname)" = "pindakaas.geoffrey.frogeye.fr" ] +then + echo 3000 | sudo tee /sys/class/backlight/edp-backlight/brightness +fi automatrop -e base16_scheme=solarized-dark --tags color diff --git a/config/scripts/jour b/config/scripts/jour index 78356e6..72e9cbf 100755 --- a/config/scripts/jour +++ b/config/scripts/jour @@ -1,7 +1,10 @@ #!/usr/bin/env bash -# TODO De-hardcode - -echo 3500 | sudo tee /sys/class/backlight/edp-backlight/brightness -xrandr --output DP-1 --brightness 1 +if [ "$(cat /etc/hostname)" = "curacao.geoffrey.frogeye.fr" ] +then + echo 40000 | sudo tee /sys/class/backlight/intel_backlight/brightness +elif [ "$(cat /etc/hostname)" = "pindakaas.geoffrey.frogeye.fr" ] +then + echo 3500 | sudo tee /sys/class/backlight/edp-backlight/brightness +fi automatrop -e base16_scheme=solarized-light --tags color diff --git a/config/scripts/nuit b/config/scripts/nuit index 514a61a..9666d97 100755 --- a/config/scripts/nuit +++ b/config/scripts/nuit @@ -1,7 +1,10 @@ #!/usr/bin/env bash -# TODO De-hardcode - -echo 700 | sudo tee /sys/class/backlight/edp-backlight/brightness -xrandr --output DP-1 --brightness 0.5 +if [ "$(cat /etc/hostname)" = "curacao.geoffrey.frogeye.fr" ] +then + echo 1 | sudo tee /sys/class/backlight/intel_backlight/brightness +elif [ "$(cat /etc/hostname)" = "pindakaas.geoffrey.frogeye.fr" ] +then + echo 700 | sudo tee /sys/class/backlight/edp-backlight/brightness +fi automatrop -e base16_scheme=solarized-dark --tags color diff --git a/config/scripts/picture_name_date b/config/scripts/picture_name_date index 4cf0df8..c39976c 100755 --- a/config/scripts/picture_name_date +++ b/config/scripts/picture_name_date @@ -9,7 +9,6 @@ import typing import coloredlogs import exifread -import progressbar log = logging.getLogger(__name__) coloredlogs.install(level="DEBUG", fmt="%(levelname)s %(message)s", logger=log) @@ -38,12 +37,7 @@ def main(args: argparse.Namespace) -> None: log.warning("Counting files...") kwargs = {"directory": args.dir, "skip_renamed": args.skip_renamed} log.warning("Processing files...") - if args.hide_bar: - iterator = get_pictures(**kwargs) - else: - nb_imgs = len(list(get_pictures(**kwargs))) - iterator = progressbar.progressbar(get_pictures(**kwargs), max_value=nb_imgs) - for full_path in iterator: + for full_path in get_pictures(**kwargs): # Find date with open(full_path, 'rb') as fd: exif_data = exifread.process_file(fd) @@ -62,7 +56,7 @@ def main(args: argparse.Namespace) -> None: ext = os.path.splitext(full_path)[1].lower() if ext == '.jpeg': ext = '.jpg' - new_name = date.isoformat().replace(":", "-").replace("T", "_") + new_name = date.isoformat().replace(":", "-").replace("T", "_") + args.suffix # First substitution is to allow images being sent to a NTFS filesystem # Second substitution is for esthetics new_path = os.path.join(args.dir, f"{new_name}{ext}") @@ -71,7 +65,7 @@ def main(args: argparse.Namespace) -> None: while os.path.exists(new_path): if full_path == new_path: break - log.debug(f"{full_path} already exists, incrementing") + log.debug(f"{new_path} already exists, incrementing") i += 1 new_path = os.path.join(args.dir, f"{new_name}_{i}{ext}") @@ -103,16 +97,16 @@ if __name__ == "__main__": help="Do not actually rename, just show old and new path", ) parser.add_argument( - "-s", + "-r", "--skip-renamed", action="store_true", help="Skip images whose filename doesn't match usual camera output filenames.", ) parser.add_argument( - "-b", - "--hide-bar", - action="store_true", - help="Do not show a progress bar. Also skip counting images", + "-s", + "--suffix", + default="", + help="Text to add before the extension", ) args = parser.parse_args() main(args) diff --git a/config/scripts/rssVideos b/config/scripts/rssVideos index c95866f..2219d55 100755 --- a/config/scripts/rssVideos +++ b/config/scripts/rssVideos @@ -148,7 +148,12 @@ class RVElement: @property def date(self) -> datetime.datetime: - return datetime.datetime.fromtimestamp(self.item["published"]) + timestamp = ( + int(self.item.get("timestampUsec", "0")) / 1000000 + or int(self.item.get("crawlTimeMsec", "0")) / 1000 + or self.item["published"] + ) + return datetime.datetime.fromtimestamp(timestamp) @property def is_researched(self) -> bool: @@ -475,7 +480,7 @@ class RVDatabase: def ytdl_opts(self) -> dict: # Get user/system options prev_argv = sys.argv - sys.argv = ['yt-dlp'] + sys.argv = ["yt-dlp"] _, _, _, ydl_opts = yt_dlp.parse_options() sys.argv = prev_argv return ydl_opts diff --git a/config/shell/shrc b/config/shell/shrc index e0bc1dd..7be4a5e 100644 --- a/config/shell/shrc +++ b/config/shell/shrc @@ -31,7 +31,7 @@ alias please=sudo alias ll="ls -l" alias la="ls -la" alias s='sudo -s -E' -alias n='alacritty & disown' +alias n='$HOME/.config/i3/terminal & disown' alias x='startx $HOME/.config/xinitrc; logout' alias nx='nvidia-xrun $HOME/.config/xinitrc; sudo systemctl start nvidia-xrun-pm; logout'